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 são válidos para 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 a plataforma. Cada serviço do projeto do Google 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 da plataforma, 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 do Cloud Storage.
Papel | Permissões do Console do Google 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
Role | Permissions |
---|---|
App Engine Admin( Read/Write/Modify access to all application configuration and settings. To deploy new versions, a principal must have the
Service Account User
( Lowest-level resources where you can grant this role:
|
|
App Engine Creator( Ability to create the App Engine resource for the project. Lowest-level resources where you can grant this role:
|
|
App Engine Viewer( Read-only access to all application configuration and settings. Lowest-level resources where you can grant this role:
|
|
App Engine Code Viewer( Read-only access to all application configuration, settings, and deployed source code. Lowest-level resources where you can grant this role:
|
|
App Engine Managed VM Debug Access( Ability to read or manage v2 instances. |
|
App Engine Deployer( Read-only access to all application configuration and settings. To deploy new versions, you must also have the
Service Account User
( Cannot modify existing versions other than deleting versions that are not receiving traffic. Lowest-level resources where you can grant this role:
|
|
App Engine Memcache Data Admin( Can get, set, delete, and flush App Engine Memcache items. |
|
App Engine Service Admin( Read-only access to all application configuration and settings. Write access to module-level and version-level settings. Cannot deploy a new version. Lowest-level resources where you can grant this role:
|
|
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 incluir outros serviços, como o Cloud Storage ou o Cloud SQL, será 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, se você também conceder o papel de usuário da conta de serviço | 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 detalhes sobre as permissões de IAM específicas que são concedidas por cada papel, consulte a seção Papéis da API Admin.
Papel recomendado para a implantação de aplicativos
Para uma conta responsável apenas por implantar novas versões de um app, recomendamos que você conceda os seguintes papéis:
- Papel de implantador do App Engine (
roles/appengine.deployer
) Papel usuário da conta de serviço (
roles/iam.serviceAccountUser
)O papel 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 a implantação, adicione também os papéis a seguir:- Administrador de objetos do Storage (
roles/storage.objectAdmin
) - Editor do Cloud Build (
roles/cloudbuild.builds.editor
)
- Administrador de objetos do Storage (
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 e as funções de usuário da conta de serviço: as contas são limitadas a implantar novas versões e excluir versões antigas que não veiculam mais tráfego. A conta que tem 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 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:
- ver e fazer o download de registros de aplicativos;
- ver os gráficos do Monitoring no Console do Google 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.