Como usar contas de serviço gerenciadas pelo usuário

Os apps do App Engine exigem uma conta de serviço para acessar outros serviços do Google Cloud e executar tarefas. Por padrão, a conta de serviço padrão do App Engine é usada como a identidade do seu app do App Engine. Você também pode especificar uma conta serviço gerenciado pelo usuário diferente para ser usada como a identidade de uma versão específica do seu app do App Engine. Isso permite que você conceda privilégios diferentes a cada versão, com base nas tarefas específicas que ela realiza, e evita conceder mais privilégios do que o necessário.

Este guia explica como especificar uma conta de serviço gerenciada pelo usuário ao implantar uma nova versão. Se você não precisar criar uma conta de serviço distinta ao implantar uma versão específica do aplicativo, continue usando a conta de serviço padrão deixando de especificar uma conta de serviço.

Como criar uma conta de serviço gerenciada pelo usuário

Para criar uma conta de serviço gerenciada pelo usuário, consulte estas instruções. Ao definir os papéis do Identity and Access Management (IAM) para conceder à conta de serviço, consulte Papéis que concedem acesso ao App Engine.

Se você precisar analisar os conceitos do IAM antes de criar sua conta de serviço, consulte a Visão geral dos conceitos do IAM e os guias das contas de serviço.

Depois de criar a conta de serviço gerenciado pelo usuário, é possível atualizar a conta de serviço padrão no nível do aplicativo usando 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

Substitua:

  • SERVICE_ACCOUNT_NAME pelo nome da conta de serviço que você criou.
  • PROJECT_ID pelo ID do projeto Google Cloud em que você quer atribuir a conta de serviço.

Cada nova versão implantada após essa atualização usa a nova conta de serviço padrão no nível do aplicativo, a menos que você atribua explicitamente uma conta de serviço específica da versão.

Console

  1. Acesse a guia Configurações do aplicativo do App Engine no console e clique em Editar configurações do aplicativo.

    Acesse as configurações do aplicativo

  2. Escolha uma conta de serviço padrão no nível do aplicativo em Selecionar uma conta de serviço e clique em Salvar.

    Você será redirecionado para a guia Configurações do aplicativo, em que poderá ver o endereço de e-mail da sua conta de serviço padrão atualizada no nível do app. Por exemplo: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

    Cada nova versão implantada após essa atualização usa a nova conta de serviço padrão no nível do aplicativo, a menos que você atribua explicitamente uma conta de serviço específica da versão.

Como especificar uma conta de serviço ao implantar o aplicativo

gcloud

Execute o comando gcloud app deploy e especifique a conta de serviço:

gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

appengine-web.xml

No seu arquivo appengine-web.xml, especifique a conta de serviço adicionando o elemento <service-account>:

<service-account>SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com</service-account>

Próximas etapas

Siga as práticas recomendadas para trabalhar usando contas de serviço.