Questo documento mostra come utilizzare la federazione delle identità per i workload con le Google Cloud librerie di autenticazione, note come librerie di autenticazione, per autenticare i workload da provider di identità di terze parti come AWS, Microsoft Azure e provider che supportano OpenID Connect (OIDC) o SAML 2.0.
La federazione delle identità per i workload consente alle applicazioni in esecuzione all'esterno Google Clouddi accedere alle Google Cloud risorse senza utilizzare le chiavi dei account di servizio. Le librerie di autenticazione Google lo consentono scambiando le credenziali esterne con token di accesso a breve durata Google Cloud .
Per l'autenticazione, puoi ottenere le credenziali esterne utilizzando i seguenti metodi:
- Meccanismo standard per configurazioni comuni.
- Fornitori di credenziali personalizzati per workflow complessi che richiedono di scrivere il proprio codice.
Prima di iniziare
Abilita le API richieste.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore di Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.Configura la federazione delle identità per i workload con il tuo provider di identità.
Autenticazione mediante il meccanismo di credenziali standard
Per i provider di identità di terze parti supportati di frequente, puoi utilizzare le Google Cloud funzionalità integrate della libreria di autenticazione per autenticare i carichi di lavoro generando un file di configurazione delle credenziali. Questo file fornisce le informazioni necessarie alle librerie di autenticazione per federare le identità da provider esterni.
Il file di configurazione delle credenziali, in genere caricato utilizzando la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS, può indicare alle librerie di autenticazione di ottenere il token soggetto di terze parti utilizzando uno dei seguenti metodi:
- Origine file: la libreria legge il token soggetto da un file locale. Una procedura separata deve garantire che questo file contenga un token valido e non scaduto.
- Origine URL: la libreria recupera il token soggetto effettuando una richiesta a un endpoint URL locale specificato.
- Origine eseguibile: la libreria esegue un comando eseguibile configurato. L'output standard dell'eseguibile deve contenere il token soggetto.
Genera il file di configurazione delle credenziali per il tuo provider specifico:
- AWS
- Azure
Provider di identità OIDC o SAML
Questa pagina include le istruzioni per quanto segue:
Utilizza il file di configurazione delle credenziali per l'autenticazione.
Per consentire alle Google Cloud librerie client di individuare e utilizzare automaticamente il tuo file di configurazione delle credenziali, imposta la
GOOGLE_APPLICATION_CREDENTIALSvariabile di ambiente sul percorso del file JSON generato.Esporta la variabile di ambiente nella shell:
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.jsonDopo aver impostato la variabile di ambiente, le librerie client gestiscono il flusso di autenticazione.
Il seguente esempio di codice mostra come effettuare una chiamata autenticata a un' Google Cloud API:
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Autenticazione mediante fornitori di credenziali personalizzati
Se il tuo ambiente non supporta le funzionalità integrate della libreria di autenticazione Google o se vuoi implementare una logica personalizzata per fornire le credenziali alla libreria di autenticazione Google, utilizza i fornitori di credenziali personalizzati per autenticare i carichi di lavoro.
Accesso alle risorse da AWS
Quando inizializzi il client di autenticazione, fornisci un'implementazione personalizzata di un fornitore di credenziali. L'istanza del client rimanda al fornitore per recuperare le credenziali di sicurezza AWS da scambiare con un Google Cloud token di accesso. Il fornitore deve restituire credenziali valide e non scadute quando il client lo chiama.
Il client di autenticazione non memorizza nella cache le credenziali di sicurezza AWS o la regione restituite, quindi implementa la memorizzazione nella cache nel fornitore per evitare richieste ridondanti per le stesse risorse.
I seguenti esempi di codice mostrano come configurare l'accesso alle Google Cloud risorse da AWS con un fornitore di credenziali personalizzato.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Accesso alle risorse da OIDC e SAML
Quando inizializzi il client di autenticazione, fornisci un fornitore di token personalizzato per fornire un token soggetto che viene scambiato con un Google Cloud token di accesso. Il fornitore deve restituire un token soggetto valido e non scaduto quando il client lo chiama.
Il client di autenticazione non memorizza nella cache il token restituito, quindi implementa la memorizzazione nella cache nel fornitore per evitare richieste ridondanti per lo stesso token soggetto.
I seguenti esempi di codice mostrano come configurare l'accesso alle Google Cloud risorse da provider che supportano OpenID Connect (OIDC) o SAML 2.0 con un fornitore di credenziali personalizzato.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta Librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Passaggi successivi
- Scopri di più sulla federazione delle identità per i workload.