Configurare la federazione delle identità per i carichi di lavoro con altri provider di identità

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 e x5t 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 o ES256.
  • 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 rivendicazione iat nel passato.

    Il valore di exp deve essere al massimo superiore al valore di iat 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'URL ISSUER/.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 su urn:oasis:names:tc:SAML:2.0:nameid-format:entity.
  • Un elemento Subject con:
    • un elemento NameID.
    • Esatto un elemento SubjectConfirmation con Method impostato su urn:oasis:names:tc:SAML:2.0:cm:bearer.
    • un elemento SubjectConfirmationData con NotOnOrAfter impostato su un timestamp nel futuro e nessun valore NotBefore.
  • 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:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. È preferibile utilizzare un progetto dedicato per gestire i provider e i pool di identità per i carichi di lavoro.
  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.

    Enable the 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 il NameID 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:

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

  1. Nella console Google Cloud, vai a Nuovo provider e pool di carichi di lavoro .

    Vai a Nuovo provider e pool di carichi di lavoro

  2. 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.
  3. Fai clic su Continua.

  4. 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à.
  5. Fai clic su Continua.

  6. In Configura gli attributi del provider, aggiungi le mappature degli attributi che hai identificato in precedenza in questa guida.

  7. 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.

  8. Per creare il pool e il provider di identità per i carichi di lavoro, fai clic su Salva.

gcloud

  1. 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.
  2. 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 pool
    • IDP_METADATA_PATH: il percorso locale al documento dei metadati dell'IDP SAML
    • MAPPINGS: un elenco separato da virgole di mappature degli attributi che hai creato in precedenza in questa guida
    • CONDITIONS: 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.
    Tieni presente che, anche con le chiavi del provider di crittografia SAML configurate, la federazione delle identità per i carichi di lavoro può comunque elaborare un'affermazione in chiaro.

    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 scelta
    • WORKLOAD_POOL_ID: l'ID pool
    • PROVIDER_ID: ID provider
    • KEY_SPECIFICATION: la specifica della chiave, che può essere rsa-2048, rsa-3072 e rsa-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 chiave
    • WORKLOAD_POOL_ID: l'ID pool
    • PROVIDER_ID: l'ID provider
    • CERTIFICATE_PATH: il percorso in cui scrivere il certificato, ad esempio saml-certificate.cer o saml-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 chiave
    • WORKLOAD_POOL_ID: l'ID pool
    • PROVIDER_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:

    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.

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket per cui vuoi concedere il ruolo.

  3. Seleziona la scheda Autorizzazioni nella parte superiore della pagina.

  4. Fai clic sulla Pulsante Concedi l'accesso.

    Viene visualizzata la finestra di dialogo Aggiungi entità.

  5. 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 progetto
    • POOL_ID: l'ID del pool di carichi di lavoro
    • SUBJECT: la persona soggetto mappato dal tuo IdP, ad esempio administrator@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 progetto
    • WORKLOAD_POOL_ID: l'ID del pool di carichi di lavoro
    • GROUP: 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 progetto
    • WORKLOAD_POOL_ID: carico di lavoro ID pool
    • ATTRIBUTE_NAME: uno degli attributi mappati dal tuo provider di identità
    • ATTRIBUTE_VALUE: il valore dell'attributo
  6. 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.

  7. Fai clic su Salva.

gcloud

Per utilizzare gcloud CLI per concedere ruoli IAM su un di una risorsa di un progetto, segui questi passaggi:

  1. Ottenere il numero del progetto in cui la risorsa viene definito.

    gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
    
  2. 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'accesso
    • PROJECT_NUMBER: il numero del progetto. del progetto che contiene il pool di identità per i carichi di lavoro
    • POOL_ID: l'ID pool del pool di identità per i carichi di lavoro
    • SUBJECT: il valore previsto per l'attributo che hai mappato a google.subject
    • GROUP: il valore previsto per l'attributo che hai mappato a google.groups
    • ATTRIBUTE_NAME: il nome di un attributo personalizzato nella mappatura degli attributi
    • ATTRIBUTE_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

  1. Per creare un account di servizio per il carico di lavoro esterno:

    1. Enable the IAM, Security Token Service, and Service Account Credentials APIs.

      Enable the APIs

    2. 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.

    3. Concedi all'account di servizio l'accesso alle risorse a cui vuoi che le identità esterne accedano.

    4. Concedi il ruolo Utente Workload Identity (roles/iam.workloadIdentityUser) all'account di servizio.

  2. 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

  1. Per concedere l'accesso utilizzando la simulazione dell'identità dell'account di servizio per un account di servizio nello stesso progetto:

    1. Vai alla pagina Pool di identità per carichi di lavoro.

      Vai ai pool di identità per i carichi di lavoro

    2. Seleziona Concedi l'accesso.

    3. Nella finestra di dialogo Concedi l'accesso all'account di servizio, seleziona Concedi l'accesso utilizzando la simulazione dell'identità degli account di servizio.

    4. Nell'elenco Account di servizio, seleziona la l'account di servizio per le identità esterne, e procedi nel seguente modo:

    5. 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 su subject e il valore dell'attributo sul valore dell'affermazione sub nei token emessi dal tuo provider di identità esterno.

    6. Per salvare la configurazione, fai clic su Salva e poi Ignora.

