Come funzionano le credenziali predefinite dell'applicazione

In questa pagina vengono descritte le posizioni in cui l'Credenziali predefinite dell'applicazione (ADC) cerca le credenziali. Comprendere il funzionamento di ADC può aiutarti a comprendere quali credenziali utilizza ADC e come le trova.

Application Default Credentials (ADC) è una strategia utilizzata dalle librerie di autenticazione per trovare automaticamente le credenziali in base all'ambiente dell'applicazione. Le librerie di autenticazione rendono disponibili queste credenziali per le librerie client di Cloud e le librerie client delle API di Google. Quando utilizzi ADC, il tuo codice può essere eseguito in un ambiente di sviluppo o di produzione senza modificare il modo in cui l'applicazione esegue l'autenticazione ai servizi e alle API Google Cloud.

Per informazioni su come fornire le credenziali ad ADC, vedi Configurare le credenziali predefinite dell'applicazione.

Ordine di ricerca

ADC cerca le credenziali nelle seguenti posizioni:

  1. Variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS
  2. Configurazione delle credenziali utente mediante Google Cloud CLI
  3. L'account di servizio collegato, restituito dal server dei metadati

L'ordine delle località che ADC controlla le credenziali non è correlato al merito relativo di ciascuna località. Per informazioni sui modi migliori per fornire le credenziali ad ADC, consulta Configurare le credenziali predefinite dell'applicazione.

Variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS

Puoi utilizzare la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS per indicare la posizione di un file JSON delle credenziali. Questo file JSON può essere uno dei seguenti tipi di file:

  • Un file di configurazione delle credenziali per la federazione delle identità per la forza lavoro

    La federazione delle identità per la forza lavoro consente di utilizzare un provider di identità (IdP) esterno per autenticare e autorizzare gli utenti ad accedere alle risorse di Google Cloud. Per ulteriori informazioni, consulta Federazione delle identità per la forza lavoro nella documentazione di Identity and Access Management (IAM).

  • Un file di configurazione delle credenziali per la federazione delle identità per i carichi di lavoro

    La federazione delle identità per i carichi di lavoro consente di utilizzare un IdP esterno per autenticare e autorizzare i carichi di lavoro per l'accesso alle risorse Google Cloud. Per ulteriori informazioni, consulta Autenticazione mediante librerie client, gcloud CLI o Terraform nella documentazione di Identity and Access Management (IAM).

  • Una chiave dell'account di servizio

    Le chiavi dell'account di servizio creano un rischio per la sicurezza e sono sconsigliate. A differenza degli altri tipi di file delle credenziali, le chiavi degli account di servizio compromesse possono essere utilizzate da un utente malintenzionato senza ulteriori informazioni. Per ulteriori informazioni, consulta le best practice per l'utilizzo e la gestione delle chiavi degli account di servizio.

Credenziali utente fornite mediante gcloud CLI

Puoi fornire le credenziali utente ad ADC eseguendo il comando gcloud auth application-default login. Questo comando posiziona un file JSON contenente le credenziali che fornisci (di solito dal tuo account utente) in una posizione nota sul tuo file system. La località dipende dal sistema operativo.

  • Linux e macOS: $HOME/.config/gcloud/application_default_credentials.json
  • Windows: %APPDATA%\gcloud\application_default_credentials.json

Le credenziali fornite ad ADC mediante gcloud CLI sono distinte dalle tue credenziali gcloud, ovvero quelle utilizzate da gcloud CLI per eseguire l'autenticazione in Google Cloud. Per ulteriori informazioni su questi due set di credenziali, consulta Configurazione dell'autenticazione a riga di comando gcloud e configurazione ADC .

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.

L'account di servizio collegato

Molti servizi Google Cloud ti consentono di collegare un account di servizio che può essere utilizzato per fornire le credenziali per accedere alle API Google Cloud. Se ADC non trova le credenziali che può utilizzare nella variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS o nella posizione nota per le credenziali ADC locali, utilizza il server di metadati per ottenere le credenziali per il servizio su cui è in esecuzione il codice.

L'utilizzo delle credenziali dell'account di servizio collegato è il metodo preferito per trovare le credenziali in un ambiente di produzione su Google Cloud. Per utilizzare l'account di servizio collegato, segui questi passaggi:

  1. Creare un account di servizio gestito dall'utente.
  2. Concedi all'account di servizio i ruoli IAM con privilegi minimi possibili.
  3. Collega l'account di servizio alla risorsa su cui è in esecuzione il codice.

Per informazioni sulla creazione di un account di servizio, consulta Creazione e gestione degli account di servizio. Per informazioni sul collegamento di un account di servizio, consulta Collegamento di un account di servizio a una risorsa. Per informazioni su come determinare i ruoli IAM richiesti per l'account di servizio, consulta l'articolo sulla scelta dei ruoli predefiniti.

Passaggi successivi