Usar contas de serviço geridas pelo utilizador

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

  1. Aceda ao separador Definições da aplicação do App Engine na consola e clique em Editar definições da aplicação.

    Aceda às Definições de aplicações

  2. 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.