Controle de acesso

Você pode definir o controle de acesso usando papéis no nível do projeto do GCP. Atribua um papel a uma conta de membro ou a uma conta de serviço de um projeto do GCP para determinar o nível de acesso ao seu projeto do Google Cloud Platform e aos recursos dele.

No caso de projetos menores com necessidades menos complexas, você pode usar papéis primários. No entanto, para ter controles de acesso mais detalhados, use papéis de gerenciamento de identidade e acesso (IAM, na sigla em inglês), que incluem os papéis predefinidos do App Engine. Para saber mais, consulte a documentação do IAM.

Para mais informações sobre como atribuir papéis, consulte Como conceder acesso a projetos.

Para ver detalhes avançados sobre quais permissões são concedidas aos papéis de IAM predefinidos até o nível de chamada do método, consulte a seção Papéis nas documentações da API Admin.

Papéis primários

No caso dos aplicativos do App Engine, um papel de membro do projeto do GCP também controla as ações permitidas das ferramentas de linha de comando usadas para implantar e gerenciar aplicativos.

Papel Permissões do Console do GCP Permissões de ferramentas
Owner Necessário para criar aplicativos do App Engine. 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. Implante o código do aplicativo e atualize todas as configurações.
Editor Visualizar as informações e editar as configurações do aplicativo. Implantar código de aplicativos, atualizar índices/filas/crons.
Viewer Visualizar as informações do aplicativo. Solicitar registros.

Papéis predefinidos do App Engine

Os papéis predefinidos do App Engine fornecem opções avançadas de controle de acesso. Na tabela a seguir, cada papel é listado com os usuários-alvo. Use a tabela de comparação para ver todas as permissões dos papéis.

Papel Funcionalidades Usuário-alvo
Administrador do App Engine Acesso de leitura/gravação/modificação a todas as configurações do aplicativo.
  • Proprietário/administrador do aplicativo
  • Engenheiro de prontidão
  • Administrador do sistema
Administrador de serviço do App Engine
  • Acesso somente de 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 apps. Veja a tabela de separação de tarefas abaixo para mais detalhes.
  • Engenheiro de lançamento
  • DevOps
  • Engenheiro de prontidão
  • Administrador do sistema
Implantador do App Engine
  • Acesso somente de leitura a todas as configurações do aplicativo.
  • Acesso de gravação apenas para implantar e criar uma nova versão.
  • Permite excluir versões antigas que não geram mais tráfego.
  • Não permite modificar uma versão existente nem alterar a configuração de tráfego.

Consulte a seção Implantações abaixo para mais informações sobre os papéis necessários.

  • Conta de implantação
  • Engenheiro de lançamento
Leitor do App Engine Acesso somente de leitura a todas as configurações do aplicativo.
  • Usuário que precisa visualizar as informações do aplicativo, sem modificá-lo.
  • Usuário que realiza tarefas de auditoria na configuração do App Engine para verificar a conformidade com a política.
Leitor de código do App Engine Acesso somente de leitura a todas as configurações e ao código-fonte implantado do aplicativo.
  • Usuário que precisa visualizar as informações e o código-fonte do aplicativo, sem modificá-lo.
  • Usuário de DevOps que precisa diagnosticar problemas de produção.

Matriz de comparação de papéis predefinidos

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 aplicativos, serviços, versões e instâncias Sim Sim Sim Sim Sim
Ver métricas do ambiente de execução, como uso de recursos, informações de carga e informações de erro Sim Sim Sim Sim Sim
Ver código-fonte do app Não Não Não Não Sim
Implantar uma nova versão de um app Sim Não Sim Não Não
Dividir ou migrar o tráfego Sim Sim Não Não Não
Iniciar e interromper versões Sim Sim Não Não Não
Excluir uma versão Sim Sim Sim Não Não
Excluir serviços inteiros 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 instâncias 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
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 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 concedidas por cada papel, consulte a seção Papéis da API Admin.

Implantações com papéis predefinidos

O papel de implantador do App Engine é recomendado para a conta de usuário responsável apenas por implantar uma nova versão de um app. O papel de administrador do App Engine é uma alternativa que inclui outros privilégios administrativos, como a implantação de versões.

