Questa pagina descrive come configurare le credenziali predefinite dell'applicazione (ADC) per l'utilizzo da parte delle librerie client di Cloud, delle librerie client delle API di Google e delle API REST e RPC in una varietà di ambienti. Puoi configurare ADC fornendo le credenziali ad ADC nell'ambiente in cui viene eseguito il codice.
Application Default Credentials (ADC) è una strategia utilizzata dalle librerie di autenticazione di Google per trovare automaticamente le credenziali in base all'ambiente dell'applicazione. Le librerie di autenticazione rendono queste credenziali disponibili alle librerie client Cloud e alle 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 la modalità di autenticazione dell'applicazione ai servizi e alle API di Google Cloud.
Per informazioni su dove ADC cerca le credenziali e in quale ordine, vedi Come funzionano le credenziali predefinite dell'applicazione.
Se utilizzi chiavi API, non è necessario configurare ADC. Per ulteriori informazioni, consulta la sezione Utilizzo delle chiavi API.
Come fornire le credenziali ad ADC
Scegli l'ambiente in cui viene eseguito il codice:
- Ambiente di sviluppo locale
- Cloud Shell o altri ambienti di sviluppo basati su cloud di Google Cloud
- Compute Engine o altri servizi Google Cloud che supportano il collegamento di un account di servizio
- Google Kubernetes Engine o GKE Enterprise
- On-premise o un altro cloud provider
Ambiente di sviluppo locale
Puoi fornire le tue credenziali utente o quelle dell'account di servizio ad ADC in un ambiente di sviluppo locale.
Credenziali utente
Quando il codice viene eseguito in un ambiente di sviluppo locale, ad esempio una workstation di sviluppo, la soluzione migliore è utilizzare le credenziali associate al tuo Account Google, chiamate anche credenziali utente.
Per fornire le tue credenziali utente ad ADC, utilizza Google Cloud CLI:
Installa e inizializza l'interfaccia a riga di comando gcloud.
Crea il tuo file delle credenziali:
gcloud auth application-default login
Viene visualizzata una schermata di accesso. Una volta effettuato l'accesso, le tue credenziali vengono archiviate nel file delle credenziali locali utilizzato da ADC.
Quando fornisci le credenziali utente per creare un file ADC locale, tieni presente quanto segue:
Le credenziali utente potrebbero non funzionare per alcuni metodi e API, come l'API Cloud Translation o l'API Cloud Vision, senza parametri aggiuntivi o configurazioni. Se viene visualizzato un messaggio di errore relativo alla mancata abilitazione dell'API nel progetto o che non è disponibile alcun progetto di quota, consulta la sezione Risoluzione dei problemi di configurazione dell'ADC.
L'ADC locale contiene i token di accesso e di aggiornamento. Qualsiasi utente con accesso al tuo file system può utilizzare queste credenziali. Se non hai più bisogno di queste credenziali locali, puoi revocarle utilizzando il comando
gcloud auth application-default revoke
.Se il tuo Account Google non dispone dei ruoli Identity and Access Management (IAM) richiesti nel progetto, il codice potrebbe non essere in grado di accedere ad alcune risorse. In questo caso, qualcuno deve concederti i ruoli richiesti.
Il file ADC locale è associato al tuo account utente, non alla configurazione gcloud CLI. La modifica di una configurazione gcloud CLI diversa non influisce sul file ADC locale o sulle credenziali fornite ad ADC.
Credenziali dell'account di servizio
Puoi configurare ADC con le credenziali di un account di servizio utilizzando la rappresentazione dell'account di servizio o una chiave dell'account di servizio.
Impersonificazione dell'account di servizio
Puoi utilizzare l'impersonificazione degli account di servizio per configurare un file ADC (ApplicationDefault Credentials) locale. Le librerie client che supportano la rappresentazione possono utilizzare automaticamente queste credenziali. I file ADC locali creati utilizzando la rappresentazione sono supportati nelle seguenti lingue:
- Go
- Java
- Node.js
- Python
Devi disporre del ruolo IAM Creatore token account di servizio (roles/iam.serviceAccountTokenCreator
) nell'account di servizio che stai impersonando. Per maggiori informazioni, consulta la sezione
Ruoli obbligatori.
Utilizza l'impersonificazione degli account di servizio per creare un file ADC locale:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL
Chiavi account di servizio
Se non puoi utilizzare le credenziali utente o l'impersonificazione di un account di servizio per lo sviluppo locale, puoi utilizzare una chiave dell'account di servizio.
Per creare una chiave dell'account di servizio e renderla disponibile per ADC:
Crea un account di servizio con i ruoli necessari per l'applicazione e una chiave per l'account di servizio seguendo le istruzioni riportate in Creazione di una chiave dell'account di servizio.
-
Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sul percorso del file JSON che contiene le tue credenziali. Questa variabile si applica solo alla sessione di shell attuale. Pertanto, se apri una nuova sessione, imposta di nuovo la variabile.
Ambiente di sviluppo Google Cloud basato su cloud
Quando utilizzi un ambiente di sviluppo basato su cloud di Google Cloud, come Cloud Shell o Cloud Code, lo strumento utilizza le credenziali che hai fornito al momento dell'accesso e gestisce tutte le autorizzazioni richieste. Non puoi utilizzare lgcloud CLI per fornire le credenziali ad ADC in questi ambienti. Se devi fornire un account utente diverso ad ADC o fornire le credenziali utilizzando un account di servizio, utilizza un ambiente di sviluppo locale o una risorsa di computing di Google Cloud come ambiente di sviluppo.
Servizi Google Cloud che supportano il collegamento di un account di servizio
Alcuni servizi Google Cloud, come Compute Engine, App Engine e Cloud Functions, supportano il collegamento di un account di servizio gestito dall'utente ad alcuni tipi di risorse. In genere, il collegamento di un account di servizio è supportato quando le risorse del servizio possono essere eseguite o includono il codice dell'applicazione. Quando colleghi un account di servizio a una risorsa, il codice in esecuzione sulla risorsa può utilizzare quell'account di servizio come identità.
Il collegamento di un account di servizio gestito dall'utente è il modo preferito per fornire le credenziali ad ADC per il codice di produzione in esecuzione su Google Cloud.
Per determinare i ruoli che devi fornire al tuo account di servizio, vedi Scegliere i ruoli predefiniti.
Per informazioni sulle risorse a cui puoi collegare un account di servizio e su come collegare l'account di servizio alla risorsa, consulta la documentazione IAM sul collegamento di un account di servizio.
Configura l'autenticazione:
-
Crea l'account di servizio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sostituisci
SERVICE_ACCOUNT_NAME
con un nome per l'account di servizio. -
Per fornire l'accesso al tuo progetto e alle tue risorse, concedi un ruolo all'account di servizio:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Sostituisci quanto segue:
SERVICE_ACCOUNT_NAME
: il nome dell'account di servizio.PROJECT_ID
: l'ID progetto in cui hai creato l'account di servizioROLE
: il ruolo da concedere
- Per concedere un altro ruolo all'account di servizio, esegui il comando come nel passaggio precedente.
-
Concedi al tuo Account Google un ruolo che ti consenta di utilizzare i ruoli dell'account di servizio e collegarlo ad altre risorse:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Sostituisci quanto segue:
SERVICE_ACCOUNT_NAME
: il nome dell'account di servizio.PROJECT_ID
: l'ID progetto in cui hai creato l'account di servizioUSER_EMAIL
: l'indirizzo email del tuo Account Google
GKE o GKE Enterprise
L'autenticazione per le applicazioni containerizzate in esecuzione su GKE o GKE Enterprise viene gestita in modo diverso tra gli ambienti di test locali e gli ambienti Google Cloud.
Testa le applicazioni containerizzate in locale
Per testare la tua applicazione containerizzata sulla workstation locale, puoi configurare i container per l'autenticazione con il tuo file delle credenziali locali. Per testare i container, utilizza un'implementazione Kubernetes locale come minikube e il componente aggiuntivo minikube dell'autenticazione GCP.
Esegui applicazioni containerizzate su Google Cloud
L'autenticazione per gli ambienti containerizzati di Google Cloud è configurata in modo diverso a seconda del contesto:
- Per GKE Enterprise, consulta la panoramica sull'autenticazione e Utilizzare Workload Identity del parco risorse.
- Per GKE, vedi Utilizzare Workload Identity per GKE.
- Per Cloud Run for Anthos, consulta Utilizzo di Workload Identity per Cloud Run for Anthos.
On-premise o un altro cloud provider
Se esegui la tua applicazione al di fuori di Google Cloud, devi fornire credenziali riconosciute da Google Cloud per utilizzare i servizi Google Cloud.
Federazione delle identità per i carichi di lavoro
Il modo migliore per eseguire l'autenticazione con Google Cloud utilizzando le credenziali di un provider di identità diverso è utilizzare la federazione delle identità per i carichi di lavoro. Crea un file di configurazione delle credenziali e imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS
in modo che rimandi al file. Questo approccio è più sicuro rispetto alla creazione di una chiave dell'account di servizio.
Per assistenza sulla configurazione della federazione delle identità per i carichi di lavoro per ADC, consulta Configurazione della federazione delle identità per i carichi di lavoro e Ottenere credenziali di breve durata con la federazione delle identità.
Chiave account di servizio
Se non riesci a configurare la federazione delle identità per i carichi di lavoro, devi creare un account di servizio, concedere i ruoli IAM richiesti dall'applicazione e creare una chiave per l'account di servizio.
Per creare una chiave dell'account di servizio e renderla disponibile per ADC:
Crea un account di servizio con i ruoli necessari per l'applicazione e una chiave per l'account di servizio seguendo le istruzioni riportate in Creazione di una chiave dell'account di servizio.
Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sul percorso del file JSON che contiene le tue credenziali. Questa variabile si applica solo alla sessione di shell attuale. Pertanto, se apri una nuova sessione, imposta di nuovo la variabile.
Passaggi successivi
- Scopri di più su come ADC trova le credenziali.
- Autenticazione per l'utilizzo delle librerie client di Cloud.
- Scopri l'autenticazione in Google.