控制 Admin API 中的访问权限

App Engine Admin API 使用 Identity and Access Management (IAM) 进行访问权限控制。

App Engine Admin API 中的访问权限控制可以在项目级层进行配置。您可以向用户账号、网域、群组或服务账号授予对 Google Cloud 项目以及其中资源的访问权限。例如:

  • 向个别用户或服务账号授予对项目中所有资源的访问权限。
  • 授予对项目中资源的部分访问权限。例如,授予项目成员对资源的只读访问权限,或可以部署新版本但不能为这些版本配置流量的权限。

如需详细了解 IAM 及其功能,请参阅 IAM 文档

Admin API 的每种方法都要求调用者拥有必要的权限。如需查看 Admin API 支持的所有权限和角色的列表,请参阅下一部分。

权限和角色

本部分汇总了 Admin API 支持的权限和角色。

如需详细了解 App Engine 角色,请参阅 App Engine 访问权限控制

必要权限

下表列出了调用者调用各种方法必须具备的权限:

方法 所需权限
apps.create 请求的 Application 资源的 appengine.applications.create 权限。
apps.get 请求的 Application 资源的 appengine.applications.get 权限。
apps.patch 请求的 Application 资源的 appengine.applications.update 权限。
apps.repair 请求的 Application 资源的 appengine.applications.update 权限。
apps.authorizedCertificates.create 请求的 Application 资源的 appengine.applications.update 权限。
apps.authorizedCertificates.delete 请求的 Application 资源的 appengine.applications.update 权限。
apps.authorizedCertificates.get 请求的 Application 资源的 appengine.applications.get 权限。
apps.authorizedCertificates.list 请求的 Application 资源的 appengine.applications.get 权限。
apps.authorizedCertificates.patch 请求的 Application 资源的 appengine.applications.update 权限。
apps.authorizedDomains.list 请求的 Application 资源的 appengine.applications.get 权限。
apps.domainMappings.create 请求的 Application 资源的 appengine.applications.update 权限。
apps.domainMappings.delete 请求的 Application 资源的 appengine.applications.update 权限。
apps.domainMappings.get 请求的 Application 资源的 appengine.applications.get 权限。
apps.domainMappings.list 请求的 Application 资源的 appengine.applications.get 权限。
apps.domainMappings.patch 请求的 Application 资源的 appengine.applications.update 权限。
apps.locations.get 请求的 Application 资源的 appengine.applications.get 权限。
apps.locations.list 请求的 Application 资源的 appengine.applications.get 权限。
apps.operations.get 请求的 Application 资源的 appengine.applications.get 权限。
apps.operations.list 请求的 Application 资源的 appengine.applications.get 权限。
apps.services.delete 请求的 Service 资源的 appengine.services.delete 权限。
apps.services.get 请求的 Service 资源的 appengine.services.get 权限。
apps.services.list 请求的 Application 资源的 appengine.services.list 权限。
apps.services.patch 请求的 Service 资源的 appengine.services.update 权限。
apps.services.versions.create 请求的 Service 资源的 appengine.versions.create 权限。
apps.services.versions.delete 请求的 Version 资源的 appengine.versions.delete 权限。
apps.services.versions.get 请求的 Version 资源的 appengine.versions.get 权限。
apps.services.versions.list 请求的 Service 资源的 appengine.versions.list 权限。
apps.services.versions.patch 请求的 Version 资源的 appengine.versions.update 权限。
apps.services.versions.instances.debug 请求的 Instance 资源的 appengine.instances.enableDebug 权限。
apps.services.versions.instances.delete 请求的 Instance 资源的 appengine.instances.delete 权限。
apps.services.versions.instances.get 请求的 Instance 资源的 appengine.instances.get 权限。
apps.services.versions.instances.list 请求的 Version 资源的 appengine.instances.list 权限。

角色

下表列出了 App Engine Admin API IAM 角色以及每个角色可提供的所有权限的相应列表。请注意,每个权限适用于特定资源类型。

角色 具有的权限

App Engine Admin

/roles/appengine.appAdmin

对所有应用配置和设置的读取/写入/修改权限。

appengine.applications.disable

appengine.applications.get
appengine.applications.update
appengine.instances.delete
appengine.instances.enableDebug
appengine.instances.get
appengine.instances.list
appengine.instances.update

appengine.operations.cancel

appengine.operations.delete

appengine.operations.get
appengine.operations.list
appengine.runtimes.actAsAdmin

appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 部署者

/roles/appengine.deployer

对所有应用配置和设置的只读权限。

仅拥有创建新版本的写入权限;无法修改现有版本,但可以删除未配置为接收流量的版本。 无法为版本配置流量。

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.create

appengine.services.get
appengine.services.list
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 服务管理员

/roles/appengine.serviceAdmin

对所有应用配置和设置的只读权限。

拥有对服务级层和版本级层设置的写入权限,包括流量配置。无法部署应用版本。

appengine.applications.get
appengine.instances.delete
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 查看者

/roles/appengine.appViewer

对所有应用配置和设置的只读权限。

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

App Engine 代码查看者

/roles/appengine.codeViewer

对所有应用配置、设置和已部署源代码的只读权限。

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.getFileContents
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

请注意,roles/ownerroles/editorroles/viewer 角色还包括对其他 Google Cloud 服务的权限。如需详细了解这些基本角色,请参阅访问权限控制

不适用于自定义角色的权限

如果希望配置预定义 IAM 角色无法实现的访问权限,您可以创建自定义角色。但是,以下权限不适用于自定义角色:

  • appengine.applications.disable
  • appengine.applications.list
  • appengine.instances.update
  • appengine.operations.cancel
  • appengine.operations.delete
  • appengine.services.create

任何操作都不需要这些权限。

通过 Google Cloud 控制台控制访问权限

您可以使用 Google Cloud 控制台来管理 Google Cloud 项目的访问权限控制。

设置项目层级的访问权限控制

如需为主账号授予对 Google Cloud 项目及其资源的访问权限,请参阅授予、更改和撤消访问权限

设置服务账号访问权限控制

您可以在 Google Cloud 项目中创建服务账号,以使应用能够以编程方式访问 Google Cloud 服务。例如,您可以使用服务账号允许一个 Google Cloud 项目通过 App Engine Admin API 将 HTTP 请求发送到另一个 Google Cloud 项目。

要创建服务账号并授予访问权限,请参阅以下 IAM 主题: