Risolvere i problemi di configurazione dell'ADC

In questa pagina vengono descritti alcuni problemi comuni che potresti riscontrare quando utilizzi le Credenziali predefinite dell'applicazione (ADC).

Per informazioni sul funzionamento di ADC, incluso dove vengono trovate le credenziali, vedi Come funzionano le credenziali predefinite dell'applicazione.

Credenziali utente non funzionanti

Se la tua richiesta API restituisce un messaggio di errore che indica che le credenziali utente non sono supportate da questa API, che l'API non è abilitata nel progetto o non è stata impostata alcuna quota per il progetto, rivedi le informazioni seguenti.

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 che accede alle risorse per la fatturazione e la quota.

Quando fornisci le credenziali utente per l'autenticazione a 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 di quota, tra cui le seguenti opzioni:

  • Aggiorna ADC per utilizzare un progetto diverso come progetto di quota:

    gcloud auth application-default set-quota-project YOUR_PROJECT
    
  • Se chiami direttamente l'API REST o RPC, utilizza l'intestazione HTTP x-goog-user-project per specificare un progetto di quota in ogni richiesta. Per maggiori dettagli, consulta Impostare il progetto di quota con una richiesta REST.

Devi disporre dell'autorizzazione IAM serviceusage.services.use affinché un progetto possa designarlo come progetto di fatturazione. L'autorizzazione serviceusage.services.use è inclusa nel ruolo IAM consumer di Service Usage. Se non hai l'autorizzazione serviceusage.services.use per alcun progetto, contatta l'amministratore della sicurezza o un proprietario del progetto che possa concederti il ruolo consumer di Service Usage nel progetto.

Per ulteriori informazioni sui progetti di quota, consulta Panoramica del progetto di 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 vengono trovate, controlla quanto segue:

  • Se utilizzi gcloud CLI per accedere a Google Cloud in un ambiente locale, assicurati di comprendere quali credenziali stai utilizzando. Quando utilizzi gcloud CLI, utilizzi le credenziali che hai fornito a gcloud CLI mediante il comando gcloud auth login. Non stai utilizzando le credenziali che hai fornito ad ADC. Per ulteriori informazioni su questi due set di credenziali, consulta Configurazione dell'autenticazione a riga di comando gcloud e configurazione 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 ADC. Le credenziali a cui punta dalla variabile di ambiente hanno la precedenza sulle altre credenziali, anche per Workload Identity.

  • Verifica che l'entità che effettua la richiesta disponga dei ruoli IAM richiesti. Se utilizzi le credenziali utente, i ruoli devono essere concessi all'indirizzo email associato all'account utente. Se utilizzi un account di servizio, questo deve avere i ruoli richiesti.

  • Se fornisci una chiave API con la richiesta API, la chiave API ha la precedenza su 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 per informarti che le credenziali che hai fornito ad ADC vengono ignorate. Per interrompere l'avviso, annulla l'impostazione della variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS.

Tipo di credenziali non riconosciuto

Se la tua richiesta API restituisce un errore che include "Errore durante la creazione della credenziale da JSON. Tipo di credenziali non riconosciuto", assicurati di utilizzare una credenziali valida. I file ID client non sono supportati per fornire le credenziali per ADC.

Accesso bloccato: errore di autorizzazione

Se viene visualizzato questo errore durante la creazione di un file ADC locale con le tue credenziali utente, significa che stai tentando di aggiungere alla tua configurazione ADC ambiti non supportati dal comando di configurazione ADC predefinito. In genere, questo problema è causato dall'aggiunta di ambiti per applicazioni esterne a Google Cloud, ad esempio 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 flag –-scopes 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 forniscilo al comando gcloud auth application-default login utilizzando il flag –-client-id-file, specificando i tuoi ambiti con il flag -–scopes.