本頁面說明 Cloud Deploy 服務帳戶、角色和權限。
Cloud Deploy 的存取權是透過身分與存取權管理 (IAM) 控管。 IAM 可讓您建立及管理 Google Cloud 資源的權限。Cloud Deploy 提供一組特定的預先定義 IAM 角色,每個角色都包含一組權限。您可以使用這些角色,以更精細的方式授予特定 Google Cloud 資源的存取權限,避免其他資源遭到未經授權者擅自存取。IAM 能讓您採用最低權限安全性原則,僅授予必要的資源存取權限給使用者。
如要瞭解進階存取權控管安全功能,請參閱使用 IAM 限制 Cloud Deploy 存取權。
Cloud Deploy 中的服務帳戶
根據預設,Cloud Deploy 會使用預設的 Compute Engine 服務帳戶運作。如要進一步瞭解如何設定這個服務帳戶以搭配 Cloud Deploy 使用,或選擇其他帳戶,請參閱 Cloud Deploy 執行服務帳戶文件。
進一步瞭解 Cloud Deploy 如何使用服務帳戶。
預先定義的 Cloud Deploy 角色
若使用 IAM,Cloud Deploy API 中的每個 API 方法都要求提出 API 要求的身分具備使用該資源的適當權限。只要設定政策將角色授予專案主體 (使用者、群組或服務帳戶),即可授予權限。您可以將多個角色授予相同資源中的主體。
IAM 說明文件提供所有預先定義角色的可搜尋參考資料。
下表列出 Cloud Deploy IAM 角色及這些角色所具備的權限:
Role | Permissions |
---|---|
Cloud Deploy Admin( Full control of Cloud Deploy resources. |
|
Cloud Deploy Approver( Permission to approve or reject rollouts. |
|
Cloud Deploy Custom Target Type Admin( Permission to manage CustomTargetType resources |
|
Cloud Deploy Developer( Permission to manage deployment configuration without permission to access operational resources, such as targets. |
|
Cloud Deploy Runner( Permission to execute Cloud Deploy work without permission to deliver to a target. |
|
Cloud Deploy Operator( Permission to manage deployment configuration. |
|
Cloud Deploy Policy Admin( Permission to manage Deploy Policies. |
|
Cloud Deploy Policy Overrider( Permission to override Deploy Policies. |
|
Cloud Deploy Releaser( Permission to create Cloud Deploy releases and rollouts. |
|
Cloud Deploy Service Agent( Gives Cloud Deploy Service Account access to managed resources. |
|
Cloud Deploy Viewer( Can view Cloud Deploy resources. |
|
除了 Cloud Deploy 預先定義的角色外,基本的檢視者、編輯者和擁有者角色也包含與 Cloud Deploy 相關的權限。不過,我們建議您盡可能授予預先定義的角色,以符合最低權限安全原則。
權限
下表列出了呼叫者在呼叫每個方法時必須具備的權限:
API 方法 | 必要權限 | 說明 |
---|---|---|
automations.create() |
clouddeploy.automations.create |
建立新的自動化資源。 |
automations.delete() |
clouddeploy.automations.delete |
刪除現有的自動化資源。 |
automations.get() |
clouddeploy.automations.get |
擷取個別自動化資源的詳細資料。 |
automations.list() |
clouddeploy.automations.list |
列出自動化資源及其相關中繼資料。 |
automations.update() |
clouddeploy.automations.update |
更新現有的自動化資源。 |
automationRuns.cancel() |
clouddeploy.automationRuns.cancel |
取消正在執行的自動化作業。 |
automationRuns.get() |
clouddeploy.automationRuns.get |
擷取個別自動化執行作業的詳細資料。 |
automationRuns.list() |
clouddeploy.automationRuns.list |
列出自動化執行作業及其相關中繼資料。 |
customTargetTypes.create() |
clouddeploy.customTargetTypes.create |
建立自訂目標類型資源。 |
customTargetTypes.delete() |
clouddeploy.customTargetTypes.delete |
刪除自訂目標類型資源。 |
customTargetTypes.get() |
clouddeploy.customTargetTypes.get |
擷取自訂目標類型的詳細資料。 |
customTargetTypes.getIamPolicy() |
clouddeploy.customTargetTypes.getIamPolicy |
取得自訂目標類型資源的身分與存取權管理政策。 |
customTargetTypes.list() |
clouddeploy.customTargetTypes.list |
列出可用的自訂目標類型及其中繼資料。 |
customTargetTypes.patch() |
clouddeploy.customTargetTypes.patch |
更新現有自訂目標類型。 |
customTargetTypes.setIamPolicy() |
clouddeploy.customTargetTypes.setIamPolicy |
為自訂目標類型資源設定 IAM 政策。 |
deliveryPipelines.create() |
clouddeploy.deliveryPipelines.create |
建立新的推送管道資源。 |
deliveryPipelines.delete() |
clouddeploy.deliveryPipelines.delete |
刪除現有的推送 pipeline 資源。 |
deliveryPipelines.get() |
clouddeploy.deliveryPipelines.get |
擷取個別推送管道的詳細資料。 |
deliveryPipelines.getIamPolicy() |
clouddeploy.deliveryPipelines.getIamPolicy |
取得交付管道資源的身分與存取權管理政策。 |
deliveryPipelines.list() |
clouddeploy.deliveryPipelines.list |
列出交付管道及其相關中繼資料。 |
deliveryPipelines.rollbackTarget() |
clouddeploy.rollouts.rollback |
復原目標。 |
deliveryPipelines.setIamPolicy() |
clouddeploy.deliveryPipelines.setIamPolicy |
設定交付管道資源的身分與存取權管理政策。 |
deliveryPipelines.update() |
clouddeploy.deliveryPipelines.update |
更新現有的交付管道資源。 |
deployPolicies.create() |
clouddeploy.deployPolicies.create |
建立部署政策資源。 |
deployPolicies.delete() |
clouddeploy.deployPolicies.delete |
刪除部署政策資源。 |
deployPolicies.get() |
clouddeploy.deployPolicies.get |
擷取部署政策資源的詳細資料。 |
deployPolicies.list() |
clouddeploy.deployPolicies.list |
列出可用的部署政策及其相關中繼資料。 |
jobRuns.get() |
clouddeploy.jobRuns.get |
擷取 JobRuns 資源。 |
jobRuns.list() |
clouddeploy.jobRuns.list |
列出 JobRuns 資源及其相關中繼資料。 |
jobRuns.terminate() |
clouddeploy.jobRuns.terminate |
終止執行中的工作。 |
operations.cancel() |
clouddeploy.operations.cancel |
取消長時間執行的作業。 |
operation.delete() |
clouddeploy.operations.delete |
刪除一個長時間執行的作業。 |
operations.get() |
clouddeploy.operations.get |
取得特定長時間執行的作業 (例如,傳回發行內容建立作業的狀態)。 |
operations.list() |
clouddeploy.operations.list |
列出長時間執行的作業。 |
releases.abandon() |
clouddeploy.releases.abandon |
捨棄版本,並防止針對該版本進一步推出。 |
releases.create() |
clouddeploy.releases.create |
建立新的發行資源。呼叫方也必須具備用來轉譯資訊清單的服務帳戶 iam.serviceAccounts.actAs 權限。 |
releases.get() |
clouddeploy.releases.get |
擷取個別發行內容的詳細資料。 |
releases.list() |
clouddeploy.releases.list |
列出發行內容和中繼資料。 |
rollouts.advance() |
clouddeploy.rollouts.advance |
讓推出作業進展至下一階段。 |
rollouts.approve() |
clouddeploy.rollouts.approve |
核准或拒絕核准狀態為 required 的推出作業。 |
rollouts.cancel() |
clouddeploy.rollouts.cancel |
取消推出作業。 |
rollouts.create() |
clouddeploy.rollouts.create |
建立新的推出作業資源或升級版本。呼叫者也必須具備專案或用於部署的服務帳戶的 iam.serviceAccounts.actAs 權限。 |
rollouts.get() |
clouddeploy.rollouts.get |
擷取個別推出作業的詳細資料。 |
rollouts.ignoreJob() |
clouddeploy.rollouts.ignoreJob |
忽略失敗的工作。 |
rollouts.list() |
clouddeploy.rollouts.list |
列出推出作業和中繼資料。 |
rollouts.retryJob() |
clouddeploy.rollouts.retryJob |
重試失敗的工作。 |
rollouts.advance() 、rollouts.approve() 、rollouts.cancel() 、rollouts.create() 、rollouts.ignoreJob() 、rollouts.retryJob() 、deliveryPipelines.rollbackTarget() 、jobRuns.terminate() |
clouddeploy.deployPolicies.override |
覆寫部署政策資源。 |
deployPolicies.update() |
clouddeploy.deployPolicies.update |
更新現有的部署政策資源。 |
targets.create() |
clouddeploy.targets.create |
建立新的目標資源。 |
targets.delete() |
clouddeploy.targets.delete |
刪除現有目標資源。 |
targets.get() |
clouddeploy.targets.get |
擷取個別目標的詳細資料。 |
targets.getIamPolicy() |
clouddeploy.targets.getIamPolicy |
取得目標資源的 IAM 政策。 |
targets.list() |
clouddeploy.targets.list |
列出目標及其相關中繼資料。 |
targets.setIamPolicy() |
clouddeploy.targets.setIamPolicy |
為目標資源設定 IAM 政策。 |
targets.update() |
clouddeploy.targets.update |
更新現有的目標資源。 |
使用 IAM 限制對 Cloud Deploy 資源執行的動作
您可以透過下列方式,使用 IAM 保護 Cloud Deploy 資源:
IAM 中繼 API
使用 Cloud Deploy 資源上的
setIamPolicy
,限制對這些資源執行的動作。有條件的 IAM
您可以使用這些政策和條件,限制對 Cloud Deploy 資源執行的下列動作:
建立推送管道或目標
您可以將這項存取權授予特定使用者或群組。
更新或刪除特定推送 pipeline
您可以將這項存取權授予特定使用者或群組。
為特定推送管道建立版本
您可以將這項存取權授予特定使用者或群組。
更新或刪除特定目標
您可以將這項存取權授予特定使用者或群組。
建立或核准推出作業,或升級版本
您可以將這項存取權授予特定使用者或群組,讓他們存取特定目標或放送管道。
您也可以設定條件,將存取權限制在指定時間範圍內。
後續步驟
- 瞭解身分與存取權管理。
- 進一步瞭解如何在 IAM 中使用條件
- 進一步瞭解 Cloud Deploy 服務帳戶。