除了 App Engine 默认服务账号外,App Engine 标准环境还包含 App Engine 标准环境服务代理。借助服务代理,您的 Google Cloud 项目可以独立于其他 Google Cloud 服务与应用资源进行交互。
当您使用 App Engine 工具(例如 gcloud app deploy
命令)将项目的第一个应用部署到 App Engine 标准环境时,Google 会自动创建此账号。
该服务代理未在 Google Cloud 控制台的“服务账号”页面上列出,并且存在以下限制:
- 请勿撤消授予服务代理的角色。
- 请勿向任何其他账号授予相关的 App Engine Standard Environment Service Agent 角色,因为该角色提供的权限可能会发生更改,而不另行通知。
验证 App Engine 标准环境服务代理
如需验证 Google Cloud 项目中是否存在服务代理,请执行以下步骤:
打开 Google Cloud 控制台:
在权限页面的右上角,选中包括 Google 提供的角色授权复选框。
在主账号列表中,找到 App Engine 标准环境服务代理的 ID,该代理使用 ID
service-PROJECT_NUMBER@gcp-gae-service.iam.gserviceaccount.com
。验证此服务代理是否已被授予 App Engine Standard Environment Service Agent 角色。
“服务代理”角色
服务代理具有 App Engine Standard Environment Service Agent 角色。该角色可提供 Java 8 标准环境管理标准环境应用所需的一组权限。例如,此角色拥有执行以下任务的权限:
- 获取 App Engine 实例的访问令牌,以访问其他 Google Cloud 资源(例如 Cloud Storage 存储桶)。
- 使用来自 App Engine 旧版捆绑服务的 Blobstore API。
系统会为服务代理预留 App Engine Standard Environment Service Agent 角色。请勿将此 IAM 角色授予任何其他账号,因为该角色包含的权限随时可能变动,而不另行通知。
恢复已删除的服务代理
如果您不小心删除了 App Engine 标准环境服务代理,请执行以下步骤进行恢复:
打开 Google Cloud 控制台:
点击添加。
使用以下格式输入服务代理 ID
service-PROJECT_NUMBER@gcp-gae-service.iam.gserviceaccount.com
。选择 App Engine Standard Environment Service Agent 角色。
点击保存。