设置构建服务账号(源代码部署)

在源部署期间,Cloud Run 在构建和部署 Cloud Run 服务时,会使用 Cloud Build。

本页介绍了如何设置用户指定的服务账号,以便 Cloud Build 在代表您执行服务构建时使用。本指南适用于使用 Google Cloud CLI 部署 Cloud Run 服务函数且需要自定义 Cloud Build 使用的构建服务账号的平台开发者。源代码部署 (--source) 支持 build 服务账号 gcloud CLI 标志,容器映像部署 (--image) 则不支持。

准备工作

  1. 启用 Cloud Build API

    gcloud services enable cloudbuild.googleapis.com
  2. 创建服务账号或已有服务账号以用作 Cloud Build 服务账号。

所需的角色

您或您的管理员必须为部署者账号和 Cloud Build 服务账号授予以下 IAM 角色。

点击可查看部署者账号所需的角色

如需获得从来源进行构建和部署所需的权限,请让管理员向您授予以下 IAM 角色:

点击可查看 Cloud Build 服务账号需要的角色

如需允许 Cloud Build 服务账号在部署函数时执行构建,请让您的管理员向 Cloud Build 服务账号授予项目的 Cloud Run Builder (roles/run.builder) 角色。

如需查看与 Cloud Run 关联的 IAM 角色和权限的列表,请参阅 Cloud Run IAM 角色Cloud Run IAM 权限。如果您的 Cloud Run 服务与Google Cloud API(例如 Cloud 客户端库)进行交互,请参阅服务身份配置指南。如需详细了解如何授予角色,请参阅部署权限管理访问权限

指定 Cloud Build 服务账号

默认情况下,如果在从源代码部署服务函数时未指定 Cloud Build 服务账号,则 Cloud Build 会使用默认的 Cloud Build 服务账号

遵循最小权限原则以改善服务的安全状况的最佳实践,我们建议您在从源代码部署服务时指定自己的服务账号来运行构建。

gcloud

如需在从源代码部署服务时指定 Cloud Build 服务账号,请使用 --build-service-account 标志:

gcloud run deploy SERVICE \
    --source . \
    --build-service-account projects/PROJECT_ID/serviceAccounts/BUILD_SERVICE_ACCOUNT

您需要进行如下替换:

  • SERVICE 替换为您的 Cloud Run 服务的名称。
  • PROJECT_ID 构建服务账号所在的项目 ID。
  • BUILD_SERVICE_ACCOUNT 替换为用户指定的服务账号。

如果您要部署函数,请从源代码将 --function 标志与函数入口点一起添加。