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 vengono trovate, consulta Come funzionano le credenziali predefinite dell'applicazione.
Le credenziali utente non funzionano
Se la richiesta API restituisce un messaggio di errore relativo al fatto che le credenziali utente non sono supportate da questa API, che l'API non è abilitata nel progetto o che non è stato impostato alcun progetto quota, esamina le seguenti informazioni.
Esistono due tipi di Google Cloud API:
API basate sulle risorse, che utilizzano il progetto associato alle risorse a cui viene eseguito l'accesso 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 progetto quota.
Esistono diversi modi per specificare un progetto quota, tra cui le seguenti opzioni:
Aggiorna il file ADC in modo da utilizzare un progetto diverso come progetto 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 l'
x-goog-user-project
intestazione HTTP per specificare un progetto quota in ogni richiesta. Per maggiori dettagli, consulta Impostare il progetto 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 disponi dell'autorizzazione serviceusage.services.use
per nessun progetto, contatta l'amministratore della sicurezza o un proprietario del progetto che possa assegnarti il ruolo Consumer di utilizzo del servizio nel progetto.
Per ulteriori informazioni sui progetti quota, consulta Panoramica dei progetti quota. Per informazioni su altri modi per impostare il progetto quota, consulta Impostare il progetto quota.
Credenziali non corrette
Se le tue credenziali non sembrano fornire l'accesso previsto o non vengono ritrovate, controlla quanto segue:
Se utilizzi gcloud CLI per accedere Google Cloud in un ambiente locale, assicurati di sapere quali credenziali stai utilizzando. Quando utilizzi gcloud CLI, utilizzi le credenziali che hai fornito a gcloud CLI utilizzando il comando
gcloud auth login
. Non utilizzi le credenziali che hai fornito all'ADC. Per ulteriori informazioni su questi due set di credenziali, consulta la configurazione dell'autenticazione dell'interfaccia a riga di comando gcloud e la configurazione dell'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 fa riferimento la variabile di ambiente hanno la precedenza su altre credenziali, incluse quelle per Workload Identity Federation per GKE.Verifica che il principale che effettua la richiesta disponga dei ruoli IAM richiesti. Se utilizzi le credenziali utente, i ruoli devono essere assegnati all'indirizzo email associato all'account utente. Se utilizzi un account di servizio, questo deve disporre dei 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, reimposta la variabile di ambienteGOOGLE_APPLICATION_CREDENTIALS
.
Tipo di credenziale non riconosciuto
Se la richiesta API restituisce un errore che include Error creating credential
from JSON. Unrecognized credential type
, assicurati di utilizzare un'autenticazione valida. I file ID cliente non sono supportati per fornire le credenziali per l'ADC.
Errore restituito per le credenziali locali dall'usurpazione dell'identità dell'account di servizio
Le credenziali di un file ADC locale generato utilizzando l'usurpazione di identità dell'account di servizio non sono supportate da tutte le librerie di autenticazione. Se la chiamata restituisce un errore simile a Neither metadata server or valid service
account credentials are found
, non puoi utilizzare le credenziali di identità rubate locali per questa attività.
Per evitare questo errore, crea il file ADC dalle tue credenziali utente o esegui il codice in un ambiente in cui è disponibile un server di metadati (ad esempio Compute Engine).
Progetto 764086051850
sconosciuto utilizzato per la richiesta
Il progetto 764086051850
è il progetto utilizzato dall'interfaccia a riga di comando gcloud. Se visualizzate errori di autenticazione che fanno riferimento a questo progetto, significa che state tentando di utilizzare un'API basata su client e non avete impostato sia il progetto sia il progetto quota per la configurazione.
Per saperne di più, vedi Credenziali utente non funzionanti.
Accesso bloccato quando si utilizzano gli ambiti
Quando provi a creare un file ADC locale e viene restituito un errore simile a This app
is blocked
o Access blocked: Authorization Error
, potresti essere
tentato 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, come Google Drive,
crea un ID client OAuth
e forniscilo al comando gcloud auth application-default login
utilizzando il
–-client-id-file
flag, specificando
i tuoi ambiti con il
-–scopes
flag.