Resolver problemas de configuração do ADC

Nesta página, descrevemos alguns problemas comuns que você pode encontrar ao usar o Application Default Credentials (ADC).

Para informações sobre como o ADC funciona, incluindo onde as credenciais são encontradas, consulte Como o Application Default Credentials funciona.

As credenciais do usuário não funcionam

Se a sua solicitação de API retornar uma mensagem de erro informando que as credenciais do usuário final não são compatíveis com essa API, que a API não está sendo ativada no projeto ou que nenhum projeto de cota está definido, leia as seguintes informações.

Há dois tipos de APIs do Google Cloud:

  • APIs baseadas em recursos, que usam o projeto associado aos recursos que estão sendo acessados para faturamento e cota.

  • APIs baseadas em cliente, que usam o projeto associado à conta que acessa os recursos para faturamento e cota.

Ao fornecer credenciais de usuário para se autenticar em uma API baseada em cliente, você precisa especificar o projeto a ser usado para faturamento e cota. Esse projeto é chamado de projeto de cota.

Há várias maneiras de especificar um projeto de cota, incluindo as seguintes opções:

  • Atualize o ADC para usar um projeto diferente como o projeto de cota:

    gcloud auth application-default set-quota-project YOUR_PROJECT
    
  • Se você estiver chamando a API REST ou RPC diretamente, use o cabeçalho HTTP x-goog-user-project para especificar um projeto de cota em cada solicitação. Para detalhes, consulte Definir o projeto de cota com uma solicitação REST.

Você precisa ter a permissão do IAM serviceusage.services.use para que um projeto possa designá-lo como seu projeto de faturamento. A permissão serviceusage.services.use está incluída no papel de IAM de consumidor do Service Usage. Se você não tiver a permissão serviceusage.services.use para nenhum projeto, entre em contato com o administrador de segurança ou um proprietário do projeto que possa conceder a você o papel Consumidor do Service Usage no projeto.

Para saber mais sobre projetos de cotas, consulte Visão geral do projeto de cotas. Para saber mais sobre outras maneiras de definir o projeto de cota, consulte Definir o projeto de cota.

Credenciais incorretas

Se as credenciais aparentemente não fornecerem o acesso esperado ou não forem encontradas, verifique o seguinte:

  • Se você estiver usando a CLI da gcloud para acessar o Google Cloud em um ambiente local, verifique quais credenciais você está usando. Ao usar a CLI da gcloud, você está usando as credenciais fornecidas para a CLI da gcloud usando o comando gcloud auth login. Você não está usando as credenciais que forneceu ao ADC. Para mais informações sobre esses dois conjuntos de credenciais, consulte Credenciais do ADC e da gcloud.

  • Verifique se a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS está definida somente se você estiver usando uma chave de conta de serviço ou outro arquivo JSON para o ADC. As credenciais indicadas pela variável de ambiente têm precedência sobre outras credenciais, inclusive para a Identidade da carga de trabalho.

  • Confirme se o principal que está fazendo a solicitação tem os papéis do IAM necessários. Se você estiver usando credenciais de usuário, os papéis precisarão ser concedidos ao endereço de e-mail associado à Conta do Google. Se você estiver usando uma conta de serviço, ela precisará ter os papéis necessários.

  • Se você fornecer uma chave de API com a solicitação de API, ela terá precedência sobre o ADC em qualquer local. Se você tiver definido a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS e estiver usando uma chave de API, a API poderá retornar um aviso informando que as credenciais fornecidas ao ADC estão sendo ignoradas. Para interromper o alerta, desative a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.

Tipo de credencial não reconhecido

Se a solicitação de API retornar um erro que inclua "Erro ao criar a credencial no JSON. Tipo de credencial não reconhecido". Verifique se você está usando uma credencial válida. Os arquivos de ID do cliente não são compatíveis com credenciais do ADC.