Papéis que concedem acesso ao App Engine

Os papéis determinam quais serviços e ações estão disponíveis para uma conta de usuário ou conta de serviço. Os seguintes tipos de papéis concedem acesso ao App Engine:

  • Papéis básicos, que se aplicam a todos os serviços e recursos de um projeto, incluindo, entre outros, o App Engine. Por exemplo, uma conta com o papel de Editor pode alterar as configurações do App Engine e do Cloud Storage.

  • Papéis predefinidos do App Engine, que fornecem acesso granular ao App Engine. Cada serviço do projeto do Cloud fornece os próprios papéis predefinidos. Por exemplo, uma conta que só tem o papel de Implantador do App Engine pode implantar aplicativos do App Engine, mas não pode ver ou criar objetos no Cloud Storage. Essa conta também precisa de um papel predefinido do Cloud Storage específico para criar ou visualizar objetos no Cloud Storage.

  • Papéis personalizados: concedem acesso granular de acordo com uma lista de permissões especificadas pelo usuário.

No caso de projetos menores com necessidades menos complexas, use os papéis básicos. Para ter controles de acesso mais detalhados, use os papéis predefinidos.

Papéis básicos

Papéis básicos se aplicam a todos os serviços e recursos de um projeto. Por exemplo, uma conta com o papel de Editor pode alterar as configurações do App Engine e as configurações do Cloud Storage.

Role Permissões do Console do Cloud Permissões de ferramentas
Owner Necessário para criar aplicativos do App Engine. Tem todos os privilégios de leitor e editor, além de poder ver o código-fonte implantado, convidar usuários, alterar papéis de usuários e excluir um aplicativo. Necessário para criar aplicativos do App Engine. Também pode implantar o código do aplicativo e atualizar todas as configurações.
Editor Visualizar as informações e editar as configurações do aplicativo. Implantar o código do aplicativo, atualizar índices/filas/crons.
Viewer Visualizar as informações do aplicativo. Solicitar registros.

Papéis predefinidos do App Engine

Papel Nome Descrição Permissões Menor recurso
roles/appengine.appAdmin Administrador do App Engine

Acesso de leitura/gravação/modificação a todas as configurações do aplicativo.

Para implantar novas versões, também é necessário conceder o papel de Usuário da conta de serviço (roles/iam.serviceAccountUser).

Para implantar com a ferramenta gcloud, adicione os papéis Administrador de armazenamento (roles/compute.storageAdmin) e Editor do Cloud Build (roles/cloudbuild.builds.editor).

  • appengine.applications.get
  • appengine.applications.update
  • appengine.instances.*
  • appengine.operations.*
  • appengine.runtimes.*
  • appengine.services.*
  • appengine.versions.create
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • appengine.versions.update
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/appengine.appCreator Criador do App Engine Capacidade de criar o recurso do App Engine para o projeto.
  • appengine.applications.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/appengine.appViewer Visualizador no App Engine Acesso somente leitura a todas as configurações do aplicativo.
  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.get
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/appengine.codeViewer Visualizador de código do App Engine Acesso somente leitura a todas as configurações e ao código-fonte implantado do aplicativo.
  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.get
  • appengine.versions.getFileContents
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/appengine.deployer Implantador do App Engine

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

Para implantar novas versões, também é necessário conceder o papel de Usuário da conta de serviço (roles/iam.serviceAccountUser).

Para implantar com a ferramenta gcloud, adicione os papéis Administrador de armazenamento (roles/compute.storageAdmin) e Editor do Cloud Build (roles/cloudbuild.builds.editor).

Não é possível modificar versões existentes, a não ser para excluir versões que não estejam recebendo tráfego.

  • appengine.applications.get
  • appengine.instances.get
  • appengine.instances.list
  • appengine.operations.*
  • appengine.services.get
  • appengine.services.list
  • appengine.versions.create
  • appengine.versions.delete
  • appengine.versions.get
  • appengine.versions.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/appengine.serviceAdmin Administrador de serviço do App Engine

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

Acesso de gravação a configurações de módulo e versão. Não permite implantar versões novas.

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

Os papéis predefinidos do App Engine fornecem opções avançadas de controle de acesso.

Estes papéis concedem acesso apenas ao App Engine. Se o projeto inclui outros serviços, como o Cloud Storage ou Cloud SQL, é necessário atribuir papéis adicionais para permitir o acesso aos outros serviços.

Comparação dos papéis predefinidos do App Engine

A tabela a seguir fornece uma comparação completa das capacidades de cada papel predefinido do App Engine.

