使用 IAM 控管存取權

本頁說明可用於設定 Secret Manager 的 Identity and Access Management (IAM) 角色。角色會限制主體存取資源的能力。一律只授予執行特定工作所需的最低權限。

Secret 管理員角色

以下是與 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

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.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 密鑰存取者角色 (roles/secretmanager.secretAccessor) 授予服務帳戶。

如果主體只需要管理單一密鑰,請勿授予該主體管理所有密鑰的權限。舉例來說,您可以為單一密鑰授予服務帳戶 Secret Manager 管理員角色 (roles/secretmanager.admin)。

IAM 條件

IAM 條件可讓您針對部分 Google Cloud 資源 (包括 Secret Manager 資源),定義及強制執行條件式、屬性式存取控管機制。

在 Secret Manager 中,您可以根據下列屬性強制執行條件式存取權:

  • 日期/時間屬性: 可用來為 Secret Manager 資源設定有期限、已排定或限時等各類存取。舉例來說,您可以允許使用者存取密鑰,直到指定日期為止。
  • 資源屬性: 根據資源名稱、資源類型或資源服務屬性設定條件式存取權。在 Secret Manager 中,您可以使用密鑰和密鑰版本的屬性設定條件式存取權。舉例來說,您可以允許使用者只管理開頭為特定前置字元的密鑰版本,或只允許使用者存取特定密鑰版本。

如要進一步瞭解 IAM 條件,請參閱條件總覽

後續步驟