アクセス制御

Identity and Access Management(IAM)のロールでは、Secret Manager API の使用方法が規定されています。以下に、Secret Manager で利用できる各 IAM ロールと、そのロールに付与された機能を示します。

ロール 役職 説明 権限 最下位のリソース
roles/secretmanager.admin Secret Manager 管理者 Secret Manager リソースを管理するための完全アクセス権。
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • secretmanager.*
シークレット
roles/secretmanager.secretAccessor Secret Manager のシークレット アクセサー シークレットのペイロードへのアクセスを許可します。
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • secretmanager.versions.access
シークレット
roles/secretmanager.secretVersionAdder Secret Manager のシークレット バージョンの追加 既存のシークレットにバージョンを追加できます。
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • secretmanager.versions.add
シークレット
roles/secretmanager.secretVersionManager Secret Manager のシークレット バージョンのマネージャー シークレットの作成と既存のシークレット バージョンの管理を許可します。
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • secretmanager.versions.add
  • secretmanager.versions.destroy
  • secretmanager.versions.disable
  • secretmanager.versions.enable
  • secretmanager.versions.get
  • secretmanager.versions.list
シークレット
roles/secretmanager.viewer Secret Manager 閲覧者 すべての Secret Manager リソースのメタデータを表示できます。
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • secretmanager.locations.*
  • secretmanager.secrets.get
  • secretmanager.secrets.getIamPolicy
  • secretmanager.secrets.list
  • secretmanager.versions.get
  • secretmanager.versions.list
シークレット

最小権限の原則

最小権限の原則に従うとは、特定のタスクを実行するために必要な最小限のリソースへのアクセス権を付与するということです。たとえば、メンバーが単一のシークレットにアクセスする必要がある場合は、そのメンバーに他のシークレットやプロジェクトや組織内のすべてのシークレットへのアクセス権を付与しないでください。メンバーがシークレットの読み取りのみを必要とする場合に、そのメンバーにシークレットを変更する権限を付与しないでください。

IAM を使用して、Google Cloud のシークレット、プロジェクト、フォルダ、または組織のレベルで IAM のロールと権限を付与できます。常にリソース階層の最下位レベルの権限を適用します。

この表は、Secret Manager のシークレット アクセサーのロール(roles/secretmanager.secretAccessor)が付与されたリソース階層のレベルに基づいて、サービス アカウントの有効な機能を示しています。

リソース階層 能力
シークレット そのシークレットへのアクセスに限定
プロジェクト プロジェクト内の全シークレットへのアクセス
フォルダ フォルダ内の全プロジェクトの全シークレットへのアクセス
組織 組織内の全プロジェクトの全シークレットへのアクセス

メンバーが単一のシークレットの値のみにアクセスする必要がある場合は、そのメンバーにはすべてのシークレットへのアクセスを許可しないでください。たとえば、サービス アカウントに Secret Manager の Secret Accessor ロール(roles/secretmanager.secretAccessor)を単一のシークレットに付与できます。

メンバーが単一のシークレットのみを管理する必要がある場合は、そのメンバーにはすべてのシークレットを管理する権限を付与しないでください。たとえば、サービス アカウントにシークレット管理者のロール(roles/secretmanager.admin)を付与できます。

IAM の条件

IAM の条件を使用すると、一部の Google Cloud リソース(Secret Manager リソースなど)に対して、条件付きの属性ベースのアクセス制御を定義して適用できます。

Secret Manager では、次の属性に基づいて条件付きアクセスを適用できます。

  • 日時属性: Secret Manager リソースに対する有効期限のあるアクセス権、スケジュール済みアクセス権、または期間限定のアクセス権を設定するために使用します。たとえば、指定した日付までユーザーがシークレットにアクセスできるようにすることも可能です。
  • リソース属性: リソース名、リソースタイプ、リソース サービス属性に基づいて条件付きアクセスを構成するために使用します。Secret Manager では、シークレットとシークレット バージョンの属性を使用して条件付きアクセスを構成できます。たとえば、特定の接頭辞で始まるシークレットのみのシークレット バージョの管理や、特定のシークレット バージョンに限定したアクセスをユーザーに対して許可することができます。

IAM の条件について詳しくは、条件の概要をご覧ください。

次のステップ