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