Questa pagina descrive alcuni problemi comuni che potresti riscontrare durante l'utilizzo delle credenziali predefinite dell'applicazione (ADC).
Per informazioni sul funzionamento delle credenziali predefinite dell'applicazione, incluso dove si trovano, consulta Come funzionano le credenziali predefinite dell'applicazione.
Credenziali utente non funzionanti
Se la richiesta API restituisce un messaggio di errore che indica che le credenziali utente non sono supportata da questa API, l'API non è abilitata nel progetto o nessuna quota progetto che stai impostando, rivedi le seguenti informazioni.
Esistono due tipi di API Google Cloud:
API basate sulle risorse, che utilizzano il progetto associato alle risorse a cui si accede per la fatturazione e la quota.
API basate su client, che utilizzano il progetto associato al client per accedere alle risorse per la fatturazione e la quota.
Quando fornisci le credenziali utente per l'autenticazione in un'API basata su client, devi specificare il progetto da utilizzare per la fatturazione e la quota. Questo progetto è chiamato project quota.
Esistono diversi modi per specificare un progetto quota, tra cui le seguenti opzioni:
Aggiorna il file ADC per utilizzare un progetto diverso come progetto di quota:
gcloud auth application-default set-quota-project YOUR_PROJECT
Se utilizzi gcloud CLI per chiamare l'API, puoi impostare il progetto quota nella configurazione di gcloud CLI:
gcloud config set billing/quota_project YOUR_PROJECT
Se chiami direttamente l'API REST o RPC, utilizza dell'intestazione HTTP
x-goog-user-project
per specificare un progetto di quota richiesta. Per maggiori dettagli, vedi Imposta il progetto di quota con una richiesta REST.
Per poter designare un progetto come progetto di fatturazione, devi disporre dell'autorizzazione IAM serviceusage.services.use
per quel progetto. L'autorizzazione serviceusage.services.use
è inclusa nel ruolo IAM Consumer di utilizzo dei servizi. Se non hai serviceusage.services.use
l'autorizzazione per qualsiasi progetto, contatta l'amministratore della sicurezza o
che può concederti il ruolo consumer di Service Usage nel progetto.
Per ulteriori informazioni sui progetti quota, consulta Panoramica dei progetti quota. Per informazioni su altri modi Per impostare il progetto di quota, consulta Impostare il progetto di quota.
Credenziali non corrette
Se le tue credenziali non sembrano fornire l'accesso previsto o non ti forniscono trovato, controlla quanto segue:
Se utilizzi gcloud CLI per accedere a Google Cloud in un ambiente locale, assicurati di sapere quali credenziali stai utilizzando. Quando utilizzi gcloud CLI, utilizzi le credenziali forniti a gcloud CLI mediante
gcloud auth login
. Non utilizzi le credenziali che hai fornito all'ADC. Per maggiori informazioni informazioni su questi due set di credenziali, vedi Configurazione dell'autenticazione gcloud CLI e ADC.Assicurati che la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sia impostata solo se utilizzi una chiave dell'account di servizio o un altro file JSON per l'ADC. Le credenziali a cui punta la variabile di ambiente hanno la precedenza sulle e altre credenziali, inclusa la federazione delle identità per i carichi di lavoro per GKE.Verifica che l'entità che effettua la richiesta disponga dei necessari i ruoli IAM. Se utilizzi le credenziali utente, i ruoli devono essere assegnati all'indirizzo email associato all'account utente. Se stai utilizzando un account di servizio, quest'ultimo deve avere i ruoli richiesti.
Se fornisci una chiave API con la richiesta API, la chiave API ha la precedenza sull'ADC in qualsiasi località. Se hai impostato la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
e utilizzi una chiave API, l'API potrebbe restituire un avviso che ti informa che le credenziali che hai fornito all'ADC vengono ignorate. Per interrompere l'avviso, annulla l'impostazione delGOOGLE_APPLICATION_CREDENTIALS
variabile di ambiente.
Tipo di credenziale non riconosciuto
Se la richiesta dell'API restituisce un errore che include "Errore durante la creazione della credenziale da JSON". Tipo di credenziali non riconosciuto", assicurati di utilizzare un valore valido la credenziale. I file ID cliente non sono supportati per fornire le credenziali per l'ADC.
Accesso bloccato quando si utilizzano gli ambiti
Quando provi a creare un file ADC locale e viene restituito un errore simile a "Questa app è bloccata" o "Accesso bloccato: errore di autorizzazione", potresti essere in procinto di utilizzare ambiti non supportati dal comando di configurazione ADC predefinito. In genere, questo problema è causato dall'aggiunta di ambiti per applicazioni esterne a Google Cloud, come Google Drive.
Per impostazione predefinita, i token di accesso generati da un file ADC locale creato con le credenziali utente includono
l'ambito a livello di cloud https://www.googleapis.com/auth/cloud-platform
.
Per specificare gli ambiti in modo esplicito, utilizza il
–-scopes
flag
con il comando gcloud auth application-default login
.
Per aggiungere ambiti per servizi esterni a Google Cloud, ad esempio Google Drive,
crea un ID client OAuth
e la fornisci al comando gcloud auth application-default login
utilizzando
–-client-id-file
, che specifica
i tuoi ambiti con
-–scopes
.