本頁面說明 Identity and Access Management (IAM) 如何控管 App Lifecycle Manager 的存取權。適用對象為平台管理員、資安工程師,以及設定使用者存取權和自動化部署管道的操作人員。
App Lifecycle Manager 的存取控管機制涉及兩大概念:
- 主體 (使用者、群組和服務帳戶) 的 IAM 角色:這些標準 IAM 角色可控管哪些人能使用 Google Cloud 控制台、Google Cloud CLI 或 API,直接與 App Lifecycle Manager 資源 (例如 SaaS 產品、單位、版本和推出作業) 互動。
- 特殊服務帳戶的權限:這些權限可讓 App Lifecycle Manager 使用特定服務帳戶,代表您執行自動化動作,例如使用 Terraform 建構構件或佈建基礎架構。
請區分您 (或其他主體) 管理 App Lifecycle Manager 本身所需的權限,以及基礎服務帳戶執行 App Lifecycle Manager 委派工作所需的權限。
使用者和主體存取控管
如要直接與 App Lifecycle Manager 資源互動,例如查看 SaaS 產品或管理推出作業,主體必須具備適當的預先定義 App Lifecycle Manager IAM 角色。主體可以是呼叫 API 的使用者、群組或服務帳戶。
這些角色會控管直接對 App Lifecycle Manager API 或在 Google Cloud 控制台中執行的動作。
如要查看現有的 App Lifecycle Manager 資源 (例如 SaaS 產品、單位、版本和推出作業),您只需要具備相關檢視者角色,例如 roles/saasservicemgmt.viewer 角色。您不需要為唯讀作業設定或授予特殊服務帳戶權限。
特殊服務帳戶的權限
App Lifecycle Manager 執行的某些自動化動作,需要具備適當權限的特定服務帳戶:
- App Lifecycle Manager 服務代理 (Google 代管):建立第一個 App Lifecycle Manager 資源時,App Lifecycle Manager 會自動佈建 Google 代管的服務代理。這個服務代理會使用 App Lifecycle Manager 服務代理角色 (
roles/saasservicemgmt.serviceAgent),代表您在 Google Cloud服務中執行作業。 - 佈建及管理單元 (啟動用服務帳戶,由使用者管理):App Lifecycle Manager 佈建、更新或刪除單元時,會使用 Infrastructure Manager,後者會透過使用者管理的啟動用服務帳戶執行 Terraform 設定。
- 建構及上傳構件 (構件建立服務帳戶,使用者自行管理,選用):使用 Cloud Build 等自動化建構系統時,使用者自行管理的構件建立服務帳戶會建構 Terraform OCI 構件,並推送至 Artifact Registry。如果您使用複合範本或手動推送 OCI 映像檔,則可選擇是否要使用這個服務帳戶。
這些服務帳戶 (詳情請參閱「App Lifecycle Manager 服務帳戶」) 需要一組特定權限:
- 基本權限:使用者自行管理的服務帳戶需要角色,才能與 Artifact Registry、Cloud Storage、Infra Manager 和 IAM 等核心服務互動 (例如
roles/artifactregistry.writer、roles/config.admin和roles/iam.serviceAccountTokenCreator角色)。如要瞭解各服務帳戶的必要角色,請參閱「App Lifecycle Manager 服務帳戶」。 - Terraform 資源權限 (僅限執行服務帳戶):執行服務帳戶也必須具備 IAM 權限,才能建立、修改及刪除 Terraform 設定中定義的特定 Google Cloud 資源。舉例來說,如果 Terraform 設定會建立 Google Kubernetes Engine (GKE) 叢集和 Cloud SQL 執行個體,則啟動服務帳戶需要
roles/container.admin和roles/cloudsql.admin等角色。請在建立這些資源的專案中授予這些角色。除了執行 Infra Manager 所需的基本權限外,還需要這些權限。
將權限授予這些服務帳戶,App Lifecycle Manager 就能執行自動化工作,並以不同身分執行基礎架構變更 (啟動用服務帳戶) 或構件管理 (構件建立服務帳戶)。這些服務帳戶權限與您或其他主體查看或管理 App Lifecycle Manager 資源所需的權限不同。
預先定義的 App Lifecycle Manager 角色
IAM 提供預先定義的角色,可授予特定 Google Cloud 資源的存取權,並防止未經授權者存取其他資源。
下表列出 App Lifecycle Manager IAM 角色及其包含的權限:
| 角色 | 說明 | 權限 |
|---|---|---|
App Lifecycle Manager 管理員 (roles/saasservicemgmt.admin) |
具備所有 App Lifecycle Manager 資源的完整存取權。 | saasservicemgmt.rollouts.createsaasservicemgmt.rollouts.updatesaasservicemgmt.rollouts.deletesaasservicemgmt.rolloutKinds.createsaasservicemgmt.rolloutKinds.updatesaasservicemgmt.rolloutKinds.deletesaasservicemgmt.releases.createsaasservicemgmt.releases.updatesaasservicemgmt.releases.deletesaasservicemgmt.units.createsaasservicemgmt.units.updatesaasservicemgmt.units.deletesaasservicemgmt.unitKinds.createsaasservicemgmt.unitKinds.updatesaasservicemgmt.unitKinds.deletesaasservicemgmt.unitOperations.createsaasservicemgmt.unitOperations.updatesaasservicemgmt.unitOperations.deletesaasservicemgmt.tenants.createsaasservicemgmt.tenants.updatesaasservicemgmt.tenants.deletesaasservicemgmt.saas.createsaasservicemgmt.saas.updatesaasservicemgmt.saas.deleteresourcemanager.projects.getresourcemanager.projects.listsaasservicemgmt.locations.listsaasservicemgmt.locations.getsaasservicemgmt.rollouts.listsaasservicemgmt.rollouts.getsaasservicemgmt.rolloutKinds.listsaasservicemgmt.rolloutKinds.getsaasservicemgmt.releases.listsaasservicemgmt.releases.getsaasservicemgmt.units.listsaasservicemgmt.units.getsaasservicemgmt.unitKinds.listsaasservicemgmt.unitKinds.getsaasservicemgmt.unitOperations.listsaasservicemgmt.unitOperations.getsaasservicemgmt.tenants.listsaasservicemgmt.tenants.getsaasservicemgmt.saas.listsaasservicemgmt.saas.get |
App Lifecycle Manager 檢視者 (roles/saasservicemgmt.viewer) |
讀取 App Lifecycle Manager 資源:版本、推出作業、推出作業類型、單元、單元類型、單元作業、SaaS 和租戶。 | resourcemanager.projects.getresourcemanager.projects.listsaasservicemgmt.locations.listsaasservicemgmt.locations.getsaasservicemgmt.rollouts.listsaasservicemgmt.rollouts.getsaasservicemgmt.rolloutKinds.listsaasservicemgmt.rolloutKinds.getsaasservicemgmt.releases.listsaasservicemgmt.releases.getsaasservicemgmt.units.listsaasservicemgmt.units.getsaasservicemgmt.unitKinds.listsaasservicemgmt.unitKinds.getsaasservicemgmt.unitOperations.listsaasservicemgmt.unitOperations.getsaasservicemgmt.tenants.listsaasservicemgmt.tenants.getsaasservicemgmt.saas.listsaasservicemgmt.saas.get |
權限
如要瞭解呼叫端呼叫各個方法時必須具備的權限,請參閱 REST API 參考資料。
後續步驟
- 瞭解 Identity and Access Management。
- 瞭解如何使用 IAM 條件。
- 查看 App Lifecycle Manager 服務帳戶。