Como o Application Default Credentials funciona

Nesta página, descrevemos os locais em que o Application Default Credentials (ADC) procura credenciais. Entender como o ADC funciona ajuda a saber quais credenciais o ADC está usando e como elas são encontradas.

O Application Default Credentials (ADC) é uma estratégia usada pelas bibliotecas de autenticação do Google para encontrar credenciais automaticamente com base no ambiente do aplicativo. As bibliotecas de autenticação disponibilizam essas credenciais para as bibliotecas de cliente do Cloud e as bibliotecas de cliente da API do Google. Ao usar o ADC, o código pode ser executado em um ambiente de desenvolvimento ou produção sem mudar a forma como o aplicativo é autenticado nos serviços e nas APIs do Google Cloud.

Para informações sobre como fornecer credenciais ao ADC, consulte Configurar o Application Default Credentials.

Pesquisar pedido

O ADC procura credenciais nos seguintes locais:

  1. GOOGLE_APPLICATION_CREDENTIALS variável de ambiente
  2. Credenciais do usuário configuradas usando a Google Cloud CLI
  3. Conta de serviço anexada, retornada pelo servidor de metadados

A ordem dos locais em que o ADC verifica credenciais não está relacionada ao mérito relativo de cada local. Se quiser ajuda para entender as melhores maneiras de fornecer credenciais ao ADC, consulte Configurar o Application Default Credentials.

GOOGLE_APPLICATION_CREDENTIALS variável de ambiente

É possível usar a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS para fornecer o local de um arquivo JSON da credencial. Esse arquivo JSON pode ser um destes tipos de arquivo:

  • Um arquivo de configuração de credenciais para a federação de identidade da carga de trabalho

    A federação de identidade de colaboradores permite usar um provedor de identidade externo para autenticar e autorizar os usuários a acessar os recursos do Google Cloud. Para mais informações, consulte Federação de identidade de colaboradores na documentação do Identity and Access Management (IAM).

  • Um arquivo de configuração de credenciais para a federação de identidade da carga de trabalho

    A federação de identidade da carga de trabalho permite usar um provedor de identidade externo para autenticar e autorizar cargas de trabalho a acessar os recursos do Google Cloud. Para mais informações, consulte Como autenticar usando bibliotecas de cliente, CLI gcloud ou Terraform na documentação do Identity and Access Management (IAM).

  • Uma chave de conta de serviço

    As chaves de conta de serviço criam um risco de segurança e não são recomendadas. Ao contrário dos outros tipos de arquivo de credenciais, as chaves da conta de serviço comprometidas podem ser usadas por um usuário de má-fé sem qualquer outra informação. Para mais informações, consulte Práticas recomendadas para usar e gerenciar chaves de conta de serviço.

Credenciais do usuário fornecidas pela gcloud CLI

É possível fornecer credenciais de usuário ao ADC executando o comando gcloud auth application-default login. Esse comando coloca um arquivo JSON, que contém as credenciais fornecidas (geralmente pela sua própria Conta do Google), em um local conhecido do sistema de arquivos. A localização depende do sistema operacional:

  • Linux, macOS: $HOME/.config/gcloud/application_default_credentials.json
  • Windows: %APPDATA%\gcloud\application_default_credentials.json

As credenciais que você fornece ao ADC usando a CLI gcloud são diferentes das credenciais da gcloud, ou seja, as credenciais que a CLI gcloud usa para autenticar para o Google Cloud. Para mais informações sobre esses dois conjuntos de credenciais, consulte credenciais da CLI da gcloud e credenciais ADC.

Conta de serviço anexada

Muitos serviços do Google Cloud permitem que você anexe uma conta de serviço que possa ser usada para fornecer credenciais de acesso às APIs do Google Cloud. Se o ADC não encontrar credenciais que possam ser usadas na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS ou no local conhecido para as credenciais da Conta do Google, ele usará o servidor de metadados para ver as credenciais do serviço em que o código está sendo executado.

O método preferencial para encontrar credenciais em um ambiente de produção no Google Cloud é usar as credenciais da conta de serviço anexada. Para usar a conta de serviço anexada, siga estas etapas:

  1. Crie uma conta de serviço gerenciada pelo usuário.
  2. Conceda a essa conta de serviço os papéis de privilégio mínimo do IAM.
  3. Anexe a conta de serviço ao recurso em que seu código está sendo executado.

Se precisar de ajuda para criar uma conta de serviço, consulte Como criar e gerenciar contas de serviço. Para receber ajuda sobre como anexar uma conta de serviço, consulte Como anexar uma conta de serviço a um recurso. Se precisar de ajuda para determinar os papéis de IAM necessários para a conta de serviço, consulte Escolher papéis predefinidos.

A seguir