Capacidade Administrador do App Engine Administrador de serviço do App Engine Implantador do App Engine Leitor do App Engine Leitor de código do App Engine
Listar todos os serviços, versões e instâncias Sim Sim Sim Sim Sim
Ver todas as configurações de aplicativo, serviço, versão e instância Sim Sim Sim Sim Sim
Ver métricas do ambiente de execução, como uso de recursos, informações do carregamento e informações de erro Sim Sim Sim Sim Sim
Ver o código-fonte do app Não Não Não Não Sim
Implantar uma nova versão de um aplicativo Sim Não Sim, se você também conceder o papel de usuário da conta de serviço Não Não
Dividir ou migrar tráfego Sim Sim Não Não Não
Iniciar e parar uma versão Sim Sim Não Não Não
Excluir uma versão Sim Sim Sim Não Não
Excluir um serviço inteiro Sim Sim Não Não Não
Usar SSH para se conectar a uma instância de VM no ambiente flexível Sim Não Não Não Não
Encerrar uma instância Sim Não Não Não Não
Desativar e reativar o aplicativo do App Engine Sim Não Não Não Não
Acessar gerenciadores que tenham uma restrição login:admin (somente ambientes de execução de primeira geração) Sim Não Não Não Não
Atualizar regras de expedição Sim Não Não Não Não
Atualizar configurações de DoS Sim Não Não Não Não
Atualizar programações de cron Não Não Não Não Não
Atualizar a expiração padrão de cookies Sim Não Não Não Não
Atualizar referenciadores Sim Não Não Não Não
Atualizar remetentes autorizados da API de e-mail Sim Não Não Não Não

Para mais detalhes sobre as permissões de IAM específicas que são concedidas por cada papel, consulte a seção "Papéis" na documentação da API Admin.

Para uma conta responsável apenas por implantar novas versões de um aplicativo, recomendamos que você conceda os seguintes papéis:

  • Papel de implantador do App Engine (roles/appengine.deployer)
  • Papel de Usuário da conta de serviço (roles/iam.serviceAccountUser)
    O Papel de Usuário da conta de serviço permite que a conta personifique a conta de serviço padrão do App Engine durante o processo de implantação.
  • Se a conta usar comandos gcloud para implantar, adicione estes papéis também:

    • Administrador do Storage (roles/compute.storageAdmin)
    • Editor do Cloud Build (roles/cloudbuild.builds.editor)

O papel de administrador do App Engine também pode implantar versões, mas ele inclui outros privilégios administrativos. Para implantar versões, você também precisa do papel de usuário da conta de serviço. Para implantar usando os comandos gcloud, você também precisa do papel de Administrador do Storage e do papel de editor do Cloud Build.

Veja detalhes sobre como conceder as permissões necessárias em Como criar uma conta de usuário.

Separação de tarefas de implantação e de roteamento de tráfego

Muitas organizações preferem separar as tarefas de implantação da versão de um aplicativo e de intensificação do tráfego dessa nova versão. Assim, essas tarefas são feitas por pessoas com cargos diferentes. Os papéis de administrador de serviço e de implantador do App Engine já incluem essa separação:

  • Implantador do App Engine mais as funções de usuário da conta de serviço - Contas são limitadas a implantar novas versões e excluir versões antigas que não veiculam mais tráfego. A conta com esses papéis não poderá configurar o tráfego para nenhuma versão nem alterar configurações no nível do aplicativo, como regras de expedição ou domínio de autenticação.

  • Papel de administrador de serviço do App Engine: as contas não conseguem implantar uma nova versão de aplicativo nem alterar configurações no nível do aplicativo. No entanto, elas têm privilégios para alterar as propriedades dos serviços e versões atuais, incluindo alterar quais versões terão capacidade de atender o tráfego. O papel de administrador de serviço do App Engine é ideal para um departamento de operações/TI que lida com o aumento do tráfego nas versões recém-implantadas.

Limitações dos papéis predefinidos

Nenhum dos papéis predefinidos do App Engine concede acesso aos itens a seguir:

  • criar aplicativos do App Engine;
  • visualizar e fazer o download de registros de aplicativos;
  • visualizar os gráficos do Monitoring no Console do Cloud;
  • ativar e desativar o faturamento;
  • executar verificações de segurança no Cloud Security Scanner;
  • acessar configurações ou dados armazenados no Datastore, no Task Queues, no Memcache, no Cloud Search ou em qualquer outro produto de armazenamento do Cloud Platform.