As apps do App Engine requerem uma conta de serviço para aceder a outros serviços Google Cloud e executar tarefas. Por predefinição, a conta de serviço predefinida do App Engine é usada como a identidade da sua app do App Engine. Também pode especificar uma conta de serviço gerida pelo utilizador diferente para ser usada como a identidade de uma versão específica da sua app do App Engine. Isto permite-lhe conceder privilégios diferentes a cada versão, com base nas tarefas específicas que executa, e evitar conceder mais privilégios do que o necessário.
Este guia aborda como especificar uma conta de serviço gerida pelo utilizador diferente quando implementa uma nova versão. Se não precisar de criar uma conta de serviço distinta quando implementar uma versão específica da sua app, pode continuar a usar a conta de serviço predefinida não especificando uma conta de serviço.
Criar uma conta de serviço gerida pelo utilizador
Para criar uma conta de serviço gerida pelo utilizador, consulte estas instruções. Quando definir as funções de gestão de identidade e de acesso (IAM) para conceder à sua conta de serviço, pode consultar o artigo Funções que concedem acesso ao App Engine.
Se precisar de rever os conceitos de IAM antes de criar a sua conta de serviço, consulte a vista geral dos conceitos de IAM e os guias de contas de serviço.
Depois de criar a conta de serviço gerida pelo utilizador, pode atualizar a conta de serviço predefinida ao nível da app para a sua aplicação através de um dos seguintes métodos:
gcloud
Execute o comando gcloud app update
.
gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Substituição:
SERVICE_ACCOUNT_NAME
com o nome da conta de serviço que criou.PROJECT_ID
com o ID do Google Cloud projeto no qual quer atribuir a conta de serviço.
Cada nova versão implementada após esta atualização usa a nova conta de serviço predefinida ao nível da app, a menos que atribua explicitamente uma conta de serviço específica da versão.
Consola
Aceda ao separador Definições da aplicação do App Engine na consola e clique em Editar definições da aplicação.
Escolha uma conta de serviço predefinida ao nível da app em Selecionar uma conta de serviço e clique em Guardar.
É redirecionado para o separador Definições da aplicação, onde pode ver o endereço de email da conta de serviço predefinida ao nível da app atualizada. Exemplo:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
.Cada nova versão implementada após esta atualização usa a nova conta de serviço predefinida ao nível da app, a menos que atribua explicitamente uma conta de serviço específica da versão.
Especificar uma conta de serviço ao implementar a sua app
gcloud
Execute o comando gcloud app deploy
e especifique a sua conta de serviço:
gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
appengine-web.xml
No ficheiro appengine-web.xml
, especifique a sua conta de serviço adicionando o elemento <service-account>
:
<service-account>SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com</service-account>
Passos seguintes
Siga as práticas recomendadas para trabalhar com contas de serviço.