Python 2 不再受社区支持。我们建议您将 Python 2 应用迁移到 Python 3

授予 App Engine 访问权限的角色

角色决定了哪些服务和操作可供某一用户帐号或服务帐号使用。以下类型的角色可授予对 App Engine 的访问权限:

  • 基本角色:适用于项目中的所有服务和资源,包括但不限于 App Engine。例如,具有 Editor 角色的帐号可以更改 App Engine 设置以及 Cloud Storage 设置。

  • App Engine 预定义角色:提供对 App Engine 的精细访问权限。您的 Cloud 项目中的每项服务都具有自己的预定义角色。例如,仅具有 App Engine Deployer 角色的帐号可以部署 App Engine 应用,但无法在 Cloud Storage 中查看或创建对象。此类帐号还需要具备特定的 Cloud Storage 预定义角色才能在 Cloud Storage 中创建或查看对象。

  • 自定义角色:根据您指定的权限列表提供精细访问权限。

在处理需求不太复杂的小型项目时,您可以使用基本角色。如需实现更精细的访问权限控制,请使用预定义角色。

基本角色

基本角色适用于项目中的所有服务和资源。例如,具有 Editor 角色的帐号可以更改 App Engine 设置以及 Cloud Storage 设置。

角色 Cloud Console 权限 工具权限
Owner 如需创建 App Engine 应用,必须具有此角色。该角色拥有 Viewer 和 Editor 的所有权限,还可以查看已部署的源代码、邀请用户、更改用户角色以及删除应用。对项目内的所有资源均拥有管理员权限 如需创建 App Engine 应用,必须具有此角色。该角色可以部署应用代码和更新所有配置。
Editor 该角色可以查看应用信息和修改应用设置。对项目内的所有资源均拥有管理员权限 该角色可以部署应用代码以及更新索引/队列/Cron。
Viewer 该角色可以查看应用信息。对项目内的所有资源均拥有管理员权限 该角色可以请求日志

预定义 App Engine 角色

App Engine 预定义角色可为您提供更精细的访问权限控制选项。

这些角色仅提供对 App Engine 的访问权限。如果您的项目包含其他服务,例如 Cloud Storage 或 Cloud SQL,您将需要分配其他预定义角色才能启用对其他服务的访问权限。

下表列出了每个 App Engine 角色及其目标用户。 如需查看每个角色拥有的全部权限,请参阅对照表

角色 权限 目标用户
App Engine Admin 拥有所有应用配置和设置的读取/写入/修改权限。
  • 应用所有者/管理员
  • 值班工程师
  • 系统管理员
App Engine Service Admin
  • 对所有应用配置和设置的只读权限。
  • 拥有服务级和版本级设置(包括流量配置)的写入权限。
  • 不能部署应用的各版本,如需了解详情,请参阅下文的职责分离
  • 发布工程师
  • DevOps 人员
  • 值班工程师
  • 系统管理员
App Engine Deployer
  • 对所有应用配置和设置的只读权限。
  • 拥有仅限于部署和创建新版本的写入权限。
  • 可以删除不再处理流量的旧版本。
  • 不能修改现有版本,也不能更改流量配置。

请参阅以下部署部分,详细了解所需角色。

  • 部署帐号
  • 发布工程师
App Engine Viewer 对所有应用配置和设置的只读权限。
  • 需要查看应用、但无需修改应用的用户。
  • 负责检查 App Engine 配置是否符合政策规定的审核人员。
App Engine Code Viewer 拥有所有应用配置、设置和已部署源代码的只读权限。
  • 需要查看应用及其源代码、但无需进行修改的用户。
  • 需要诊断生产问题的 DevOps 用户。

App Engine 预定义角色对比

下表对各个预定义 App Engine 角色所拥有的权限进行了全面比较。

权限 App Engine Admin App Engine Service Admin App Engine Deployer App Engine Viewer App Engine Code Viewer
列出所有服务、版本和实例
查看所有应用、服务、版本和实例设置
查看运行时指标,例如资源使用情况、负载信息和错误信息
查看应用源代码
部署应用的新版本
拆分或迁移流量
启动和停止版本
删除版本
删除整个服务
使用 SSH 连接到柔性环境中的虚拟机实例
关停实例
停用和重新启用 App Engine 应用
使用具有 login:admin 限制的处理程序(仅限于第一代运行时环境)
更新调度规则
更新 DoS 设置
更新 Cron 时间表
更新默认 Cookie 过期时间
更新引荐来源网址
更新 Email API 授权发件人

如需详细了解每个角色所授予的特定 IAM 权限,请参阅 Admin API 的角色部分。

如果某个帐号仅负责部署应用的新版本,则建议为该帐号授予预定义角色 App Engine Deployer。您也可以授予 App Engine Admin 角色,但该角色除了拥有部署版本的权限之外,还拥有额外的管理权限。

以上任一角色都能够为帐号授予使用 Admin API 部署应用所需的足够权限。如需为帐号授予使用 gcloud 命令或其他 App Engine 工具的权限,您还必须为其授予 Storage Admin 角色。

如需详细了解如何授予所需权限,请参阅创建用户帐号

部署与流量路由职责分离

许多组织倾向于将部署应用版本的任务与逐渐增加新创建版本流量的任务分开,并通过不同的工作职能来完成这些任务。App Engine Deployer 和 App Engine Service Admin 角色能够实现这种分离:

  • App Engine Deployer 角色 - 帐号只能部署新版本以及删除不再处理流量的旧版本。具有 App Engine Deployer 角色的帐号将无权为任何版本配置流量,也无权更改调度规则或身份验证网域等应用级设置。

  • App Engine Service Admin 角色 - 帐号无权部署应用的新版本,也无权更改应用级设置。但是,这些帐号有权更改现有服务和版本的属性,包括更改可以处理流量的版本。App Engine Service Admin 角色非常适合运营/IT 部门用于逐渐增加新部署版本的流量。

预定义角色的局限性

上面列出的预定义角色均不会授予以下权限:

  • 创建 App Engine 应用。
  • 查看和下载应用日志。
  • 在 Cloud Console 中查看 Monitoring 图表。
  • 启用和停用结算功能。
  • 在 Cloud Security Scanner 中运行安全扫描。
  • 访问存储在 Datastore、任务队列、Memcache、Cloud Search 或其他任何 Cloud Platform 存储产品中的配置或数据。