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
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
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
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
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
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: