IAM 角色和权限

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本页面介绍 Google Cloud Deploy 服务帐号、角色和权限。

Google Cloud Deploy 中的访问权限使用 Identity and Access Management (IAM) 进行控制。通过 IAM,您可以创建和管理对 Google Cloud 资源的权限。Google Cloud Deploy 提供了一组特定的预定义 IAM 角色,其中每个角色都包含一组权限。您可以使用这些角色以更精细的方式授予对特定 Google Cloud 资源的访问权限,并防止对其他资源进行不必要的访问。IAM 允许您采用最小权限安全原则,您只需授予对您资源的必要访问权限。

请参阅使用 IAM 限制 Google Cloud Deploy 访问权限,了解高级访问权限控制安全功能。

Google Cloud Deploy 中的服务帐号

默认情况下,Google Cloud Deploy 使用默认 Compute Engine 服务帐号运行。该服务帐号具有足够的权限来渲染清单并将其部署到您的目标。

详细了解 Google Cloud Deploy 如何使用服务帐号。

预定义的 Google Cloud Deploy 角色

使用 IAM 时,Google Cloud Deploy 中的每个 API 方法都会要求发出 API 请求的身份拥有适当的资源使用权限。您可以通过设置政策为项目主帐号(用户、群组或服务帐号)授予角色,进而授予相应权限。您可以就同一资源授予某个主帐号多个角色。

下表列出了 Google Cloud Deploy IAM 角色及其具备的权限:

角色 说明 权限
roles/clouddeploy.viewer 可以查看 Google Cloud Deploy

资源。

clouddeploy.*.get

clouddeploy.*.list

roles/clouddeploy.admin 拥有对 Google Cloud Deploy 资源的完全控制权。 clouddeploy.*
roles/clouddeploy.developer 可以创建、检索、更新和

删除 Google Cloud Deploy 交付流水线资源。

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

roles/clouddeploy.operator 可以创建、检索、更新和删除

Google Cloud Deploy 交付流水线和目标资源。

可以创建和检索版本、发布作业和作业运行资源。

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.update

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.releases.*

clouddeploy.targets.get

clouddeploy.targets.list

clouddeploy.targets.create

clouddeploy.targets.delete

clouddeploy.targets.update

clouddeploy.targets.getIamPolicy

clouddeploy.rollouts.list

clouddeploy.rollouts.get

clouddeploy.rollouts.create

clouddeploy.rollouts.retryJob

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

roles/clouddeploy.approver 只能可以查看和批准 Google Cloud Deploy

发布资源。

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.rollouts.approve

clouddeploy.operations.*

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

roles/clouddeploy.jobRunner 可以执行 Google Cloud Deploy 工作,没有

部署到目标的权限。

logging.logEntries.create

storage.objects.create

storage.objects.list

storage.objects.get

roles/clouddeploy.releaser 可以创建和检索版本及发布作业 clouddeploy.deliveryPipelines.get

clouddeploy.targets.get

clouddeploy.releases.list

clouddeploy.releases.get

clouddeploy.releases.create

clouddeploy.rollouts.list

clouddeploy.rollouts.get

clouddeploy.rollouts.create

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

除了 Google Cloud Deploy 预定义角色之外,基本 Viewer、Editor 和 Owner 角色也包含与 Google Cloud Deploy 相关的权限。但是,我们建议您尽可能授予预定义角色,以便符合最小权限安全原则

权限

下表列出了调用者调用每个方法必须具备的权限:

API 方法 所需权限 说明
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.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy 为交付流水线资源设置 IAM 政策。
deliveryPipelines.update() clouddeploy.deliveryPipelines.update 更新现有的交付流水线资源。
jobRuns.get() clouddeploy.jobRuns.get 检索 JobRuns 资源。
jobRuns.list() clouddeploy.jobRuns.list 列出 JobRuns 资源及其元数据。
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 列出版本和元数据。
releases.promote() clouddeploy.rollouts.create 将版本提升到下一个目标。
rollouts.approve() clouddeploy.rollouts.approve 批准或拒绝状态为 required 的发布。
rollouts.create() clouddeploy.rollouts.create 创建新的发布资源。调用方还需要对用于部署的项目或服务帐号拥有 iam.serviceAccounts.actAs 权限。
rollouts.get() clouddeploy.rollouts.get 检索个别发布的详细信息。
rollouts.list() clouddeploy.rollouts.list 列出发布和元数据。
rollouts.retryJob() clouddeploy.rollouts.retryJob 重试失败的作业。
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 限制对 Google Cloud Deploy 资源的操作

您可以通过以下方式来使用 IAM 保护 Google Cloud Deploy 资源:

  • IAM 元 API

    针对 Google Cloud Deploy 资源使用 setIamPolicy 来限制对这些资源执行的操作。

  • 条件 IAM

    以编程方式应用访问权限政策,包括授予或拒绝访问权限的条件

您可以使用这些政策和条件来限制对 Google Cloud Deploy 资源的以下操作:

  • 创建交付流水线或目标

    您可以向特定用户或群组授予此访问权限。

  • 更新或删除特定的交付流水线

    您可以向特定用户或群组授予此访问权限。

  • 为特定交付流水线创建版本

    您可以向特定用户或群组授予此访问权限。

  • 更新或删除特定目标

    您可以向特定用户或群组授予此访问权限。

  • 创建或批准发布或提升版本

    您可以向特定用户或组授予对特定目标或交付流水线的此访问权限。

    您还可以设置条件,将此访问权限限制在指定的时间范围内。

后续步骤