使用用户管理的服务账号

App Engine 应用需要服务账号才能访问其他 Google Cloud服务并执行任务。默认情况下,App Engine 默认服务账号用作 App Engine 应用的身份。您还可以指定不同的用户管理的服务账号,以用作特定 App Engine 应用版本的身份。这样,您可以根据每个版本所执行的特定任务来为其授予不同的权限,同时可避免授予超出需求的权限。

本指南介绍了如何在部署新版本时指定不同的用户管理的服务账号。如果您在部署特定版本的应用时不需要创建不同的服务账号,则可以继续使用默认服务账号,而无需指定服务账号。

创建用户管理的服务账号

如需创建用户管理的服务账号,请参阅这些说明。定义要为服务账号授予的 Identity and Access Management (IAM) 角色时,您可以参考授予 App Engine 访问权限的角色

如果您需要在创建服务账号之前查看 IAM 概念,请参阅 IAM 概念概览服务账号指南。

创建用户管理的服务账号后,您可以使用以下方法之一更新应用的应用级默认服务账号:

gcloud

运行 gcloud app update 命令。

    gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

您需要进行如下替换:

  • SERVICE_ACCOUNT_NAME 替换为您创建的服务账号的名称。
  • PROJECT_ID 替换为要在其中分配服务账号的 Google Cloud 项目的 ID。

您在此更新后部署的每个新版本都会使用新的应用级默认服务账号,除非您明确分配了版本特定服务账号。

控制台

  1. 前往控制台中的 App Engine 应用设置标签页,然后点击修改应用设置

    前往“应用设置”

  2. 选择服务账号中选择应用级默认服务账号,然后点击保存

    系统会将您重定向到应用设置标签页,您可以在其中查看更新后的应用级默认服务账号的电子邮件地址。示例:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

    您在此更新后部署的每个新版本都会使用新的应用级默认服务账号,除非您明确分配了版本特定服务账号。

部署应用时指定服务账号

gcloud

运行 gcloud app deploy 命令并指定您的服务账号:

gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

app.yaml

app.yaml 文件中,通过添加 service_account 元素来指定您的服务账号:

service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

后续步骤

遵循使用服务账号的最佳实践