Como controlar o acesso na API Admin

A API App Engine Admin do Google usa o Identity and Access Management (IAM, na sigla em inglês) para controle de acesso.

O controle de acesso na API Admin do Google App Engine pode ser configurado no nível do projeto. O acesso a projetos do Google Cloud e aos respectivos recursos pode ser concedido a contas de usuário, domínios, grupos ou contas de serviço. Exemplo:

  • Conceda acesso a todos os recursos de um projeto para um usuário individual ou uma conta de serviço.
  • Conceda acesso parcial aos recursos no projeto. Por exemplo, acesso "somente leitura" a recursos ou a capacidade de implantar novas versões, mas não de configurar o tráfego delas.

Para uma descrição detalhada do IAM e dos recursos dele, consulte a documentação do IAM.

Todos os métodos da API Admin exigem as devidas permissões do autor da chamada. Consulte a seção a seguir para ver uma lista de todas as permissões e papéis compatíveis com a API Admin.

Permissões e papéis

Nesta seção, resumimos as permissões e os papéis compatíveis com a API Admin.

Para saber detalhes sobre os papéis do App Engine, consulte Controle de acesso do App Engine.

Permissões necessárias

A tabela a seguir lista as permissões que o solicitante precisa ter para chamar cada método:

Método Permissões necessárias
apps.create appengine.applications.create no recurso Application solicitado.
apps.get appengine.applications.get no recurso Application solicitado.
apps.patch appengine.applications.update no recurso Application solicitado.
apps.repair appengine.applications.update no recurso Application solicitado.
apps.authorizedCertificates.create appengine.applications.update no recurso Application solicitado.
apps.authorizedCertificates.delete appengine.applications.update no recurso Application solicitado.
apps.authorizedCertificates.get appengine.applications.get no recurso Application solicitado.
apps.authorizedCertificates.list appengine.applications.get no recurso Application solicitado.
apps.authorizedCertificates.patch appengine.applications.update no recurso Application solicitado.
apps.authorizedDomains.list appengine.applications.get no recurso Application solicitado.
apps.domainMappings.create appengine.applications.update no recurso Application solicitado.
apps.domainMappings.delete appengine.applications.update no recurso Application solicitado.
apps.domainMappings.get appengine.applications.get no recurso Application solicitado.
apps.domainMappings.list appengine.applications.get no recurso Application solicitado.
apps.domainMappings.patch appengine.applications.update no recurso Application solicitado.
apps.locations.get appengine.applications.get no recurso Application solicitado.
apps.locations.list appengine.applications.get no recurso Application solicitado.
apps.operations.get appengine.applications.get no recurso Application solicitado.
apps.operations.list appengine.applications.get no recurso Application solicitado.
apps.services.delete appengine.services.delete no recurso Service solicitado.
apps.services.get appengine.services.get no recurso Service solicitado.
apps.services.list appengine.services.list no recurso Application solicitado.
apps.services.patch appengine.services.update no recurso Service solicitado.
apps.services.versions.create appengine.versions.create no recurso Service solicitado.
apps.services.versions.delete appengine.versions.delete no recurso Version solicitado.
apps.services.versions.get appengine.versions.get no recurso Version solicitado.
apps.services.versions.list appengine.versions.list no recurso Service solicitado.
apps.services.versions.patch appengine.versions.update no recurso Version solicitado.
apps.services.versions.instances.debug appengine.instances.enableDebug no recurso Instance solicitado.
apps.services.versions.instances.delete appengine.instances.delete no recurso Instance solicitado.
apps.services.versions.instances.get appengine.instances.get no recurso Instance solicitado.
apps.services.versions.instances.list appengine.instances.list no recurso Version solicitado.

Papéis

Veja na tabela a seguir os papéis do IAM da API App Engine Admin com uma lista correspondente de todas as permissões incluídas em cada papel. Cada permissão se aplica a um tipo específico de recurso.

Papel Inclui as permissões

Administrador do App Engine

/roles/appengine.appAdmin

Ler/gravar/modificar acesso a todas as configurações do aplicativo.

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

Implantador do App Engine

/roles/appengine.deployer

acesso de somente leitura a todas as configurações do aplicativo.

Acesso de gravação apenas para criar uma nova versão. Não é possível modificar versões existentes, a não ser para excluir versões que não estejam recebendo tráfego. Não é possível configurar o tráfego de uma versão.

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

Administrador de serviço do App Engine

/roles/appengine.serviceAdmin

Acesso de somente leitura a todas as configurações do aplicativo.

Acesso de gravação às configurações de nível de serviço e versão, incluindo configuração de tráfego. Não é possível implantar versões de aplicativos.

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

Leitor do App Engine

/roles/appengine.appViewer

Acesso de somente leitura a todas as configurações do aplicativo.

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

Leitor de código do App Engine

/roles/appengine.codeViewer

Acesso de somente leitura a todas as configurações do aplicativo e do código-fonte implantado.

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

Os papéis roles/owner e roles/editor e roles/viewer também incluem permissões para outros serviços do Google Cloud. Para mais informações sobre esses papéis básicos, consulte Controle de acesso.

Permissões não disponíveis para papéis personalizados

Para configurar o acesso além dos papéis predefinidos do IAM, crie um papel personalizado. No entanto, as seguintes permissões não estão disponíveis para papéis personalizados:

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

Essas permissões não são necessárias para nenhuma operação.

Como controlar o acesso por meio do console do Google Cloud

É possível usar o console do Google Cloud para gerenciar o controle de acesso dos seus projetos na ferramenta.

Como configurar controles de acesso para todo o projeto

Para conceder acesso aos membros a um projeto do Google Cloud e aos recursos dele, consulte Como conceder, alterar e revogar o acesso.

Como configurar controles de acesso à conta de serviço

É possível criar uma conta de serviço em um projeto do Google Cloud para conceder ao seu aplicativo acesso programático aos serviços do Google Cloud. Por exemplo, use uma conta de serviço para permitir que um projeto do Google Cloud envie uma solicitação HTTP com a API App Engine Admin do Google para outro projeto do Google Cloud.

Para criar contas de serviço e conceder acesso, consulte os seguintes tópicos do IAM: