Como controlar o acesso na API Admin

A API Admin do Google App Engine usa o gerenciamento de identidade e acesso do Google Cloud (IAM) 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 e recursos do GCP pode ser concedido a contas de usuário, domínio, grupos ou contas de serviço. Exemplo:

  • Conceder acesso a todos os recursos dentro de um projeto a cada membro ou a todos os membros de uma conta de serviço.
  • Conceder acesso com base em papéis atribuídos, em vez de para todo o projeto, para que os membros do projeto recebam recursos limitados. Por exemplo, acesso de "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, consulte a documentação de gerenciamento de identidade e acesso do Google Cloud.

Todos os métodos da API Admin exigem as devidas permissões do autor da chamada. Veja na seção seguinte uma lista de todas as permissões e papéis compatíveis com o IAM na API Admin.

Permissões e papéis

Nesta seção resumimos as permissões e papéis compatíveis com o IAM na 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ão necessária
apps.create appengine.applications.create no recurso Application solicitado. Requer permissões de papel de proprietário no projeto do GCP.
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

A tabela a seguir mostra os papéis do IAM da API Admin do Google App Engine com uma lista correspondente de todas as permissões incluídas em cada papel. Observe que cada permissão é aplicável a um tipo de recurso específico.

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

Observe que os papéis roles/owner, roles/editor e roles/viewer também incluem permissões de outros serviços do Google Cloud Platform. Para mais informações sobre papéis primários, 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 usando o console do GCP

Use o console do GCP para gerenciar o controle de acesso para seus projetos.

Como configurar controles de acesso para todo o projeto

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

Como configurar controles de acesso à conta de serviço

Crie uma conta de serviço em um projeto do GCP para conceder ao seu aplicativo acesso programático aos serviços do GCP. Por exemplo, use uma conta de serviço para permitir que um projeto do GCP envie solicitações HTTP com a API Admin do Google App Engine para outro projeto do GCP.

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

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

API Admin do App Engine