IAM を使用したアクセス制御

このページでは、Secret Manager の構成に使用できる Identity and Access Management(IAM)ロールについて説明します。ロールを使用して、リソースに対するプリンシパルのアクセス権を制限します。常に特定のタスクを実行するために必要な最小限の権限を付与するようにしてください。

Secret Manager のロール

Secret Manager に関連付けられている IAM ロールは次のとおりです。IAM ロールを使用してリソースへのアクセス権を付与、変更、取り消す方法については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。

Role Permissions

(roles/secretmanager.admin)

Full access to administer Secret Manager resources.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.*

  • secretmanager.locations.get
  • secretmanager.locations.list
  • secretmanager.secrets.create
  • secretmanager.secrets.createTagBinding
  • secretmanager.secrets.delete
  • secretmanager.secrets.deleteTagBinding
  • secretmanager.secrets.get
  • secretmanager.secrets.getIamPolicy
  • secretmanager.secrets.list
  • secretmanager.secrets.listEffectiveTags
  • secretmanager.secrets.listTagBindings
  • secretmanager.secrets.setIamPolicy
  • secretmanager.secrets.update
  • secretmanager.versions.access
  • secretmanager.versions.add
  • secretmanager.versions.destroy
  • secretmanager.versions.disable
  • secretmanager.versions.enable
  • secretmanager.versions.get
  • secretmanager.versions.list

(roles/secretmanager.secretAccessor)

Allows accessing the payload of secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.access

(roles/secretmanager.secretVersionAdder)

Allows adding versions to existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.add

(roles/secretmanager.secretVersionManager)

Allows creating and managing versions of existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

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)

Allows viewing metadata of all Secret Manager resources

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.locations.*

  • secretmanager.locations.get
  • secretmanager.locations.list

secretmanager.secrets.get

secretmanager.secrets.getIamPolicy

secretmanager.secrets.list

secretmanager.secrets.listEffectiveTags

secretmanager.secrets.listTagBindings

secretmanager.versions.get

secretmanager.versions.list

最小権限の原則

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

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

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

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

ロール roles/owner には secretmanager.versions.access 権限が含まれますが、roles/editorroles/viewer には含まれません。

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

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

IAM の条件

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

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

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

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

次のステップ