O controlo de acesso determina quem tem autorização para aceder a serviços e recursos num Google Cloud projeto. No App Engine, existem alguns exemplos de utilização separados para configurar o controlo de acesso:
Conceder aos membros da equipa acesso ao seu projeto do Google Cloud para que possam configurar serviços e implementar apps.
Conceder à sua app acesso aos serviços Google Cloud, como o Cloud Storage. Todos os serviços na nuvem requerem autenticação e autorização para cada chamada de API, incluindo chamadas da sua app do App Engine.
Conceder aos seus utilizadores acesso a recursos num Google Cloud projeto. Embora este exemplo de utilização não seja comum, podem existir casos em que a sua app precisa de pedir acesso a um recurso da nuvem em nome de um utilizador. Por exemplo, a sua app pode ter de aceder a dados que pertencem aos seus utilizadores.
Esta página oferece uma vista geral da configuração do controlo de acesso em cada exemplo de utilização.
Para informações gerais sobre como a Google Cloud Platform processa o controlo de acesso, consulte a vista geral da gestão de identidade e de acesso (IAM).
Conceder acesso a membros da equipa
Para dar a um programador acesso ao seu Google Cloud projeto, crie um ou ambos os seguintes elementos:
Uma conta de utilizador, que está associada a uma Conta Google e se destina a representar um indivíduo específico no seu projeto.
Uma conta de utilizador pode ser usada para autenticar a partir das seguintes ferramentas:
- Google Cloud consola
- CLI do Google Cloud
- IDEs e ferramentas de compilação que usam a CLI gcloud para testar e implementar apps do App Engine
Uma conta de serviço, que se destina a representar uma aplicação ou um processo em vez de uma pessoa. Use contas de serviço nos seus processos de criação, teste e implementação automatizados, especialmente se vários programadores puderem executar estes processos.
Pode usar uma conta de serviço para fazer a autenticação a partir das seguintes ferramentas:
- CLI gcloud
- IDEs e ferramentas de compilação que usam ferramentas da CLI gcloud para testar e implementar apps do App Engine
Criar uma conta de utilizador
Abra a página IAM na Google Cloud consola.
Clique em Selecionar um projeto, escolha um projeto e clique em Abrir.
Clique em Adicionar.
Introduza um endereço de email.
Selecione funções que concedam acesso às funcionalidades do App Engine.
Se o utilizador também precisar de acesso a outros serviços na nuvem, selecione funções que concedam acesso a outros serviços na nuvem.
Clique em Guardar.
O utilizador já pode iniciar sessão na Google Cloud consola, bem como autorizar a CLI gcloud.
Também pode criar contas de utilizador a partir do gcloud, da API REST ou das bibliotecas de cliente.
Criar uma conta de serviço
Abra a página Contas de serviço na Google Cloud consola.
Selecione o projeto e clique em Abrir.
Clique em Criar conta de serviço.
Introduza um nome da conta de serviço. Este deve ser um nome intuitivo para apresentação.
Clique em Criar.
Selecione funções que concedam acesso às funcionalidades do App Engine.
Se a conta de serviço também precisar de acesso a outros serviços Google Cloud, selecione funções que concedam acesso a outros serviços Google Cloud.
Clique em Continuar.
Opcionalmente, especifique as contas de utilizador que podem gerir a conta de serviço. Também pode especificar as contas de utilizador que podem usar a conta de serviço para aceder indiretamente a todos os recursos aos quais a conta de serviço tem acesso.
Clique em Guardar.
É apresentada uma lista das contas de serviço existentes.
Opcionalmente, se precisar de usar a sua conta de serviço fora do Google Cloud, siga as instruções para criar uma chave de conta de serviço.
Passos seguintes
- Se estiver a usar a conta de serviço nos processos de compilação e implementação automatizados, autorize a CLI gcloud com uma conta de serviço.
- Se estiver a usar a conta de serviço com um IDE, siga as instruções fornecidas pelo IDE.
- Se precisar de usar uma identidade exclusiva para uma versão da sua app do App Engine quando acede a outros Google Cloud serviços ou executa tarefas, pode especificar uma conta de serviço gerida pelo utilizador no App Engine.
Conceder à sua app acesso aos serviços na nuvem
Todas as chamadas a um serviço na nuvem têm de ser autenticadas e autorizadas, incluindo as chamadas de uma app do App Engine para outros serviços na nuvem, como o Cloud Storage.
Por predefinição, as chamadas da sua app do App Engine para serviços no mesmo projeto são autorizadas. Veja como funciona o fluxo predefinido:
Para iniciar chamadas para um serviço na nuvem, a sua app cria um objeto de cliente, que contém as credenciais e outros dados de que a app precisa para interagir com o serviço. Se não especificar credenciais no construtor do cliente, o cliente procura credenciais no ambiente da app.
Segue-se um exemplo de criação de um cliente para o Cloud Storage:
Go
Java
Node.js
PHP
Python
Ruby
- Por predefinição, o ambiente da app contém credenciais da
conta de serviço do App Engine
predefinida.
Esta conta de serviço é criada pela Google quando cria uma app do App Engine e recebe autorizações completas para gerir e usar todos os serviços na nuvem num projeto. Google Cloud
Pode substituir este fluxo predefinido através de qualquer uma das seguintes ações:
Defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
. Se esta variável estiver definida, os serviços na nuvem usam as credenciais especificadas pela variável em vez da conta de serviço predefinida.Especifique as credenciais quando instanciar o objeto
Client
para um serviço na nuvem. Por exemplo, se a sua app estiver a chamar um serviço na nuvem num projeto diferente, pode ter de transmitir credenciais manualmente.
- Armazene as suas credenciais num local seguro, como o Firestore no modo Datastore (Datastore), e obtenha-as no tempo de execução.
- Mantenha as credenciais no seu código, mas encriptadas com um arquivo de chaves, como o Cloud KMS.
Para saber mais sobre as vantagens de cada abordagem, consulte o artigo Escolher uma solução de gestão de segredos.
Conceder aos utilizadores acesso aos recursos da nuvem
Se quiser que a sua app leia dados do utilizador de outro serviço Google, tem de configurar o OAuth 2.0 para aplicações de servidor Web. Por exemplo, se quiser extrair os dados de um utilizador do Google Drive e incorporá-los na sua app, use o OAuth 2.0 para aplicações de servidor Web para partilhar dados específicos, mantendo outros dados, como nomes de utilizador e palavras-passe, privados.
Delegação de autoridade ao nível do domínio do Google Workspace
Se tiver um domínio do Google Workspace (anteriormente G Suite), um administrador do domínio pode autorizar uma aplicação a aceder aos dados do utilizador em nome dos utilizadores no domínio do Google Workspace. Por exemplo, uma aplicação que usa a API Google Calendar para adicionar eventos aos calendários de todos os utilizadores num domínio do Google Workspace usaria uma conta de serviço para aceder à API Google Calendar em nome dos utilizadores.
A autorização de uma conta de serviço para aceder a dados em nome dos utilizadores num domínio é, por vezes, denominada "delegação de autoridade ao nível do domínio" numa conta de serviço. Esta opção continua a usar o OAuth 2.0 e requer que um administrador do domínio do Google Workspace autorize a autoridade ao nível do domínio para a conta de serviço.
Especificar uma conta de serviço
O App Engine permite-lhe usar dois tipos de contas de serviço:
A conta de serviço predefinida do App Engine é a identidade predefinida para todas as versões da sua app do App Engine se não for especificada uma conta de serviço gerida pelo utilizador.
Consoante a configuração da política da organização, a conta de serviço predefinida pode receber automaticamente a função de editor no seu projeto. Recomendamos vivamente que desative a concessão automática de funções aplicando a restrição da política da organização
iam.automaticIamGrantsForDefaultServiceAccounts
. Se tiver criado a sua organização após 3 de maio de 2024, esta restrição é aplicada por predefinição.Se desativar a concessão automática de funções, tem de decidir que funções conceder às contas de serviço predefinidas e, em seguida, conceder estas funções.
Se a conta de serviço predefinida já tiver a função de editor, recomendamos que substitua a função de editor por funções menos permissivas.Para modificar as funções da conta de serviço em segurança, use o Simulador de políticas para ver o impacto da alteração e, em seguida, conceda e revogue as funções adequadas.
A conta de serviço gerida pelo utilizador é uma conta de serviço que cria na gestão de identidade e de acesso (IAM). Pode especificar uma conta de serviço gerida pelo utilizador para uma versão, e esta é usada quando acede a outros serviços do App Engine e executa tarefas para essa versão.