Account di servizio in un altro progetto

  1. Per concedere l'accesso utilizzando la rappresentazione dell'account di servizio per un account di servizio in un progetto diverso:

    1. Vai alla pagina Service Accounts.

      Vai a Service account

    2. Seleziona l'account di servizio di cui vuoi assumere il ruolo.

    3. Fai clic su Gestisci accesso.

    4. Fai clic su Aggiungi entità.

    5. 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 progetto
      • POOL_ID: l'ID del pool di carichi di lavoro
      • SUBJECT: la persona soggetto mappato dal tuo IdP, ad esempio administrator@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 progetto
      • WORKLOAD_POOL_ID: l'ID del pool di carichi di lavoro
      • GROUP: 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 progetto
      • WORKLOAD_POOL_ID: carico di lavoro ID pool
      • ATTRIBUTE_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 progetto
      • WORKLOAD_POOL_ID: carico di lavoro ID pool
    6. In Seleziona un ruolo, seleziona il ruolo Utente Workload Identity (roles/iam.workloadIdentityUser).

    7. 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 servizio
  • PROJECT_NUMBER: il numero di progetto 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
  • SUBJECT: il valore previsto per l'attributo che che hai mappato a google.subject
  • GROUP: il valore previsto per l'attributo che che hai mappato a google.groups
  • ATTRIBUTE_NAME: il nome di un attributo personalizzato in la mappatura degli attributi
  • ATTRIBUTE_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:

  1. Nella console Google Cloud, vai alla pagina Pool di identità di carico di lavoro.

    Vai ai pool di identità per i carichi di lavoro
  2. Nella tabella, seleziona il tuo pool per accedere alla relativa pagina dei dettagli.

  3. Fai clic su Concedi accesso.

  4. Seleziona Concedi l'accesso con identità federate (consigliato).

  5. Per scaricare la credenziale predefinita dell'applicazione (ADC) in modo che se il carico di lavoro può accedere alle librerie client, segui questi passaggi:

    1. Fai clic su Scarica configurazione.

    2. Nella finestra di dialogo Configura l'applicazione, procedi nel seguente modo:

      1. Nell'elenco a discesa Provider, seleziona il tuo o il provider di servizi di terze parti.

      2. In Percorso token OIDC o Percorso dell'asserzione SAML, inserisci il percorso in cui si trova il token o l'asserzione.

      3. Nell'elenco a discesa Tipo di formato, seleziona la formato.

    3. 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 campi id_token e token_type. L'eseguibile deve uscire con il codice di uscita 0.

      Se false, la risposta deve contenere i campi code e message ed uscire con un valore diverso da zero.

    • token_type: il tipo di token dell'interfaccia utente la credenziale. I valori supportati sono

      • urn: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 campi id_token e token_type. L'eseguibile deve uscire con il codice di uscita 0.

      Se false, la risposta deve contenere i campi code e message ed uscire con un valore diverso da zero.

    • token_type: il tipo di token dell'interfaccia utente la credenziale. Deve essere urn: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 su 1.

  • 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'organizzazione constraints/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 configurare constraints/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 su text (valore predefinito) o json.
  • FIELD_NAME: il campo nel file di testo che contiene il token (se SOURCE_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 fornitore
  • SERVICE_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'organizzazione constraints/iam.allowServiceAccountCredentialLifetimeExtension.
  • FILEPATH: file in cui salvare la configurazione.
  • TOKEN_URL: URL da cui recuperare il token ID OIDC
  • KEY_n, VALUE_n: intestazioni personalizzate da includere nella richiesta HTTP a TOKEN_URL
  • SOURCE_TYPE: formato del file di token ID OIDC, impostato su text (valore predefinito) o json
  • FIELD_NAME: campo del file di testo che contiene il token (se SOURCE_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:

  1. inizializza una variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS e punta al file di configurazione delle credenziali:

    Bash

      export GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
      
    dove FILEPATH è il percorso relativo di configurazione delle credenziali.

    PowerShell

      $env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
      
    dove FILEPATH è il percorso relativo di configurazione delle credenziali.
  2. 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 a GoogleAuth 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 il README per il pacchetto google-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 pacchetto google-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