控制 Admin API 中的访问权限

Google App Engine Admin API 使用 Google Cloud 身份和访问权限管理 (IAM) 来实现访问权限控制。

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

  • 向单个成员或某个服务帐号的所有成员授予对某项目内所有资源的访问权限。
  • 按角色授予访问权限,而不是对整个项目授予访问权限,以便为项目成员提供有限的功能。例如,授予项目成员对资源的只读访问权限,或可以部署新版本但不能为这些版本配置流量的权限。

如需了解 IAM 及其功能的详细说明,请参阅 Google Cloud 身份和访问权限管理文档

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

权限和角色

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

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

必要权限

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

方法 必要权限
apps.create 对请求的 Application 资源拥有 appengine.applications.create 权限。需要 GCP 项目的所有者角色权限。
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 权限。

角色

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

角色 具有的权限

App Engine 管理员

/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 Platform 服务的权限。如需详细了解这些初始角色,请参阅访问权限控制

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

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

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

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

通过 GCP Console 控制访问权限

您可以使用 GCP Console 管理 GCP 项目的访问权限控制。

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

要为成员授予访问 GCP 项目及其资源的权限,请参阅授予、更改和撤销项目成员的访问权限

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

您可以在 GCP 项目中创建服务帐号,以授予您的应用对 GCP 服务的编程访问权限。例如,您可以使用某个 GCP 项目的服务帐号通过 Google App Engine Admin API 将 HTTP 请求发送到其他 GCP 项目。

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

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
App Engine Admin API