このページでは、Secret Manager の構成に使用できる Identity and Access Management(IAM)のロールについて説明します。ロールは、リソースに対するプリンシパルのアクセス権を制限します。常に特定のタスクを実行するために必要な最小限の権限を付与するようにしてください。
Secret Manager のロール
Secret Manager に関連付けられている IAM ロールは次のとおりです。IAM ロールを使用してリソースへのアクセス権を付与、変更、取り消す方法については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
| Role |
Permissions |
Secret Manager Admin
(roles/secretmanager.admin)
Full access to administer Secret Manager resources.
Lowest-level resources where you can grant this role:
|
cloudkms.keyHandles.*
cloudkms.keyHandles.create
cloudkms.keyHandles.get
cloudkms.keyHandles.list
cloudkms.operations.get
cloudkms.projects.showEffectiveAutokeyConfig
resourcemanager.projects.get
resourcemanager.projects.list
secretmanager.*
secretmanager.backups.create
secretmanager.backups.delete
secretmanager.backups.get
secretmanager.backups.list
secretmanager.backups.restore
secretmanager.backups.update
secretmanager.locations.get
secretmanager.locations.list
secretmanager.operations.cancel
secretmanager.operations.get
secretmanager.operations.list
secretmanager.secrets.backup
secretmanager.secrets.create
secretmanager.secrets.createTagBinding
secretmanager.secrets.delete
secretmanager.secrets.deleteTagBinding
secretmanager.secrets.enableManagedRotation
secretmanager.secrets.get
secretmanager.secrets.getIamPolicy
secretmanager.secrets.list
secretmanager.secrets.listEffectiveTags
secretmanager.secrets.listTagBindings
secretmanager.secrets.restore
secretmanager.secrets.rotate
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
|
Secret Manager Editor
(roles/secretmanager.editor)
Editor role for Secret Manager
|
resourcemanager.projects.get
resourcemanager.projects.list
secretmanager.backups.create
secretmanager.backups.delete
secretmanager.backups.get
secretmanager.backups.list
secretmanager.backups.update
secretmanager.locations.*
secretmanager.locations.get
secretmanager.locations.list
secretmanager.operations.*
secretmanager.operations.cancel
secretmanager.operations.get
secretmanager.operations.list
secretmanager.secrets.create
secretmanager.secrets.delete
secretmanager.secrets.enableManagedRotation
secretmanager.secrets.get
secretmanager.secrets.getIamPolicy
secretmanager.secrets.list
secretmanager.secrets.listEffectiveTags
secretmanager.secrets.listTagBindings
secretmanager.secrets.rotate
secretmanager.secrets.update
secretmanager.versions.add
secretmanager.versions.destroy
secretmanager.versions.disable
secretmanager.versions.enable
secretmanager.versions.get
secretmanager.versions.list
|
Secret Manager Secret Accessor
(roles/secretmanager.secretAccessor)
Allows accessing the payload of secrets.
Lowest-level resources where you can grant this role:
|
resourcemanager.projects.get
resourcemanager.projects.list
secretmanager.versions.access
|
Secret Manager Viewer
(roles/secretmanager.viewer)
Allows viewing metadata of all Secret Manager resources
Lowest-level resources where you can grant this role:
|
resourcemanager.projects.get
resourcemanager.projects.list
secretmanager.backups.get
secretmanager.backups.list
secretmanager.locations.*
secretmanager.locations.get
secretmanager.locations.list
secretmanager.operations.get
secretmanager.operations.list
secretmanager.secrets.get
secretmanager.secrets.getIamPolicy
secretmanager.secrets.list
secretmanager.secrets.listEffectiveTags
secretmanager.secrets.listTagBindings
secretmanager.versions.get
secretmanager.versions.list
|
Secret Manager Secret Version Adder
(roles/secretmanager.secretVersionAdder)
Allows adding versions to existing secrets.
Lowest-level resources where you can grant this role:
|
resourcemanager.projects.get
resourcemanager.projects.list
secretmanager.secrets.rotate
secretmanager.versions.add
|
Secret Manager Secret Version Manager
(roles/secretmanager.secretVersionManager)
Allows creating and managing versions of existing secrets.
Lowest-level resources where you can grant this role:
|
resourcemanager.projects.get
resourcemanager.projects.list
secretmanager.secrets.rotate
secretmanager.versions.add
secretmanager.versions.destroy
secretmanager.versions.disable
secretmanager.versions.enable
secretmanager.versions.get
secretmanager.versions.list
|
最小権限の原則
最小権限の原則に従うとは、特定のタスクを実行するために必要な最小限のリソースへのアクセス権を付与するということです。たとえば、プリンシパルがある 1 つのシークレットにアクセスする必要がある場合、そのプリンシパルに他のシークレットやプロジェクトや組織内のすべてのシークレットへのアクセス権を付与しないでください。プリンシパルがシークレットの読み取りのみを必要とする場合、そのプリンシパルにシークレットを変更する権限を付与しないでください。
IAM を使用して、 Google Cloud シークレット、プロジェクト、フォルダ、または組織のレベルで IAM のロールと権限を付与できます。常にリソース階層の最下位レベルの権限を適用します。
次の表は、Secret Manager のシークレット アクセサーのロール(roles/secretmanager.secretAccessor)が付与されているリソース階層のレベルに基づいた、サービス アカウントの有効な機能を示しています。
| リソース階層 |
能力 |
| シークレット |
そのシークレットへのアクセスに限定 |
| プロジェクト |
プロジェクト内の全シークレットへのアクセス |
| フォルダ |
フォルダ内の全プロジェクトの全シークレットへのアクセス |
| 組織 |
組織内の全プロジェクトの全シークレットへのアクセス |
ロール roles/owner には secretmanager.versions.access 権限が含まれますが、roles/editor と roles/viewer には含まれません。
プリンシパルがある 1 つのシークレットの値のみにアクセスする必要がある場合、そのプリンシパルにはすべてのシークレットへのアクセス権を付与しないでください。たとえば、サービス アカウントに Secret Manager の Secret Accessor ロール(roles/secretmanager.secretAccessor)を単一のシークレットに付与できます。
プリンシパルがある 1 つのシークレットのみを管理する必要がある場合、そのプリンシパルにはすべてのシークレットを管理する権限を付与しないでください。たとえば、サービス アカウントに、ある 1 つのシークレットに対する Secret Manager 管理者のロール(roles/secretmanager.admin)を付与できます。
IAM の条件
IAM Conditions を使用すると、一部の Google Cloud リソース(Secret Manager リソースなど)に対して、条件付きの属性ベースのアクセス制御を定義して適用できます。
Secret Manager では、次の属性に基づいて条件付きアクセスを適用できます。
- 日時属性: Secret Manager リソースに対する有効期限のあるアクセス権、スケジュール済みアクセス権、または期間限定のアクセス権を設定するために使用します。たとえば、指定した日付までユーザーがシークレットにアクセスできるようにすることも可能です。
- リソース属性: リソース名、リソースタイプ、リソース サービス属性に基づいて条件付きアクセスを構成するために使用します。Secret Manager では、シークレットとシークレット バージョンの属性を使用して条件付きアクセスを構成できます。たとえば、特定の接頭辞で始まるシークレットのみのシークレット バージョの管理や、特定のシークレット バージョンに限定したアクセスをユーザーに対して許可することができます。
IAM の条件について詳しくは、条件の概要をご覧ください。
次のステップ