本页介绍 Cloud Deploy 服务账号、角色和权限。
Cloud Deploy 中的访问权限使用 Identity and Access Management (IAM) 进行控制。通过 IAM,您可以创建和管理对 Google Cloud 资源的权限。Cloud Deploy 提供 一组预定义的 IAM 角色 其中每个角色都包含一组权限。您可以使用这些角色以更精细的方式授予对特定 Google Cloud 资源的访问权限,并防止对其他资源进行不必要的访问。IAM 允许您采用最小权限安全原则,您只需授予对您资源的必要访问权限。
请参阅使用 IAM 限制 Cloud Deploy 访问权限 了解高级访问权限控制安全功能。
Cloud Deploy 中的服务账号
默认情况下,Cloud Deploy 使用默认 Compute Engine 服务账号运行。该服务账号具有足够的权限来渲染清单并将其部署到您的目标。
详细了解 Cloud Deploy 如何使用服务账号。
预定义的 Cloud Deploy 角色
使用 IAM 时,Cloud Deploy API 中的每个 API 方法都会要求发出 API 请求的身份拥有适当的资源使用权限。您可以通过设置政策为项目主账号(用户、群组或服务账号)授予角色,进而授予相应权限。您可以就同一资源授予某个主账号多个角色。
IAM 文档包括 可搜索的参考资料 所有预定义角色的组合。
下表列出了 Cloud Deploy IAM 角色和 其中包含的权限:
Cloud Deploy 角色 |
权限 |
Cloud Deploy Admin( 拥有对 Cloud Deploy 资源的完全控制权。 |
|
Cloud Deploy Approver( 拥有批准或拒绝发布的权限。 |
|
Cloud Deploy Custom Target Type Admin( 管理 CustomTargetType 资源的权限 |
|
Cloud Deploy Developer( 有权管理部署配置,但无权访问操作资源,例如目标。 |
|
Cloud Deploy Runner( 拥有执行 Cloud Deploy 作业的权限,但无权将其传送到目标。 |
|
Cloud Deploy Operator( 拥有管理部署配置的权限。 |
|
Cloud Deploy 政策管理员 Beta 版( 拥有管理部署政策的权限。 |
|
Cloud Deploy 政策覆盖程序 Beta 版( 拥有覆盖部署政策的权限。 |
|
Cloud Deploy Releaser( 拥有创建 Cloud Deploy 版本和发布的权限。 |
|
Cloud Deploy Viewer( 可以查看 Cloud Deploy 资源。 |
|
除了 Cloud Deploy 预定义角色之外,基本 Viewer、Editor 和 Owner 角色也包含与 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 |
获取自定义目标类型资源的 IAM 政策。 |
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 |
删除现有的交付流水线资源。 |
deliveryPipelines.get() |
clouddeploy.deliveryPipelines.get |
检索个别交付流水线的详细信息。 |
deliveryPipelines.getIamPolicy() |
clouddeploy.deliveryPipelines.getIamPolicy |
获取交付流水线资源的 IAM 政策。 |
deliveryPipelines.list() |
clouddeploy.deliveryPipelines.list |
列出交付流水线及其元数据。 |
deliveryPipelines.rollbackTarget() |
clouddeploy.rollouts.rollback |
回滚目标。 |
deliveryPipelines.setIamPolicy() |
clouddeploy.deliveryPipelines.setIamPolicy |
为交付流水线资源设置 IAM 政策。 |
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
在以下设备上使用
setIamPolicy
: Cloud Deploy 资源来限制对这些资源执行的操作。条件 IAM
您可以使用这些政策和条件来限制对 Cloud Deploy 资源:
创建交付流水线或目标
您可以向特定用户或群组授予此访问权限。
更新或删除特定的交付流水线
您可以向特定用户或群组授予此访问权限。
为特定交付流水线创建版本
您可以向特定用户或群组授予此访问权限。
更新或删除特定目标
您可以向特定用户或群组授予此访问权限。
创建或批准发布或提升版本
您可以向特定用户或组授予对特定目标或交付流水线的此访问权限。
您还可以设置条件,将此访问权限限制在指定的时间范围内。
后续步骤
- 了解 IAM。
- 详细了解如何在 IAM 中使用条件
- 详细了解 Cloud Deploy 服务账号。