Questa guida descrive come utilizzare la federazione delle identità per i carichi di lavoro con altri o provider di identità (IdP).
I carichi di lavoro eseguiti al di fuori di Google Cloud potrebbero avere accesso e credenziali specifiche dell'ambiente, ad esempio:
Un carico di lavoro potrebbe essere in grado di ottenere un'asserzione SAML o OpenID Connect (OIDC) di un provider di identità (IdP) in esecuzione nello stesso ambiente.
Per eseguire l'autenticazione su Google Cloud, puoi consentire allo scambio di carichi di lavoro e le credenziali specifiche dell'ambiente per Google Cloud le credenziali utilizzando la federazione delle identità per i carichi di lavoro.
Un carico di lavoro potrebbe possedere un certificato X.509. Consulta: Configura la federazione delle identità per i carichi di lavoro con il certificato X.509 (anteprima) per ulteriori dettagli.
Un carico di lavoro potrebbe avere altri tipi di credenziali.
Combinando la federazione delle identità per i carichi di lavoro con un intermediario di token personalizzato, puoi consentire ai carichi di lavoro di utilizzare altri tipi di credenziali le credenziali di Google Cloud di breve durata.
L'utilizzo della federazione delle identità per i carichi di lavoro può aiutarti ridurre il numero di credenziali che richiedono la rotazione.
Le sezioni seguenti descrivono come utilizzare la federazione delle identità del carico di lavoro con IdP che supportano i protocolli di autenticazione OpenID Connect (OIDC) o SAML.
Prepara l'IdP esterno
Questa procedura deve essere eseguita una sola volta per ogni IdP.
Prima di iniziare, verifica che l'IdP esterno soddisfi i seguenti requisiti:
OIDC
L'IdP supporta OpenID Connect 1.0.
L'IdP ha un URI dell'emittente.
I metadati OIDC dell'IdP vengono forniti in uno dei seguenti modi:
Endpoint JWKS protetti con SSL e TLS. Gli URL degli endpoint deve iniziare con
https://
e gli endpoint sono accessibili pubblicamente su internet.Google Cloud utilizza questi endpoint per scaricare il set di chiavi della tua IdP e per convalidare i token.
Gli endpoint protetti con certificati autofirmati non lo sono supportate 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. Utilizzando con questo metodo, non è necessario che l'endpoint sia 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 l'IdP soddisfa questi criteri, procedi nel seguente modo:
OIDC
Configura l'IdP in modo che il 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 progetto del progetto Google Cloud che utilizzi per creare il pool Workload Identity.POOL_ID
: un ID a tua scelta che il pool di identità per i carichi di lavoro. 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 provider del pool di identità per i carichi di lavoro. Devi utilizzare lo stesso ID in seguito durante la creazione del provider del pool di identità per i carichi di lavoro.
In alternativa, puoi configurare il provider del pool di identità di lavoro 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 al massimo superiore al valore diiat
24 ore su 24.
In genere, è meglio utilizzare i token ID quando si esegue uno scambio di token, poiché riflettono l'identità dell'utente. Se decidi di utilizzare di accesso, assicurati che i token di accesso soddisfino le seguenti requisiti aggiuntivi:
- I token di accesso sono nel formato Token web JSON
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 provider del pool di identità per i carichi di lavoro. 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 nel 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 il pool di identità per i carichi di lavoro. Devi utilizzare lo stesso ID quando crei il pool Workload Identity in un secondo momento.PROVIDER_ID
: un ID a tua scelta che identifica il provider del pool di identità per i carichi di lavoro. Devi utilizzare lo stesso ID in seguito durante la creazione del provider del pool di identità per i carichi di lavoro.
almeno un elemento
AuthnStatement
.un elemento
SessionNotOnOrAfter
con un timestamp che si verifica in per il 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. - lo StatusCode
urn:oasis:names:tc:SAML:2.0:status:Success
.
Devono essere firmati l'asserzione SAML, la risposta o entrambe.
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 pool di identità per i carichi di lavoro e lo stesso provider per più carichi di lavoro e tra 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 provider e i pool di identità per i carichi di lavoro.
-
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 provider OIDC del pool di identità dei carichi di lavoro.
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 Workload Identity,
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 JWKs.
.
Questa operazione crea chiavi caricate insieme a quelle .
Aggiorna JWK OIDC
Per aggiornare i JWK OIDC, esegui il
gcloud iam Workload-identity-pools provider update-oidc
con --jwk-json-path="JWK_JSON_PATH"
.
Sostituisci JWK_JSON_PATH
con il percorso della
JSON JWKs.
Questa operazione sostituisce le eventuali chiavi caricate esistenti con quelle presenti nella . 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 dell'emittente
per recuperare le chiavi, esegui il comando gcloud iam workload-identity-pools provider update-oidc
con --jwk-json-path="JWK_JSON_PATH"
.
Sostituisci JWK_JSON_PATH
con il percorso di un file vuoto.
Usa 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.
Definisci una mappatura e una condizione degli attributi
I token OIDC o asserzioni SAML emessi dall'IdP potrebbero contenere più attributi,
e devi decidere quale attributo usare come identificatore del soggetto
(google.subject
) in Google Cloud.
Facoltativamente, puoi mappare attributi aggiuntivi. 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 una di queste dichiarazioni a google.subject
per identificarla in modo univoco
per l'utente. Per proteggerti dalle minacce di spoofing, scegli un reclamo con un valore unico che non può essere modificato.
Molti IdP compilano l'affermazione sub
con un ID univoco e immutabile. Per questi IdP, valuta la possibilità di mappare l'attestazione sub
su
google.subject
:
google.subject=assertion.sub
Evita di utilizzare affermazioni come email
a questo scopo. Indirizzi email
che possono essere riassegnate o modificate, in modo che non vengano trasferite in modo univoco e permanente
identificare un utente.
SAML
Le mappature degli attributi possono utilizzare gli elementi <Subject>
e <Attribute>
integrati nell'affermazione rilasciata dall'IdP esterno. SAML
possono essere utilizzati come riferimento 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 una di queste dichiarazioni a google.subject
affinché
per identificare l'utente. Per proteggerti dalle minacce di spoofing, scegli una dichiarazione con
un valore univoco non modificabile.
Molti IdP popolano NameId
con un indirizzo univoco
immutabile. Per questi IdP, valuta la possibilità di mappare
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. Generalmente gli indirizzi email possono essere riassegnati o modificati,
non identificano in modo univoco e permanente un utente.
(Facoltativo) Definisci una condizione dell'attributo.
Le condizioni degli attributi sono espressioni CEL che possono verificare gli attributi di asserzione e
attributi target. Se la condizione dell'attributo ha valore true
per una determinata
credenziale, la credenziale 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 una rivendicazione service_account
personalizzata con 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'entità https://example.com/SAML/Attributes/AllowGcpFederation
personalizzata
con il valore true
:
assertion.attributes['https://example.com/SAML/Attributes/AllowGcpFederation'][0]=='true'
Crea il pool di identità per i carichi di lavoro e il provider
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare la federazione delle identità per i carichi di lavoro, chiedi all'amministratore di concederti seguenti ruoli IAM sul 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 è consigliabile concedere ruoli di base in un ambiente di produzione, ma puoi concederli in una
di sviluppo o test.
Ora hai raccolto tutte le informazioni necessarie per creare un pool e un provider di identità di carico di lavoro:
Console
Nella console Google Cloud, vai a 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 del 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 provider, inserisci un nome per il provider. Il nome è utilizzata anche come ID provider. Non puoi modificare l'ID fornitore dopo la creazione del fornitore.
- In Issuer URL (URL emittente), inserisci l'URL dell'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: segmento di pubblico previsto di token ID.
SAML
- In 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 provider dopo la creazione del provider.
- In File di metadati IDP (XML), carica il file XML dei metadati SAML documento fornito dal 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 attributi, inserisci la condizione dell'attributo che hai identificato in precedenza in questa guida. Se non lo usi, lascia il campo vuoto. hanno una condizione dell'attributo.
Per creare il pool e il provider di identità per i carichi di lavoro, 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 di pool di identità per i carichi di lavoro, segui questi passaggi:
OIDC
Per aggiungere un provider di pool di identità per i carichi di lavoro OIDC, esegui questo 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'identità del carico di lavoro univoca con l'ID provider di pool che preferisci.POOL_ID
: l'ID del pool di identità per i carichi di lavoro che hai creato in precedenza.ISSUER
: un URI emittente come definito nei metadati OIDC.AUDIENCE
: il segmento di pubblico previsto per l'ID che, per molti provider, corrisponde all'ID client.MAPPINGS
: un elenco separato da virgole di mappature degli attributi che hai creato in precedenza.CONDITIONS
: un'opzione facoltativa condizione dell'attributo che hai creato in precedenza. Rimuovi il parametro se non hai una condizione dell'attributo.JWK_JSON_PATH
: Un percorso facoltativo dei JWK OIDC caricati localmente. Se questo parametro non viene fornito, viene usato Google Cloud utilizza il percorso/.well-known/openid-configuration
dell'IdP per trovare i JWK contenenti le chiavi pubbliche.
SAML
Per aggiungere un provider di pool di identità per i carichi di lavoro SAML, esegui questo 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, segui questi 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 carico di lavoro.
- Scarica un file di certificato contenente la chiave pubblica.
- Configura l'IdP SAML in modo che utilizzi la chiave pubblica per criptare le asserzioni SAML che emettono.
- 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 chiavi di crittografia delle asserzioni SAML per la federazione delle identità dei carichi di lavoro
Questa sezione illustra la creazione di una coppia di chiavi asimmetrica che consente la federazione delle identità per i carichi di lavoro per accettare le 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 questo comando. Per scoprire 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
: 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 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
: 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. Consulta il tuo IdP per ottenere 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.
Elimina le chiavi di crittografia della federazione delle identità per i carichi di lavoro
Per eliminare le chiavi di crittografia SAML, esegui questo 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
: 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 delle chiavi:
- 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 carico di lavoro esterno di accedere alle risorse Google Cloud
Per fornire al tuo carico di lavoro l'accesso alle risorse Google Cloud, ti consigliamo di concedere all'entità l'accesso diretto alle risorse. 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à è 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 l'interfaccia a riga di comando gcloud.
Console
Utilizzare la console Google Cloud per concedere i ruoli IAM
direttamente su una risorsa, devi andare alla pagina della risorsa
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 di 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 sulla add_box Pulsante Concedi l'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 soggetto
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 carichi di lavoroSUBJECT
: la persona soggetto mappato dal tuo IdP, 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 carichi di lavoroGROUP
: il gruppo mappata dal tuo 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
: carico di lavoro ID poolATTRIBUTE_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 le autorizzazioni che concedono.
Fai clic su Salva.
gcloud
Per utilizzare gcloud CLI per concedere ruoli IAM su un di una risorsa di un progetto, segui questi passaggi:
Ottenere il numero del progetto in cui la risorsa viene definito.
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 del progetto. del progetto che contiene il pool di identità per i carichi di lavoroPOOL_ID
: l'ID pool del pool di identità per i carichi di lavoroSUBJECT
: 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.
Simulazione dell'identità degli 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 rappresenta 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 le identità esterne accedano.
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à dell'account di servizio tramite la console Google Cloud o gcloud CLI:
Console
Per utilizzare la console Google Cloud per concedere i 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 di identità per carichi di lavoro.
Seleziona Concedi l'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 la l'account di servizio per le identità esterne, e procedi nel seguente modo:
Per scegliere quali identità nel pool possono rappresentare di account di servizio, esegui una delle seguenti azioni:
Per consentire solo a identità specifiche del pool di identità del carico di lavoro di simulare l'identità dell'account di servizio, seleziona Solo le identità corrispondenti al filtro.
Nell'elenco Nome attributo, seleziona l'attributo. in base alle quali vuoi applicare un 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 dell'attributo susubject
e il valore dell'attributo sul valore dell'affermazionesub
nei token emessi dal tuo provider di identità esterno.
Per salvare la configurazione, fai clic su Salva e poi 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 carichi di lavoroSUBJECT
: la persona soggetto mappato dal tuo IdP, 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 carichi di lavoroGROUP
: il gruppo mappata dal tuo 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
: carico di lavoro ID poolATTRIBUTE_NAME
: uno degli attributi mappati dal tuo provider di identitàATTRIBUTE_VALUE
: il valore dell'attributo
Per pool
<principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
Sostituisci quanto segue:
PROJECT_NUMBER
: il numero del progettoWORKLOAD_POOL_ID
: carico di lavoro ID pool
In Seleziona un ruolo, seleziona il ruolo Utente Workload Identity (
roles/iam.workloadIdentityUser
).Per salvare la configurazione, fai clic su Salva.
gcloud
Per utilizzare gcloud CLI al fine di concedere il ruolo Utente Workload Identity (roles/iam.workloadIdentityUser
)
alle identità esterne che soddisfano determinati criteri, esegui il comando seguente
.
Per soggetto
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 di servizioPROJECT_NUMBER
: il numero di progetto del progetto che contiene il pool di identità per i carichi di lavoroPOOL_ID
: l'ID del pool di identità per i carichi di lavoroSUBJECT
: il valore previsto per l'attributo che che hai mappato agoogle.subject
GROUP
: il valore previsto per l'attributo che che hai mappato agoogle.groups
ATTRIBUTE_NAME
: il nome di un attributo personalizzato in la 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 nella 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 ai pool di identità per i carichi di lavoro -
Nella tabella, seleziona il tuo pool per accedere alla relativa pagina dei dettagli.
-
Fai clic su Concedi accesso.
-
Seleziona Concedi l'accesso con identità federate (consigliato).
-
Per scaricare la credenziale predefinita dell'applicazione (ADC) in modo che se il carico di lavoro può accedere alle librerie client, segui questi passaggi:
-
Fai clic su Scarica configurazione.
-
Nella finestra di dialogo Configura l'applicazione, procedi nel seguente modo:
-
Nell'elenco a discesa Provider, seleziona il tuo o il provider di servizi di terze parti.
-
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 la 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, gcloud CLI e Terraform possono ottenere automaticamente e utilizzale per accedere a Google Cloud. Per consentire librerie e strumenti completano questo processo, devi fornire una credenziale di configurazione del deployment. Questo file definisce quanto segue:
- Da dove ottenere le credenziali esterne
- Quale pool di identità per i carichi di lavoro e provider utilizzare
- Account di servizio da impersonare, se utilizzi l'account di servizio furto d'identità
Le librerie client Cloud ottengono le credenziali esterne da un file locale, un URL HTTP, eseguendo un file eseguibile locale:
Credenziali basate su 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 file JSON documento 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.Quando
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 dell'interfaccia utente la credenziale. 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
: scadenza del token OIDC tempo in secondi (tempo Unix). 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 file JSON documento 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.Quando
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 dell'interfaccia utente la credenziale. Deve essereurn:ietf:params:oauth:token-type:saml2
.saml_response
: la risposta SAML o asserzione SAML con codifica base64.expiration_time
: la scadenza dell'asserzione tempo in secondi (tempo Unix). 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.
All'avvio dell'eseguibile, le librerie client impostano quanto segue 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. Solo presenti quando 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...
Le credenziali esterne possono 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 derivanti da URL: le librerie eseguono una richiesta
GET
per a un endpoint HTTP ogni volta che hanno bisogno di nuove credenziali. 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à per i carichi di lavoro.POOL_ID
: l'ID del pool di identità per i carichi di lavoro.PROVIDER_ID
: l'ID del provider del pool di identità 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 il servizio di breve durata (token) o la rappresentazione dell'account di servizio.SERVICE_ACCOUNT_TOKEN_LIFETIME
: se utilizzi l'impersonificazione dell'account di servizio, sostituiscila con il lifetime del token di accesso all'account di servizio, in secondi; per impostazione predefinita un'ora se non viene specificato. Ometti questo flag se non utilizzi la simulazione dell'identità degli 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 punta a le credenziali di terze parti generate dall'eseguibile. Questo è utile per memorizzando le credenziali nella cache. Se specifichi questo percorso, le librerie di autenticazione ne verifica l'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à per i carichi di lavoro.POOL_ID
: l'ID del pool di identità per i carichi di lavoro.PROVIDER_ID
: l'ID del provider del pool di identità workload.SERVICE_ACCOUNT_EMAIL
: se utilizzi la simulazione dell'identità dei service account, sostituisci con l'indirizzo email del service account. Ometti questo flag se non usi l'account di servizio il furto d'identità.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à degli account di servizio. Per specificare una durata superiore a uno devi configurareconstraints/iam.allowServiceAccountCredentialLifetimeExtension
vincolo dei criteri dell'organizzazione.FILEPATH
: il file per salvare la configurazione. a.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 derivanti da 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 che contiene il pool di identità per i carichi di lavoro.POOL_ID
: ID del pool di identità per i carichi di lavoro.PROVIDER_ID
: ID del pool di identità per i carichi di lavoro fornitoreSERVICE_ACCOUNT_EMAIL
: se usi il servizio dell'account di servizio, sostituiscilo con l'indirizzo email del servizio . Ometti questo flag se non utilizzi l'impersonificazione dell'account di servizio.SERVICE_ACCOUNT_TOKEN_LIFETIME
: se utilizzi l'impersonificazione dell'account di servizio, sostituiscila con il lifetime del token di accesso all'account di servizio, in secondi; per impostazione predefinita un'ora se non viene specificato. 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
: 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 di token ID OIDC, impostato sutext
(valore predefinito) ojson
FIELD_NAME
: campo del file di testo che contiene il token (seSOURCE_TYPE
èjson
)
Utilizza 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 punta al file di configurazione delle credenziali:Bash
doveexport GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
FILEPATH
è il percorso relativo di configurazione delle credenziali.PowerShell
dove$env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
FILEPATH
è il percorso relativo di configurazione delle credenziali.Utilizza una libreria client o uno strumento che supporti la federazione delle identità per i carichi di lavoro e possa trova 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 verificare quale versione di questo artefatto è utilizzata dalla libreria client, esegui il comando 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à per i carichi di lavoro se utilizzano la versione 7.0.2 o versioni 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 consenti aGoogleAuth
di trovare automaticamente l'ID progetto. 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 delle identità per i carichi di lavoro se utilizzano la versione 1.27.0 o versioni successive del Pacchetto
google-auth
.Per verificare quale versione di questo pacchetto viene utilizzata dalla libreria client, esegui il comando questo comando nell'ambiente in cui è installato il pacchetto:
pip show google-auth
Per specificare un ID progetto per il client di autenticazione, puoi impostare il valore
GOOGLE_CLOUD_PROJECT
o puoi 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 mediante la federazione delle identità per i carichi di lavoro, utilizza Comando
gcloud auth login
:gcloud auth login --cred-file=FILEPATH.json
Sostituisci
FILEPATH
con il percorso della di configurazione delle credenziali.Il supporto per la federazione delle identità per i carichi di lavoro in gcloud CLI è disponibile in Versione 363.0.0 e versioni 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 delle identità per i carichi di lavoro.
- Scopri le best practice per l'utilizzo della federazione delle identità per i carichi di lavoro.
- Scopri come puoi gestire i provider e i pool di identità per i carichi di lavoro.