使用 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

最小权限原则

当您遵循最小权限原则时,您将为执行特定任务所需的资源授予最低级别的访问权限。例如,如果主账号需要访问单个密文,请勿向该主账号授予对项目或组织中其他密文或所有密文的访问权限。如果主账号只需要读取密文,请勿向该主账号授予修改密文的权限。

您可以使用 IAM 在 Google Cloud 密文、项目、文件夹或组织级别授予 IAM 角色和权限。始终在资源层次结构中应用最低级别的权限。

下表根据授予了 Secret Manager Secret Accessor 角色 (roles/secretmanager.secretAccessor) 的资源层次结构级别,提供了服务账号的有效功能。

资源层次结构 能力
密文 仅访问该密文
项目 访问项目中的所有密文
文件夹 访问文件夹中所有项目中的所有密文
组织 访问组织的所有项目中的所有密文

角色 roles/owner 包含 `secretmanager.versions.access` 权限,但 roles/editorroles/viewer 则不含。

如果主账号只需要访问单个密文的值,请勿向该主账号授予访问所有密文的权限。例如,您可以为服务账号授予单个 Secret Manager Secret Accessor 角色 (roles/secretmanager.secretAccessor)。

如果主账号只需要管理单个密文,请勿向该主账号授予管理所有密文的权限。例如,您可以向服务账号授予对单个 Secret Manager 密文的 Secret Manager Admin 角色 (roles/secretmanager.admin)。

IAM Conditions

IAM Conditions 允许您为某些 Google Cloud 资源(包括 Secret Manager 资源)定义和强制执行基于属性的条件访问权限控制。

在 Secret Manager 中,您可以根据以下属性强制执行条件访问权限:

  • 日期/时间属性:用于设置 Secret Manager 资源的可过期、定期或限制时长的访问权限。例如,您可以允许用户访问某个密文,直到指定日期为止。
  • 资源属性:用于根据资源名称、资源类型或资源服务属性配置有条件访问权限。在 Secret Manager 中,您可以使用密文和密文版本的属性来配置条件访问权限。例如,您可以允许用户仅管理以特定前缀开头的密文,或仅允许访问特定密文版本。

如需详细了解 IAM 条件,请参阅条件概览

后续步骤