Cloud Build 自动选择 Cloud Build 服务 账号来代表您执行构建,除非您替换此行为。 此服务账号权限可能过于宽泛,不适用于您的 例如访问 Cloud Source Repositories 存储桶
Cloud Build 在新界面中使用服务账号的默认行为 项目在 2024 年 5 月和 6 月在几周内发生了变更。这些 改进客户的默认安全状况 。您可以选择拒绝这些变化,只需配置组织 政策限制条件。
在此次变更之前,Cloud Build 使用了 默认使用 Cloud Build 专用服务账号。
此项变更生效后,Cloud Build 现在使用 Compute Engine 默认服务账号 作为默认值
您的项目会受到什么影响取决于您是否参与了 组织:
无组织的项目。如果您在集群上启用 Cloud Build API, 项目发生更改后,您将使用 Compute Engine 服务 account(针对使用 Cloud Build API 或 Google Cloud CLI。对于这些项目,您无法选择 来使用旧版 Cloud Build 服务账号,但可以使用 用户指定的服务账号。
组织的项目。如果您在自己的集群上启用 Cloud Build API, 项目之后,您将使用 Compute Engine 服务 account(针对使用 Cloud Build API 或 Google Cloud CLI。您可以使用用户指定的 服务账号,或者启用 贵组织的 Cloud Build 服务账号。
没有组织的现有项目。如果您启用了 在项目上启用 Cloud Build API 后 旧行为,使用旧版 Cloud Build 服务 默认用于你的所有构建作业您可以继续使用 具体方法是选择 Compute Engine 服务账号,或自行创建服务账号。
具有组织的现有项目。如果您启用了 在项目上启用 Cloud Build API 后 旧行为,使用旧版 Cloud Build 服务 默认 25 GB。您还可以继续使用用户指定的服务 账号。
触发。您必须在创建集群时指定服务账号 更新触发器,除非默认服务账号 项目是旧版 Cloud Build 服务账号。
API。启用 Cloud Build API 也会启用 Identity and Access Management API。
Cloud Build 服务账号名称:Cloud Build 将称为旧版 Cloud Build 服务账号。
您需要做些什么?
如果您是某个组织的成员,则贵组织可以配置 设置一个组织政策,并指定其 所选限制条件。
通过设置以下内容,贵组织可以选择不实施这些变更 组织政策布尔值限制条件:
- 未强制执行:
constraints/cloudbuild.disableCreateDefaultServiceAccount
- 未强制执行:
constraints/cloudbuild.useComputeServiceAccount
- 已强制执行:
constraints/cloudbuild.useBuildServiceAccount
如果您无法或不想调整组织政策,并且启用了
Cloud Build API 后
验证 Compute Engine 默认服务
账号或您的用户创建的服务账号
为版本分配权限具体而言,提交 build 的用户必须
拥有相应服务的 iam.serviceAccounts.actAs
权限
。
新的组织政策限制条件
Cloud Build 推出了新的组织政策布尔值 限制条件来配置:
- 能够使用旧版 Cloud Build 服务账号。
- 组织中所有项目的默认服务账号。
如需修改组织政策,您可以使用 Google Cloud 控制台或 Google Cloud CLI:
Google Cloud 控制台:选择您要更改的限制条件,并设置 在强制执行选项设置为启用或停用 Google Cloud 控制台。
Google Cloud CLI:在 Google Cloud 控制台中配置 Google Cloud CLI。
如需详细了解组织政策,请参阅 组织政策服务。
配置旧版 Cloud Build 服务账号的可用性
配置旧版 Cloud Build 服务的可用性 启用 Cloud Build API 后,Cloud Build 引入了以下布尔值政策限制条件:
未强制执行:
constraints/cloudbuild.disableCreateDefaultServiceAccount
。 允许在新项目中使用旧版 Cloud Build 服务。已强制执行:
constraints/cloudbuild.disableCreateDefaultServiceAccount
。 禁止在新应用中使用旧版 Cloud Build 服务账号 项目。这是限制条件的默认值。
此限制条件仅影响在 更改已发布。如果您决定不强制执行 政策限制条件,那么这项更改对启用了该 API 的所有项目都是永久性的 当该配置处于活动状态时,向 API 发送数据。您无法关闭库存状况 旧版 Cloud Build 服务账号的 服务账号之前可用。但即使服务账号 您可以禁止您组织中的用户使用此应用, 具体说明。
与所有组织政策和限制条件一样,您可以在以下位置设置这些政策: 组织级或项目级。
为组织配置默认服务账号
要配置在组织中使用哪个默认服务账号,请执行以下操作: Cloud Build 推出了两个新的政策布尔值 约束条件:
constraints/cloudbuild.useBuildServiceAccount
:配置 Cloud Build 旧版服务账号。constraints/cloudbuild.useComputeServiceAccount
:配置 Compute Engine 默认服务账号。
这些政策可以彼此独立配置,但 在下列情况下合并强制执行规则时非常有用:
为二者使用 Compute Engine 默认服务账号 手动提交的 build 和触发的 build。设置以下内容 组织政策中的以下限制:
- 未强制执行:
constraints/cloudbuild.useBuildServiceAccount
- 已强制执行:
constraints/cloudbuild.useComputeServiceAccount
- 未强制执行:
为手动提交的服务账号使用用户指定的服务账号 build 和触发的 build 之间。这通常是最安全的选项。设置 组织政策的以下限制:
- 未强制执行:
constraints/cloudbuild.useBuildServiceAccount
- 未强制执行:
constraints/cloudbuild.useComputeServiceAccount
- 未强制执行:
继续使用 Cloud Build 旧版服务账号。如果您 设置以下约束条件: 您的组织政策:
- 未强制执行:
constraints/cloudbuild.disableCreateDefaultServiceAccount
- 未强制执行:
constraints/cloudbuild.useComputeServiceAccount
- 已强制执行:
constraints/cloudbuild.useBuildServiceAccount
- 未强制执行:
继续使用 Cloud Build 旧版服务账号 更改之前已启用 Cloud Build API 的项目, 并开始使用Compute Engine 默认服务账号。请确保您 了解所涉及的安全权衡,设置以下限制条件 :
- 已强制执行:
constraints/cloudbuild.disableCreateDefaultServiceAccount
- 已强制执行:
constraints/cloudbuild.useComputeServiceAccount
- 已强制执行:
constraints/cloudbuild.useBuildServiceAccount
- 已强制执行:
获取项目的当前默认服务账号
确定 Cloud Build 将哪个服务账号用作 可以使用 Google Cloud CLI 或 Cloud Build API:
gcloud CLI
运行以下命令以获取当前服务账号的默认服务账号 项目:
gcloud builds get-default-service-account
Cloud Build API
使用 cURL 进行调用 Cloud Build API:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/defaultServiceAccount
将占位符值替换为以下内容:
PROJECT_ID
:项目的 ID。REGION
:支持的 区域。