Questa guida descrive come utilizzare la federazione Workload Identity con altri provider di identità (IdP).
I carichi di lavoro in esecuzione al di fuori di Google Cloud potrebbero avere accesso a credenziali esistenti specifiche per l'ambiente, ad esempio:
Un carico di lavoro potrebbe essere in grado di ottenere un'affermazione SAML o un token OpenID Connect (OIDC) da un provider di identità (IdP) che funziona nello stesso ambiente.
Per autenticarti su Google Cloud, puoi consentire al carico di lavoro di scambiare le sue credenziali specifiche dell'ambiente con credenziali Google Cloud di breve durata utilizzando la federazione delle identità di carico di lavoro.
Un carico di lavoro potrebbe avere un certificato X.509. Per ulteriori dettagli, consulta Configurare la federazione di Workload Identity con il certificato X.509 (anteprima). I requisiti delle chiavi di firma X.509 SAML includono quanto segue:
Una chiave pubblica RSA inserita in un certificato X.509 v3.
Requisiti di validità del certificato:
notBefore
: un timestamp non più lontano di 7 giorni nel futuronotAfter
: un timestamp non più lontano di 20 anni nel futuro
Algoritmi consigliati:
- RSAwithSHA256 (dimensioni della chiave supportate (bit): 2048, 3072, 4096)
- ECDSAwithSHA256
Un fornitore di pool di identità del workload può essere configurato con un massimo di tre chiavi di firma alla volta. Quando esistono più chiavi, Google Cloud le analizza e tenta di utilizzare ogni chiave non scaduta per soddisfare una richiesta di scambio di token.
Come best practice per la sicurezza, ti consigliamo vivamente di non riutilizzare la stessa coppia di chiavi con altri servizi.
Un carico di lavoro potrebbe avere altri tipi di credenziali.
Combinando la federazione delle identità per i carichi di lavoro con un broker di token personalizzato, puoi consentire ai carichi di lavoro di utilizzare altri tipi di credenziali per ottenere credenziali Google Cloud di breve durata.
L'utilizzo della federazione delle identità per i carichi di lavoro può aiutarti a ridurre il numero di credenziali che richiedono la rotazione.
Le sezioni seguenti descrivono come utilizzare la federazione delle identità dei carichi di lavoro con IdP che supportano i protocolli di autenticazione OpenID Connect (OIDC) o SAML.
Preparare l'IdP esterno
Questa procedura deve essere eseguita una sola volta per ogni IdP.
Prima di iniziare, verifica che la tua IdP esterna soddisfi i seguenti requisiti:
OIDC
L'IdP supporta OpenID Connect 1.0.
L'IdP ha un URI emittente.
I metadati OIDC dell'IdP vengono forniti in uno dei seguenti modi:
Endpoint JWKS protetti con SSL e TLS. Gli URL degli endpoint devono iniziare con
https://
e gli endpoint devono essere accessibili pubblicamente su internet.Google Cloud utilizza questi endpoint per scaricare il set di chiavi dell'identità provider e per convalidare i token.
Gli endpoint protetti con certificati autofirmati non sono supportati da Google Cloud. In particolare, i campi
x5c
ex5t
non sono supportati e devono essere rimossi dal JWK OIDC.Un file JWKS OIDC caricato su Google Cloud. Se utilizzi questo metodo, l'endpoint non deve essere pubblico.
SAML
L'IdP supporta SAML 2.0.
L'IdP fornisce un documento di metadati del fornitore di servizi SAML che descrive la configurazione del fornitore di servizi SAML e contiene il certificato di firma dell'IdP.
Google Cloud utilizza questo certificato per convalidare le asserzioni e le risposte SAML.
Se la tua IdP soddisfa questi criteri, svolgi i seguenti passaggi:
OIDC
Configura l'IdP in modo che il tuo carico di lavoro possa ottenere token ID che soddisfino i seguenti criteri:
- I token vengono firmati utilizzando l'algoritmo
RS256
oES256
. I token contengono un claim
aud
con il seguente valore:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero di progetto del progetto Google Cloud che utilizzi per creare il pool di identità del carico di lavoro.POOL_ID
: un ID a tua scelta che identifica il pool di identità del workload. Devi utilizzare lo stesso ID quando crei il pool di identità di carico di lavoro in un secondo momento.PROVIDER_ID
: un ID a tua scelta che identifica il fornitore del pool di identità del workload. Devi utilizzare lo stesso ID quando crei il fornitore del pool di identità del workload in un secondo momento.
In alternativa, puoi configurare il fornitore del pool di identità del workload in modo che preveda un segmento di pubblico personalizzato.
I token contengono una rivendicazione
exp
nel futuro e una rivendicazioneiat
nel passato.Il valore di
exp
deve essere maggiore del valore diiat
per un massimo di 24 ore.
In genere, è meglio utilizzare i token ID quando si esegue uno scambio di token, poiché riflettono l'identità dell'utente. Se decidi di utilizzare i token di accesso, assicurati che soddisfino i seguenti requisiti aggiuntivi:
- I token di accesso sono in formato JSON Web Token
I token di accesso contengono un claim
ISSUER
in modo che l'URLISSUER/.well-known/openid-configuration
indichi l'endpoint dei metadati OIDC dell'IDP.Per caricare le chiavi JWK locali, vedi Gestire le chiavi JWK OIDC.
SAML
Configura l'IdP in modo che le asserzioni SAML contengano elementi che soddisfano i seguenti criteri:
- Un elemento
Issuer
impostato sull'ID entità configurato nel fornitore del pool di identità del workload. Il formato dell'emittente deve essere omesso o impostato suurn:oasis:names:tc:SAML:2.0:nameid-format:entity
. - Un elemento
Subject
con:- un elemento
NameID
. - Esatto un elemento
SubjectConfirmation
conMethod
impostato suurn:oasis:names:tc:SAML:2.0:cm:bearer
. - Un elemento
SubjectConfirmationData
conNotOnOrAfter
impostato su un timestamp che si verifica in futuro e nessun valoreNotBefore
.
- un elemento
Un elemento
Conditions
con:NotBefore
omesso o nel passato.NotOnOrAfter
omesso o in futuro.Un
Audience
formattato come segue:https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero di progetto del progetto Google Cloud che utilizzi per creare il pool di identità del carico di lavoro.POOL_ID
: un ID a tua scelta che identifica il pool di identità del workload. Devi utilizzare lo stesso ID quando crei il pool di identità di carico di lavoro in un secondo momento.PROVIDER_ID
: un ID a tua scelta che identifica il fornitore del pool di identità del workload. Devi utilizzare lo stesso ID quando crei il fornitore del pool di identità del workload in un secondo momento.
almeno un elemento
AuthnStatement
.Un elemento
SessionNotOnOrAfter
con un timestamp che si verifica nel futuro. In alternativa, ometti l'elemento.
Per le asserzioni SAML racchiuse in una risposta SAML, la risposta deve contenere:
- esattamente un'affermazione che soddisfi i criteri di affermazione SAML descritti in precedenza in questa sezione.
- Un attributo
IssueInstant
con un valore inferiore a 1 ora nel passato. - il StatusCode
urn:oasis:names:tc:SAML:2.0:status:Success
.
L'affermazione SAML, la risposta o entrambe devono essere firmate.
Configurare la federazione delle identità per i carichi di lavoro
Questa procedura deve essere eseguita una sola volta per ogni IdP. Puoi quindi utilizzare lo stesso provider e lo stesso pool Workload Identity per più carichi di lavoro e in più progetti Google Cloud.
Per iniziare a configurare la federazione delle identità per i carichi di lavoro, segui questi passaggi:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
È preferibile
utilizzare un progetto dedicato per gestire i pool di identità del workload e i provider.
-
Make sure that billing is enabled for your Google Cloud project.
Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.
(Facoltativo) Gestire i JWK OIDC
Questa sezione mostra come gestire i JWK OIDC caricati autonomamente nei fornitori OIDC del pool di identità del workload.
Crea un provider e carica i JWK OIDC
Per creare JWK OIDC, consulta la sezione Implementazioni di JWT, JWS, JWE, JWK e JWA.
Per caricare un file JWK OIDC quando crei un provider pool di identità del workload,
esegui il comando gcloud iam workload-identity-pools providers create-oidc
con --jwk-json-path="JWK_JSON_PATH"
.
Sostituisci JWK_JSON_PATH
con il percorso del file JSON JWK.
Questa operazione crea le chiavi caricate con quelle nel file.
Aggiornare i JWK OIDC
Per aggiornare le JWK OIDC, esegui il comando
gcloud iam workload-identity-pools providers update-oidc
con --jwk-json-path="JWK_JSON_PATH"
.
Sostituisci JWK_JSON_PATH
con il percorso del
file JSON JWK.
Questa operazione sostituisce le eventuali chiavi caricate esistenti con quelle nel file. Non puoi ripristinare le chiavi sostituite.
Elimina tutti i JWK OIDC caricati
Per eliminare tutti i JWK OIDC caricati e tornare a utilizzare l'URI issuer per recuperare le chiavi, esegui il comando gcloud iam workload-identity-pools providers update-oidc con --jwk-json-path="JWK_JSON_PATH"
.
Sostituisci JWK_JSON_PATH
con il percorso di un file vuoto.
Utilizza il flag --issuer-uri
per impostare l'URI dell'emittente.
Questa operazione elimina tutte le chiavi caricate esistenti con quelle nel file. Non puoi ripristinare le chiavi eliminate.
Definire una mappatura degli attributi e una condizione
I token OIDC o le asserzioni SAML emessi dal tuo IdP potrebbero contenere più attributi e devi decidere quale attributo utilizzare come identificatore soggetto (google.subject
) in Google Cloud.
Se vuoi, puoi mappare altri attributi. Puoi quindi fare riferimento a questi attributi quando concedi l'accesso alle risorse.
OIDC
Le mappature degli attributi possono utilizzare le rivendicazioni incorporate nel token ID o nel token di accesso emessi dall'IdP esterno.
Devi mappare uno di questi claim a google.subject
per identificare in modo univoco
l'utente. Per proteggerti dalle minacce di spoofing, scegli un reclamo con un valore unico che non può essere modificato.
Molti provider di identità compilano l'affermazione sub
con un ID univoco e immutabile. Per queste IdP, ti consigliamo di mappare l'affermazione sub
a
google.subject
:
google.subject=assertion.sub
Evita di utilizzare una dichiarazione come email
per questo scopo. Gli indirizzi email
in genere possono essere riassegnati o modificati, pertanto non identificano un utente in modo univoco e permanente.
SAML
Le mappature degli attributi possono utilizzare gli elementi <Subject>
e <Attribute>
integrati nell'affermazione rilasciata dall'IdP esterno. È possibile fare riferimento agli attributi SAML utilizzando le seguenti parole chiave:
assertion.subject
contiene ilNameID
dell'utente autenticato trovato nell'elemento<Subject>
.assertion.attributes['ATTRIBUTE_NAME']
contiene un elenco di valori per<Attribute>
con lo stesso nome.
Devi mappare uno di questi claim a google.subject
per identificare in modo univoco l'utente. Per proteggerti dalle minacce di spoofing, scegli un reclamo con un valore univoco che non può essere modificato.
Molti provider di identità compilano il campo NameId
con un ID univoco e immutabile. Per queste IdP, ti consigliamo di mappare l'attributo NameId
a google.subject
:
google.subject=assertion.subject
Evita di utilizzare un attributo come
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
per questo scopo. In genere, gli indirizzi email possono essere riassegnati o modificati, pertanto
non identificano in modo univoco e permanente un utente.
(Facoltativo) Definisci una condizione dell'attributo.
Le condizioni degli attributi sono espressioni CEL che possono controllare gli attributi di asserzione e gli attributi di destinazione. Se la condizione dell'attributo ha valore true
per una determinata credenza, la credenza viene accettata. In caso contrario, le credenziali vengono rifiutate.
OIDC
Puoi utilizzare una condizione dell'attributo per limitare gli utenti che possono utilizzare la federazione delle identità per il carico di lavoro per ottenere token Google Cloud di breve durata.
Ad esempio, la seguente condizione limita l'accesso ai token che contengono un claim service_account
personalizzato con un valore true
:
assertion.service_account==true
SAML
Puoi utilizzare una condizione dell'attributo per limitare gli utenti che possono utilizzare la federazione delle identità per il carico di lavoro per ottenere token Google Cloud di breve durata.
Ad esempio, la seguente condizione limita l'accesso alle asserzioni che contengono un attributo https://example.com/SAML/Attributes/AllowGcpFederation
personalizzato con un valore true
:
assertion.attributes['https://example.com/SAML/Attributes/AllowGcpFederation'][0]=='true'
Crea il provider e il pool di identità del workload
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare la federazione di Workload Identity, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Amministratore di pool di identità di lavoro (
roles/iam.workloadIdentityPoolAdmin
) -
Amministratore account di servizio (
roles/iam.serviceAccountAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
In alternativa, il ruolo di base Proprietario IAM (roles/owner
) include anche le autorizzazioni per configurare la federazione delle identità.
Non dovresti concedere ruoli di base in un ambiente di produzione, ma puoi farlo in un ambiente di sviluppo o di test.
Ora hai raccolto tutte le informazioni necessarie per creare un fornitore e un pool di identità del workload:
Console
Nella console Google Cloud, vai alla pagina Nuovo provider e pool di carichi di lavoro.
In Crea un pool di identità, inserisci quanto segue:
- Nome: il nome del pool. Il nome viene utilizzato anche come ID pool. Non potrai modificare l'ID pool in un secondo momento.
- Descrizione: il testo che descrive lo scopo del pool.
Fai clic su Continua.
Configura le impostazioni del provider nel seguente modo:
OIDC
- In Seleziona un provider, seleziona OpenID Connect (OIDC).
- In Nome fornitore, inserisci un nome per il fornitore. Il nome viene utilizzato anche come ID provider. Non puoi modificare l'ID fornitore dopo la creazione del fornitore.
- In URL emittente, inserisci l'URL emittente del tuo IdP. L'URL deve iniziare con
https://
- (Facoltativo) In File JWK (JSON), scegli un file JWK da caricare. Se questo campo non viene fornito, Google Cloud tenta di recuperare un JWK dall'emittente.
- Segmenti di pubblico consentiti: il pubblico previsto degli ID token.
SAML
- In Select a provider (Seleziona un provider), seleziona SAML.
- In Nome fornitore, inserisci un nome per il fornitore. Il nome viene utilizzato anche come ID provider. Non puoi modificare l'ID fornitore dopo la creazione del fornitore.
- In File di metadati IDP (XML), carica il documento XML dei metadati SAML fornito dal tuo provider di identità.
Fai clic su Continua.
In Configura gli attributi del provider, aggiungi le mappature degli attributi che hai identificato in precedenza in questa guida.
In Condizioni degli attributi, inserisci la condizione dell'attributo che hai identificato in precedenza in questa guida. Lascia vuoto il campo se non hai una condizione dell'attributo.
Per creare il pool di identità e il provider del workload, fai clic su Salva.
gcloud
Per creare un nuovo pool di identità per i carichi di lavoro, esegui il seguente comando:
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Sostituisci quanto segue:
POOL_ID
: l'ID univoco del pool.DISPLAY_NAME
: il nome del pool.DESCRIPTION
: una descrizione del pool scelto. Questa descrizione viene visualizzata quando concedi l'accesso alle identità del pool.
Per aggiungere un provider del pool di identità del workload, segui questi passaggi:
OIDC
Per aggiungere un provider del pool di identità del workload OIDC, esegui il seguente comando:
gcloud iam workload-identity-pools providers create-oidc PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --allowed-audiences="AUDIENCE" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS" --jwk-json-path="JWK_JSON_PATH"
Sostituisci quanto segue:
PROVIDER_ID
: un ID fornitore del pool di identità del workload univoco a tua scelta.POOL_ID
: l'ID del pool di identità del workload che hai creato in precedenza.ISSUER
: un URI emittente come definito nei metadati OIDC.AUDIENCE
: il pubblico previsto dei token ID, che per molti fornitori corrisponde all'ID client.MAPPINGS
: un elenco separato da virgole di mappature degli attributi che hai creato in precedenza in questa guida.CONDITIONS
: un'condizione dell'attributo facoltativa creata in precedenza in questa guida. Rimuovi il parametro se non hai una condizione dell'attributo.JWK_JSON_PATH
: un percorso facoltativo a un JWK OIDC caricato localmente. Se questo parametro non viene fornito, Google Cloud utilizza il percorso/.well-known/openid-configuration
della tua IdP per recuperare le JWK contenenti le chiavi pubbliche.
SAML
Per aggiungere un provider del pool di identità del workload SAML, esegui il seguente comando:
gcloud iam workload-identity-pools providers create-saml PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --idp-metadata-path="IDP_METADATA_PATH" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"
Sostituisci quanto segue:
POOL_ID
: l'ID del poolIDP_METADATA_PATH
: il percorso locale al documento dei metadati dell'IDP SAMLMAPPINGS
: un elenco separato da virgole di mappature degli attributi che hai creato in precedenza in questa guidaCONDITIONS
: facoltativo: la condizione dell'attributo che hai creato in precedenza in questa guida
Il prefisso
gcp-
è riservato e non può essere utilizzato in un pool o nell'ID provider.(Facoltativo) Accetta le asserzioni SAML criptate dal tuo IdP
Per consentire al tuo provider di identità SAML 2.0 di produrre assertivi SAML criptati che possono essere accettati dalla federazione delle identità per i carichi di lavoro, svolgi i seguenti passaggi:
- Nella federazione delle identità per i carichi di lavoro, segui questi passaggi:
- Crea una coppia di chiavi asimmetriche per il provider del pool di identità del workload.
- Scarica un file del certificato contenente la chiave pubblica.
- Configura l'IdP SAML in modo che utilizzi la chiave pubblica per criptare le asserzioni SAML che emette.
- Nell'IDP:
- Attiva la crittografia delle asserzioni, nota anche come crittografia dei token.
- Carica la chiave pubblica che hai creato nella federazione delle identità per i carichi di lavoro.
- Verifica che il tuo IdP produca asserzioni SAML criptate.
Crea le chiavi di crittografia dell'affermazione SAML per la federazione delle identità per i carichi di lavoro
Questa sezione descrive la procedura per creare una coppia di chiavi asimmetriche che consenta alla federazione delle identità per i carichi di lavoro di accettare asserzioni SAML criptate.
Google Cloud utilizza la chiave privata per decriptare le asserzioni SAML emesse dal tuo IdP. Per creare una coppia di chiavi asimmetriche da utilizzare con la crittografia SAML, esegui il seguente comando. Per saperne di più, consulta Algoritmi di crittografia SAML supportati.
gcloud iam workload-identity-pools providers keys create KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
Sostituisci quanto segue:
KEY_ID
: un nome della chiave a tua sceltaWORKLOAD_POOL_ID
: l'ID poolPROVIDER_ID
: l'ID provider-
KEY_SPECIFICATION
: la specifica della chiave, che può esserersa-2048
,rsa-3072
ersa-4096
.
Dopo aver creato la coppia di chiavi, per scaricare la chiave pubblica in un file del certificato, esegui il seguente comando. Solo la federazione delle identità per i carichi di lavoro ha accesso alla chiave privata.
gcloud iam workload-identity-pools providers keys describe KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
Sostituisci quanto segue:
KEY_ID
: il nome della chiaveWORKLOAD_POOL_ID
: l'ID poolPROVIDER_ID
: l'ID providerCERTIFICATE_PATH
: il percorso in cui scrivere il certificato, ad esempiosaml-certificate.cer
osaml-certificate.pem
Configurare l'IdP conforme a SAML 2.0 per emettere asserzioni SAML criptate
Configura l'IdP SAML in modo che utilizzi il certificato pubblico scaricato dall'ultimo passaggio per criptare le asserzioni SAML che emette. Rivolgiti al team della tua IdP per istruzioni specifiche.
Dopo aver configurato l'IdP per criptare le asserzioni SAML, ti consigliamo di verificare che le asserzioni generate siano effettivamente criptate. Anche con la crittografia delle asserzioni SAML configurata, la federazione delle identità per i carichi di lavoro può comunque elaborare le asserzioni in chiaro.
Eliminare le chiavi di crittografia della federazione delle identità per i carichi di lavoro
Per eliminare le chiavi di crittografia SAML, esegui il seguente comando:gcloud iam workload-identity-pools providers keys delete KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider PROVIDER_ID \ --location global
Sostituisci quanto segue:
KEY_ID
: il nome della chiaveWORKLOAD_POOL_ID
: l'ID poolPROVIDER_ID
: l'ID provider
Algoritmi di crittografia SAML supportati
La federazione delle identità per i carichi di lavoro supporta i seguenti algoritmi di trasporto principali:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
La federazione delle identità per i carichi di lavoro supporta i seguenti algoritmi di crittografia a blocchi:
Autentica un carico di lavoro
Devi eseguire questi passaggi una volta per ogni carico di lavoro.
Consenti al tuo carico di lavoro esterno di accedere alle risorse Google Cloud
Per fornire al tuo carico di lavoro l'accesso alle risorse Google Cloud, consigliamo di concedere l'accesso diretto alle risorse al principale. In questo caso, l'entità è l'utente federato. Alcuni prodotti Google Cloud presentano limitazioni dell'API Google Cloud. Se il tuo carico di lavoro chiama un endpoint API con una limitazione, puoi utilizzare la simulazione dell'identità dell'account di servizio. In questo caso, l'entità è l'account di servizio Google Cloud, che funge da identità. Concedi l'accesso all'account di servizio nella risorsa.
Accesso diretto alle risorse
Puoi concedere l'accesso a un'identità federata direttamente sulle risorse utilizzando la console Google Cloud o gcloud CLI.
Console
Per utilizzare la console Google Cloud per concedere i ruoli IAM direttamente su una risorsa, devi andare alla pagina della risorsa e concedere il ruolo. L'esempio seguente mostra come andare alla pagina Cloud Storage e concedere il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer
) a un'identità federata direttamente in un bucket Cloud Storage.
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket per cui vuoi concedere il ruolo.
Seleziona la scheda Autorizzazioni nella parte superiore della pagina.
Fai clic sul pulsante add_box Concedi accesso.
Viene visualizzata la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci una o più identità che devono accedere al tuo bucket.
Per argomento
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoPOOL_ID
: l'ID del pool di workloadSUBJECT
: il soggetto singolo mappato dal tuo provider di identità, ad esempioadministrator@example.com
Per gruppo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID del pool di workloadGROUP
: il gruppo mappato dall'IdP, ad esempio:administrator-group@example.com
Per attributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID del pool di workloadATTRIBUTE_NAME
: uno degli attributi mappati dal tuo provider di identitàATTRIBUTE_VALUE
: il valore dell'attributo
Seleziona un ruolo o più ruoli dal menu a discesa Seleziona un ruolo. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni concesse.
Fai clic su Salva.
gcloud
Per utilizzare gcloud CLI per concedere i ruoli IAM a una risorsa in un progetto, segui questi passaggi:
Ottieni il numero del progetto in cui è definita la risorsa.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
Concedi l'accesso alla risorsa.
Per utilizzare gcloud CLI per concedere il ruolo Visualizzatore oggetti Storage (
roles/storage.objectViewer
) a identità esterne che soddisfano determinati criteri, esegui il seguente comando.Per argomento
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Per gruppo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Per attributo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Sostituisci quanto segue:
BUCKET_ID
: il bucket a cui concedere l'accessoPROJECT_NUMBER
: il numero di progetto del progetto che contiene il pool di identità del workloadPOOL_ID
: l'ID del pool di identità del workloadSUBJECT
: il valore previsto per l'attributo che hai mappato agoogle.subject
GROUP
: il valore previsto per l'attributo che hai mappato agoogle.groups
ATTRIBUTE_NAME
: il nome di un attributo personalizzato nella mappatura degli attributiATTRIBUTE_VALUE
: il valore dell'attributo personalizzato nella mappatura degli attributi
Puoi concedere ruoli a qualsiasi risorsa Google Cloud che supporta i criteri di autorizzazione IAM.
Rappresentazione dell'identità dell'account di servizio
Per creare un account di servizio per il carico di lavoro esterno:
Enable the IAM, Security Token Service, and Service Account Credentials APIs.
Crea un account di servizio che rappresenti il carico di lavoro. Ti consigliamo di utilizzare un account di servizio dedicato per ogni carico di lavoro. L'account di servizio non deve necessariamente trovarsi nello stesso progetto del pool di identità del carico di lavoro, ma devi fare riferimento al progetto che contiene l'account di servizio.
Concedi all'account di servizio l'accesso alle risorse a cui vuoi che accedano le identità esterne.
Concedi il ruolo Utente Workload Identity (
roles/iam.workloadIdentityUser
) all'account di servizio.
Per concedere l'accesso a un'identità federata utilizzando la simulazione dell'identità degli account di servizio tramite la console Google Cloud o gcloud CLI:
Console
Per utilizzare la console Google Cloud per concedere ruoli IAM a un'identità federata con account di servizio, segui questi passaggi:
Account di servizio nello stesso progetto
Per concedere l'accesso utilizzando la simulazione dell'identità dell'account di servizio per un account di servizio nello stesso progetto:
Vai alla pagina Pool Workload Identity.
Seleziona Concedi accesso.
Nella finestra di dialogo Concedi l'accesso all'account di servizio, seleziona Concedi l'accesso utilizzando la simulazione dell'identità degli account di servizio.
Nell'elenco Account di servizio, seleziona l'account di servizio per le identità esterne da rubare e svolgi i seguenti passaggi:
Per scegliere quali identità nel pool possono rubare l'identità dell'account di servizio, esegui una delle seguenti azioni:
Per consentire solo a identità specifiche del pool di identità del workload di simulare l'identità dell'account di servizio, seleziona Solo le identità corrispondenti al filtro.
Nell'elenco Nome attributo, seleziona l'attributo su cui vuoi applicare il filtro.
Nel campo Valore attributo, inserisci il valore previsto dell'attributo. Ad esempio, se utilizzi una mappatura degli attributi
google.subject=assertion.sub
, imposta il nome Attributo susubject
e Valore attributo sul valore del claimsub
nei token emessi dal tuo provider di identità esterno.
Per salvare la configurazione, fai clic su Salva e poi su Ignora.
Account di servizio in un altro progetto
Per concedere l'accesso utilizzando la rappresentazione dell'account di servizio per un account di servizio in un progetto diverso:
Vai alla pagina Service Accounts.
Seleziona l'account di servizio di cui vuoi assumere il ruolo.
Fai clic su Gestisci accesso.
Fai clic su Aggiungi entità.
Nel campo Nuova entità, inserisci uno dei seguenti identificatori principali per le identità nel pool che simuleranno l'account di servizio.
Per argomento
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoPOOL_ID
: l'ID del pool di workloadSUBJECT
: il soggetto singolo mappato dal tuo provider di identità, ad esempioadministrator@example.com
Per gruppo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID del pool di workloadGROUP
: il gruppo mappato dall'IdP, ad esempio:administrator-group@example.com
Per attributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID del pool di workloadATTRIBUTE_NAME
: uno degli attributi mappati dal tuo provider di identitàATTRIBUTE_VALUE
: il valore dell'attributo
Per piscina
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: l'ID del pool di workload
In Seleziona un ruolo, seleziona il ruolo Workload Identity User (
roles/iam.workloadIdentityUser
).Per salvare la configurazione, fai clic su Salva.
gcloud
Per utilizzare gcloud CLI per concedere il ruolo Utente Workload Identity (roles/iam.workloadIdentityUser
)
alle identità esterne che soddisfano determinati criteri, esegui il seguente
comando.
Per argomento
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Per gruppo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Per attributo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Sostituisci quanto segue:
SERVICE_ACCOUNT_EMAIL
: l'indirizzo email dell'account per il servizioPROJECT_NUMBER
: il numero di progetto del progetto che contiene il pool di identità del workloadPOOL_ID
: l'ID del pool di identità del workloadSUBJECT
: il valore previsto per l'attributo che hai mappato agoogle.subject
GROUP
: il valore previsto per l'attributo che hai mappato agoogle.groups
ATTRIBUTE_NAME
: il nome di un attributo personalizzato nella mappatura degli attributiATTRIBUTE_VALUE
: il valore dell'attributo personalizzato nella mappatura degli attributi
Scaricare una configurazione delle credenziali
Questa sezione descrive come scaricare la configurazione delle credenziali utilizzando la console Google Cloud.
Per consentire al tuo carico di lavoro di accedere alle librerie client, devi prima scaricare e configurare le credenziali predefinite dell'applicazione (ADC) come segue:
-
Nella console Google Cloud, vai alla pagina Pool di identità di carico di lavoro.
Vai a Pool Workload Identity -
Nella tabella, seleziona il pool per passare alla relativa pagina dei dettagli.
-
Fai clic su Concedi accesso.
-
Seleziona Concedi l'accesso usando identità federate (consigliato).
-
Per scaricare le credenziali predefinite dell'applicazione (ADC) in modo che il tuo workload possa accedere alle librerie client:
-
Fai clic su Scarica configurazione.
-
Nella finestra di dialogo Configura l'applicazione, procedi nel seguente modo:
-
Nell'elenco a discesa Provider, seleziona il tuo fornitore.
-
In Percorso token OIDC o Percorso dell'asserzione SAML, inserisci il percorso in cui si trova il token o l'asserzione.
Nell'elenco a discesa Tipo di formato, seleziona il formato.
-
-
Fai clic su Scarica configurazione e prendi nota del percorso in cui hai salvato il file.
-
Creare una configurazione delle credenziali
Le librerie client di Cloud, la gcloud CLI e Terraform possono ottenere automaticamente le credenziali esterne e utilizzarle per accedere a Google Cloud. Per consentire alle librerie e agli strumenti di completare questa procedura, devi fornire un file di configurazione delle credenziali. Questo file definisce quanto segue:
- Da dove ottenere le credenziali esterne
- Quale provider e pool di identità per i carichi di lavoro utilizzare
- L'account di servizio da simulare, se utilizzi la simulazione dell'account di servizio
Le librerie client Cloud ottengono le credenziali esterne da un file locale, un URL HTTP, eseguendo un file eseguibile locale:
Credenziali basate su file eseguibili: le librerie avviano un file eseguibile ogni volta che hanno bisogno di una nuova credenziale. Se l'eseguibile riesce a ottenere una nuova credenziale esterna, deve scrivere un documento JSON in
STDOUT
simile al seguente:OIDC
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:id_token", "id_token": "HEADER.PAYLOAD.SIGNATURE", "expiration_time": 1620499962 }
Se l'eseguibile non riesce a ottenere una nuova credenziale, deve scrivere un documento JSON in
STDOUT
simile al seguente:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }
I documenti JSON utilizzano i seguenti campi:
version
: la versione dell'output JSON. È supportata solo la versione 1.success
: lo stato della risposta.Se
true
, la risposta deve contenere i campiid_token
etoken_type
. L'eseguibile deve uscire con il codice di uscita 0.Se
false
, la risposta deve contenere i campicode
emessage
ed uscire con un valore diverso da zero.token_type
: il tipo di token della credenziale esterna. I valori supportati sonourn:ietf:params:oauth:token-type:id_token
urn:ietf:params:oauth:token-type:jwt
id_token
: la credenziale esterna.expiration_time
: la scadenza del token OIDC in secondi (tempo Unix epoch). Questo campo è obbligatorio solo se nella configurazione delle credenziali è stato specificato un file di output.code
: la stringa del codice di errore.message
: il messaggio di errore.
SAML
{ "version": 1, "success": true, "token_type": "urn:ietf:params:oauth:token-type:saml2", "saml_response": "...", "expiration_time": 1620499962 }
Se l'eseguibile non riesce a ottenere una nuova credenziale, deve scrivere un documento JSON in
STDOUT
simile al seguente:{ "version": 1, "success": false, "code": "401", "message": "Caller not authorized." }
I documenti JSON utilizzano i seguenti campi:
version
: la versione dell'output JSON. È supportata solo la versione 1.success
: lo stato della risposta.Se
true
, la risposta deve contenere i campiid_token
etoken_type
. L'eseguibile deve uscire con il codice di uscita 0.Se
false
, la risposta deve contenere i campicode
emessage
ed uscire con un valore diverso da zero.token_type
: il tipo di token della credenziale esterna. Deve essereurn:ietf:params:oauth:token-type:saml2
.saml_response
: la risposta SAML o l'affermazione SAML codificata in base64.expiration_time
: la scadenza della verifica in secondi (tempo Unix epoch). Questo campo è obbligatorio solo se nella configurazione delle credenziali è stato specificato un file di output.code
: la stringa del codice di errore.message
: il messaggio di errore.
Al momento dell'avvio dell'eseguibile, le librerie client impostano le seguenti variabili di ambiente:
GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE
: Pubblico dalla configurazione delle credenziali. Sempre presente.GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE
: tipo di token soggetto previsto. Sempre presente.GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL
: Indirizzo email dell'account di servizio. Presente solo quando viene utilizzata l'impersonificazione dell'account di servizio.GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE
: Posizione del file di output dalla configurazione delle credenziali. Presente solo se specificato nella configurazione delle credenziali.
Per utilizzare le credenziali con origine file eseguibile, devi impostare la variabile di ambiente
GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES
su1
.Credenziali ricavate da file: le librerie leggono le credenziali esterne da un file JSON o di testo normale locale. Ad esempio:
JSON
{ "mytoken": "ey... }
Testo
ey...
La credenziale esterna può essere:
- un token OIDC
- una risposta SAML
- un'affermazione SAML con codifica Base64
Devi aggiornare periodicamente il file in modo che contenga sempre un'autenticazione valida. Ad esempio, se il token OIDC o l'affermazione SAML è valido per un'ora, devi aggiornare il file almeno una volta ogni ora.
Credenziali basate su URL: le librerie eseguono una richiesta
GET
a un endpoint HTTP ogni volta che hanno bisogno di una nuova credenziale. L'endpoint deve restituire una risposta in testo normale o JSON equivalente al formato utilizzato dalle credenziali basate su file.
Per creare un file di configurazione delle credenziali:
Credenziali provenienti da file eseguibili
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --executable-command=EXECUTABLE_COMMAND \ --executable-timeout-millis=EXECUTABLE_TIMEOUT \ --executable-output-file=EXECUTABLE_OUTPUT_FILE
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progetto che contiene il pool di identità del workload.POOL_ID
: l'ID del pool di identità del workload.PROVIDER_ID
: l'ID del fornitore del pool di identità del workload.SERVICE_ACCOUNT_EMAIL
: se utilizzi la simulazione dell'identità del service account, sostituisci con l'indirizzo email del account di servizio. Ometti questo flag se non utilizzi la simulazione dell'identità degli account di servizio.SERVICE_ACCOUNT_TOKEN_LIFETIME
: se utilizzi la simulazione dell'identità dell'account di servizio, sostituisci con la durata del token di accesso dell'account di servizio in secondi. Per impostazione predefinita, se non viene fornito, è pari a un'ora. Ometti questo flag se non utilizzi l'impersonificazione dell'account di servizio. Per specificare una durata superiore a un'ora, devi configurare il vincolo del criterio dell'organizzazioneconstraints/iam.allowServiceAccountCredentialLifetimeExtension
.FILEPATH
: il file in cui salvare la configurazione.EXECUTABLE_COMMAND
: il comando completo, inclusi gli argomenti, da eseguire per recuperare il token ID OIDC, ad esempio--executable-command="/path/to/command --foo=bar"
.EXECUTABLE_TIMEOUT
: la durata facoltativa in millisecondi da attendere per l'esecuzione dell'eseguibile (il valore predefinito è 30 secondi).EXECUTABLE_OUTPUT_FILE
: un percorso che rimanda alle credenziali 3PI generate dall'eseguibile. Questo è utile per memorizzare le credenziali nella cache. Se specifichi questo percorso, le librerie Auth verificheranno prima la sua esistenza prima di eseguire l'eseguibile.
Credenziali basate su file
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --credential-source-file=TOKEN_FILEPATH \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progetto che contiene il pool di identità del workload.POOL_ID
: l'ID del pool di identità del workload.PROVIDER_ID
: l'ID del fornitore del pool di identità del workload.SERVICE_ACCOUNT_EMAIL
: se utilizzi la simulazione dell'identità del service account, sostituisci con l'indirizzo email del service account. Ometti questo flag se non utilizzi l'impersonificazione dell'account di servizio.SERVICE_ACCOUNT_TOKEN_LIFETIME
: se utilizzi la simulazione dell'identità dell'account di servizio, sostituisci con la durata del token di accesso dell'account di servizio in secondi. Per impostazione predefinita, se non viene fornito, è pari a un'ora. Ometti questo flag se non utilizzi l'impersonificazione dell'account di servizio. Per specificare una durata superiore a un'ora, devi configurare il vincolo del criterio dell'organizzazioneconstraints/iam.allowServiceAccountCredentialLifetimeExtension
.FILEPATH
: il file in cui salvare la configurazione.TOKEN_FILEPATH
: il percorso in cui sono memorizzati i token ID OIDC.SOURCE_TYPE
: il formato del file del token ID OIDC, impostato sutext
(valore predefinito) ojson
.FIELD_NAME
: il campo nel file di testo che contiene il token (seSOURCE_TYPE
èjson
).
Credenziali basate su URL
gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID \ --service-account=SERVICE_ACCOUNT_EMAIL \ --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \ --output-file=FILEPATH.json \ --credential-source-url="TOKEN_URL" \ --credential-source-headers="KEY_1=VALUE_1,KEY_2=VALUE_2" \ --credential-source-type=SOURCE_TYPE \ --credential-source-field-name=FIELD_NAME
Sostituisci quanto segue:
PROJECT_NUMBER
: numero del progetto contenente il pool di identità del workload.POOL_ID
: l'ID del pool di identità del workload.PROVIDER_ID
: ID del fornitore del pool di identità del workloadSERVICE_ACCOUNT_EMAIL
: se utilizzi la simulazione dell'identità dell'account di servizio, sostituisci con l'indirizzo email dell'account di servizio. Ometti questo flag se non utilizzi l'impersonificazione dell'account di servizio.SERVICE_ACCOUNT_TOKEN_LIFETIME
: se utilizzi la simulazione dell'identità dell'account di servizio, sostituisci con la durata del token di accesso dell'account di servizio in secondi. Per impostazione predefinita, se non viene fornito, è pari a un'ora. Ometti questo flag se non utilizzi la simulazione dell'identità dell'account di servizio. Per specificare una durata superiore a un'ora, devi configurare il vincolo del criterio dell'organizzazioneconstraints/iam.allowServiceAccountCredentialLifetimeExtension
.FILEPATH
: file in cui salvare la configurazione.TOKEN_URL
: URL da cui recuperare il token ID OIDCKEY_n
,VALUE_n
: intestazioni personalizzate da includere nella richiesta HTTP aTOKEN_URL
SOURCE_TYPE
: formato del file del token ID OIDC, impostato sutext
(valore predefinito) ojson
FIELD_NAME
: campo del file di testo che contiene il token (seSOURCE_TYPE
èjson
)
Utilizzare la configurazione delle credenziali per accedere a Google Cloud
Per consentire agli strumenti e alle librerie client di utilizzare la configurazione delle credenziali, svolgi i seguenti passaggi:
Inizializza una variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
e indirizzala al file di configurazione delle credenziali:Bash
doveexport GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
FILEPATH
è il percorso relativo al file di configurazione delle credenziali.PowerShell
dove$env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
FILEPATH
è il percorso relativo al file di configurazione delle credenziali.Utilizza una libreria client o uno strumento che supporta la federazione delle identità per i carichi di lavoro e può trovare automaticamente le credenziali:
C++
Le librerie client di Google Cloud per C++ supportano la federazione delle identità per i carichi di lavoro dalla versione v2.6.0. Per utilizzare la federazione delle identità per i carichi di lavoro, devi compilare le librerie client con la versione 1.36.0 o successive di gRPC.
Vai
Le librerie client per Go supportano la federazione delle identità del carico di lavoro se utilizzano la versione v0.0.0-20210218202405-ba52d332ba99 o successive del modulo
golang.org/x/oauth2
.Per controllare quale versione di questo modulo utilizza la tua libreria client, esegui i seguenti comandi:
cd $GOPATH/src/cloud.google.com/go go list -m golang.org/x/oauth2
Java
Le librerie client per Java supportano la federazione di Workload Identity se utilizzano la versione 0.24.0 o successive dell'elemento
com.google.auth:google-auth-library-oauth2-http
.Per controllare la versione di questo elemento utilizzato dalla libreria client, esegui il seguente comando Maven nella directory dell'applicazione:
mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http
Node.js
Le librerie client per Node.js supportano la federazione delle identità del carico di lavoro se utilizzano la versione 7.0.2 o successive del pacchetto
google-auth-library
.Per controllare quale versione di questo pacchetto utilizza la tua libreria client, esegui il seguente comando nella directory dell'applicazione:
npm list google-auth-library
Quando crei un oggetto
GoogleAuth
, puoi specificare un ID progetto oppure puoi consentire aGoogleAuth
di trovarlo automaticamente. Per trovare automaticamente l'ID progetto, l'account di servizio nel file di configurazione deve disporre del ruolo Browser (roles/browser
) o di un ruolo con autorizzazioni equivalenti nel progetto. Per maggiori dettagli, consulta ilREADME
per il pacchettogoogle-auth-library
.Python
Le librerie client per Python supportano la federazione di Workload Identity se utilizzano la versione 1.27.0 o successive del pacchetto
google-auth
.Per controllare quale versione di questo pacchetto utilizza la tua libreria client, esegui il seguente comando nell'ambiente in cui è installato il pacchetto:
pip show google-auth
Per specificare un ID progetto per il client di autenticazione, puoi impostare la variabile di ambiente
GOOGLE_CLOUD_PROJECT
o consentire al client di trovare automaticamente l'ID progetto. Per trovare automaticamente l'ID progetto, il service account nel file di configurazione deve disporre del ruolo Browser (roles/browser
) o di un ruolo con autorizzazioni equivalenti nel progetto. Per maggiori dettagli, consulta la guida dell'utente per il pacchettogoogle-auth
.gcloud
Per eseguire l'autenticazione utilizzando la federazione delle identità per i carichi di lavoro, utilizza il comando
gcloud auth login
:gcloud auth login --cred-file=FILEPATH.json
Sostituisci
FILEPATH
con il percorso del file di configurazione delle credenziali.Il supporto della federazione delle identità per i workload in gcloud CLI è disponibile nella versione 363.0.0 e successive di gcloud CLI.
Terraform
Il provider Google Cloud supporta la federazione delle identità di carico di lavoro se utilizzi la versione 3.61.0 o successive:
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.61.0" } } }
bq
Per eseguire l'autenticazione utilizzando la federazione di Workload Identity, utilizza il comando
gcloud auth login
, come segue:gcloud auth login --cred-file=FILEPATH.json
Sostituisci
FILEPATH
con il percorso del file di configurazione delle credenziali.Il supporto della federazione delle identità per i carichi di lavoro in bq è disponibile nella versione 390.0.0 e successive della CLI gcloud.
Passaggi successivi
- Scopri di più sulla federazione di Workload Identity.
- Scopri le best practice per l'utilizzo della federazione delle identità per i workload.
- Scopri come gestire i provider e i pool di identità del workload.