Qualquer um desses papéis concede à conta de usuário permissão adequada para usar a API Admin com o objetivo de implantar apps. Para conceder permissão para usar os comandos gcloud ou outras ferramentas do App Engine, você também precisa atribuir à conta de usuário o papel de administrador do Storage e de editor do Cloud Build.

Para mais detalhes sobre como conceder as permissões necessárias, consulte Como implantar usando papéis do IAM.

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 funções de jobs diferentes. Os papéis de administrador de serviço e de implantador do App Engine já incluem essa separação:

  • Papel de implantador do App Engine: as contas de usuário limitam-se apenas a implantações de novas versões e à exclusão de versões antigas que não geram tráfego. A conta de usuário com o papel de implantador do App Engine não poderá configurar tráfego para nenhuma versão nem alterar as configurações no nível do aplicativo, como as regras de envio ou o domínio de autenticação.

  • Papel de administrador de serviço do App Engine: as contas de usuário não podem implantar uma nova versão de um app 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 existentes, incluindo mudar quais versões podem gerar 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.

Permissões que os papéis predefinidos NÃO concedem

Nenhum dos papéis predefinidos listados acima concede acesso para:

  • criar aplicativos do App Engine;
  • ver e fazer o download de registros de aplicativos;
  • ver os gráficos do Monitoring no Console do GCP;
  • ativar e desativar o faturamento;
  • configurar um limite de gasto diário (anteriormente conhecido como orçamento) para o App Engine e ver o valor gasto em dólares;
  • ver e editar domínios personalizados e certificados SSL enviados;
  • 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.

Conta de serviço do App Engine

Depois de criar um aplicativo do App Engine, a conta de serviço padrão do App Engine é criada e usada como a identidade do serviço do App Engine. A conta de serviço padrão do App Engine está associada ao seu projeto do GCP e realiza tarefas em nome dos seus apps executados no App Engine.

Por padrão, a conta de serviço principal do App Engine tem o papel de editor no projeto. Isso significa que qualquer conta de usuário com permissões suficientes para implantar alterações no projeto do GCP também pode executar um código com acesso de leitura/gravação a todos os recursos contidos nesse projeto.

Conta de serviço para o ambiente flexível

No ambiente flexível do App Engine, também há uma conta de serviço gerenciada pelo Google que executa tarefas específicas do ambiente flexível em nome dos seus apps. Para mais informações sobre esta conta de serviço, consulte Conta de serviço para o ambiente flexível do App Engine.

Como alterar as permissões da conta de serviço

Você pode alterar as permissões para suas contas de serviço no Console do GCP. Por exemplo, você pode reduzir as permissões usadas pela conta de serviço padrão do App Engine alterando o papel de editor para qualquer papel que atenda melhor as necessidades de acesso do aplicativo do App Engine.

Para alterar as permissões das suas contas de serviço, faça o seguinte:

  1. Abra o Console do GCP.

    Acessar a página de permissões

  2. Na lista de membros, localize o código da conta de serviço padrão do App Engine.

    A conta de serviço padrão do App Engine usa o código do membro:
    YOUR_PROJECT_ID@appspot.gserviceaccount.com

  3. Use o menu suspenso para modificar os papéis atribuídos à conta de serviço.

Como usar sua conta de serviço

  • Se quiser renomear ou criar chaves para suas contas de serviço, incluindo a conta de serviço padrão do aplicativo do App Engine, use a página "Contas de serviço" no Console do GCP para ver e editar suas contas de serviço:

    Ir para a página Contas de serviço

  • Para executar comandos do Cloud SDK com uma conta de serviço, incluindo qualquer uma das ferramentas de desenvolvimento do Cloud SDK, primeiro ative a API Google App Engine Admin no seu projeto do Google Cloud Platform. Use a biblioteca de APIs no Console do GCP para gerenciar todas as APIs e os serviços no seu projeto:

    Acessar a página da biblioteca de APIs

Como restaurar uma conta de serviço padrão excluída

Se você excluir sua conta de serviço padrão do App Engine, seu aplicativo do App Engine poderá ser interrompido e perder o acesso a outros serviços do GCP, como o Cloud Datastore.

É possível restaurar uma conta de serviço padrão excluída do App Engine usando o comando gcloud beta app repair:

# Set your gcloud project
gcloud config set project <project-id>

# Restore your default service account
gcloud beta app repair
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentos do ambiente flexível do App Engine para Python