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

Questa guida descrive come utilizzare la federazione delle identità dei carichi di lavoro con altri provider di identità (IdP).

Per eseguire l'autenticazione in Google Cloud, puoi consentire al carico di lavoro di scambiare le proprie credenziali specifiche dell'ambiente con credenziali Google Cloud di breve durata utilizzando la federazione delle identità per i carichi di lavoro.

I carichi di lavoro eseguiti al di fuori di Google Cloud potrebbero avere accesso a credenziali esistenti specifiche dell'ambiente, ad esempio:

  • Un workload potrebbe essere in grado di ottenere un token di asserzione OpenID Connect (OIDC) da un provider di identità (IdP).

  • Un carico di lavoro potrebbe essere in grado di ottenere un token di asserzione SAML da un provider di identità (IdP).

L'utilizzo della federazione delle identità per i carichi di lavoro può aiutarti a ridurre il numero di credenziali che richiedono la rotazione.

Le sezioni seguenti descrivono come utilizzare la federazione delle identità dei carichi di lavoro con IdP che supportano i protocolli di autenticazione OpenID Connect (OIDC) o SAML.

Prepara il tuo IdP esterno

Devi eseguire questi passaggi una sola volta per ogni IdP.

Prima di iniziare, verifica che il tuo IdP esterno soddisfi i seguenti requisiti:

OIDC

  • L'IdP supporta OpenID Connect 1.0.

  • L'IdP ha un URI emittente.

  • La JWK del provider di identità utilizzata per verificare un token di asserzione OIDC può essere fornita in uno dei seguenti modi:

    • Endpoint metadati OIDC protetti con SSL e TLS. Gli URL degli endpoint devono iniziare con https:// e gli endpoint sono accessibili pubblicamente su internet. Gli endpoint protetti con certificati autofirmati non sono supportati da Google Cloud.

      Google Cloud utilizza questi endpoint per scaricare il JWK del tuo IdP e utilizza questo set di chiavi per convalidare i token.

    • File JWKS OIDC caricati direttamente su Google Cloud. Se utilizzi questo metodo, l'endpoint non deve essere accessibile pubblicamente. I campi x5c e x5t all'interno di JWK non sono supportati e devono essere rimossi prima del caricamento.

SAML

  • L'IdP supporta SAML 2.0.

  • L'IdP fornisce un documento dei 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.

  • I requisiti della chiave di firma X.509 SAML includono quanto segue:

    • Una chiave pubblica RSA inserita in un certificato X.509 v3.

    • Requisiti di validità del certificato:

      • notBefore: un timestamp non più di 7 giorni nel futuro
      • notAfter: un timestamp non più lontano di 25 anni nel futuro
    • Algoritmi consigliati:

Un fornitore di pool di identità del workload può essere configurato con al massimo tre chiavi di firma in un determinato momento. Quando esistono più chiavi, Google Cloud le scorre e tenta di utilizzare ogni chiave non scaduta per soddisfare una richiesta di scambio di token.

Come best practice di sicurezza, ti consigliamo vivamente di non riutilizzare la stessa coppia di chiavi con altri servizi.

Se il tuo IdP soddisfa questi criteri, procedi nel seguente modo:

OIDC

Configura il tuo IdP in modo che il tuo workload possa ottenere token ID che soddisfino i seguenti criteri:

  • I token vengono firmati utilizzando l'algoritmo RS256 o ES256.
  • I token contengono un'attestazione aud con il seguente valore:

    https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
    

    Sostituisci quanto segue:

    • PROJECT_NUMBER: il numero di progetto del progetto Google Cloud che utilizzi per creare il pool di identità del workload.
    • POOL_ID: un ID a tua scelta che identifica il pool di identità del workload. Devi utilizzare lo stesso ID quando crei il pool di identità del workload in un secondo momento.
    • WORKLOAD_PROVIDER_ID: un ID a tua scelta che identifica il fornitore del pool di identità del workload. Devi utilizzare lo stesso ID quando crei il fornitore del pool di identità del workload in un secondo momento.

    In alternativa, puoi configurare il fornitore del pool di identità del workload in modo che si aspetti un segmento di pubblico personalizzato.

  • I token contengono un'attestazione exp futura e un'attestazione iat passata.

    Il valore di exp deve essere superiore al valore di iat di al massimo 24 ore.

In genere, è meglio utilizzare i token ID quando si esegue uno scambio di token, perché i token ID riflettono l'identità dell'utente. Se decidi di utilizzare i token di accesso, assicurati che soddisfino i seguenti requisiti aggiuntivi:

  • I token di accesso sono formattati come JSON Web Token
  • I token di accesso contengono un claim ISSUER in modo che l'URL ISSUER/.well-known/openid-configuration punti all'endpoint dei metadati OIDC dell'IdP.

  • Per caricare le chiavi JWK locali, vedi Gestire i JWK OIDC.

SAML

Configura il tuo IdP in modo che le asserzioni SAML contengano elementi che soddisfino i seguenti criteri:

  • un elemento Issuer impostato sull'ID entità configurato nel provider del pool di identità del workload. 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.
    • esattamente 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 che si verifica in futuro e nessun valore NotBefore.
  • un elemento Conditions con:

    • NotBefore omesso o nel passato.
    • NotOnOrAfter omesso o in futuro.
    • Un Audience formattato nel seguente modo:

      https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
      

      Sostituisci quanto segue:

      • PROJECT_NUMBER: il numero di progetto del progetto Google Cloud che utilizzi per creare il pool di identità del workload.
      • POOL_ID: un ID a tua scelta che identifica il pool di identità del workload. Devi utilizzare lo stesso ID quando crei il pool di identità del workload in un secondo momento.
      • WORKLOAD_PROVIDER_ID: un ID a tua scelta che identifica il fornitore del pool di identità del workload. Devi utilizzare lo stesso ID quando crei il provider del pool di identità del workload in un secondo momento.
  • almeno un elemento AuthnStatement.

  • un elemento SessionNotOnOrAfter con un timestamp che si verifica in futuro. In alternativa, ometti l'elemento.

Per le asserzioni SAML racchiuse in una risposta SAML, la risposta SAML deve contenere:

  • esattamente un'asserzione che soddisfi i criteri dell'asserzione SAML descritti in precedenza in questa sezione.
  • un attributo IssueInstant con un valore inferiore a 1 ora nel passato.
  • StatusCode urn:oasis:names:tc:SAML:2.0:status:Success.

L'asserzione SAML, la risposta o entrambe devono essere firmate.

Configura la federazione delle identità per i workload

Devi eseguire questi passaggi una sola volta per ogni IdP. Puoi quindi utilizzare lo stesso fornitore e pool di identità del workload per più workload e in più progetti Google Cloud .

Per iniziare a configurare la federazione delle identità per i workload:

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

    Go to project selector

  2. È consigliabile utilizzare un progetto dedicato per gestire i provider e i pool di identità del workload.
  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 caricati autonomamente

Questa sezione mostra come gestire le JWK OIDC caricate autonomamente nei provider OIDC del pool di identità del workload.

Crea un provider e carica i JWK OIDC

Per creare JWK OIDC, consulta Implementazioni di JWT, JWS, JWE, JWK e JWA.

Per caricare un file JWK OIDC quando crei un provider di pool di identità del workload, esegui il comando gcloud iam workload-identity-pools providers create-oidc con --jwk-json-path="JWK_JSON_PATH". Sostituisci JWK_JSON_PATH con il percorso del file JSON JWK.

Questa operazione crea le chiavi caricate con quelle nel file.

Aggiorna JWK OIDC

Per aggiornare le JWK OIDC, esegui il comando gcloud iam workload-identity-pools providers update-oidc con --jwk-json-path="JWK_JSON_PATH". Sostituisci JWK_JSON_PATH con il percorso del file JSON JWK.

Questa operazione sostituisce le chiavi caricate esistenti con quelle nel file. Non puoi ripristinare le chiavi sostituite.

Elimina tutte le JWK OIDC caricate

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 providers update-oidc con --jwk-json-path="JWK_JSON_PATH". Sostituisci JWK_JSON_PATH con il percorso di un file vuoto. Utilizza il flag --issuer-uri per impostare l'URI dell'emittente.

Questa operazione elimina tutte le chiavi caricate esistenti con quelle nel file. Non puoi ripristinare le chiavi eliminate.

Definisci un mapping degli attributi e una condizione

I token OIDC o le asserzioni SAML emesse dal tuo IdP potrebbero contenere più attributi e devi decidere quale attributo vuoi utilizzare come identificatore del soggetto (google.subject) in Google Cloud.

Se vuoi, puoi mappare altri attributi. Puoi quindi fare riferimento a questi attributi quando concedi l'accesso alle risorse.

OIDC

Le mappature degli attributi possono utilizzare le rivendicazioni incorporate nel token ID o nel token di accesso emesso dall'IdP esterno.

Devi mappare una di queste rivendicazioni a google.subject per identificare in modo univoco l'utente. Per proteggerti dalle minacce di spoofing, scegli un'attestazione con un valore univoco che non può essere modificato.

Molti IdP compilano l'attributo sub con un ID univoco e immutabile. Per questi IdP, valuta la mappatura dell'attributo sub a google.subject:

google.subject=assertion.sub

Evita di utilizzare un'affermazione come email a questo scopo. Gli indirizzi email possono in genere essere riassegnati o modificati, quindi non identificano in modo univoco e permanente un utente.

SAML

Le mappature degli attributi possono utilizzare gli elementi <Subject> e <Attribute> incorporati nell'asserzione emessa dall'IdP esterno. È possibile fare riferimento agli attributi SAML utilizzando le seguenti parole chiave:

  • assertion.subject contiene NameID dell'utente autenticato trovato nell'elemento <Subject>.
  • assertion.attributes['ATTRIBUTE_NAME'] contiene un elenco di valori per il campo <Attribute> con lo stesso nome.

Devi mappare una di queste rivendicazioni a google.subject per identificare in modo univoco l'utente. Per proteggerti dalle minacce di spoofing, scegli un'attestazione con un valore univoco che non può essere modificato.

Molti IdP compilano NameId con un ID univoco e immutabile. Per questi IdP, valuta la possibilità di mappare l'attributo NameId a google.subject:

google.subject=assertion.subject

Evita di utilizzare un attributo come http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress a questo scopo. Gli indirizzi email possono in genere essere riassegnati o modificati, quindi non identificano un utente in modo univoco e permanente.

(Facoltativo) Definisci una condizione dell'attributo. Le condizioni degli attributi sono espressioni CEL che possono controllare gli attributi dell'asserzione e gli attributi di destinazione. Se la condizione dell'attributo restituisce true per una determinata credenziale, la credenziale viene accettata. In caso contrario, la credenziale viene rifiutata.

OIDC

Puoi utilizzare una condizione dell'attributo per limitare gli utenti che possono utilizzare la federazione di Workload Identity per ottenere token Google Cloud di breve durata.

Ad esempio, la seguente condizione limita l'accesso ai token che contengono un'attestazione service_account personalizzata con un valore true:

assertion.service_account==true

SAML

Puoi utilizzare una condizione dell'attributo per limitare gli utenti che possono utilizzare la federazione di Workload Identity per ottenere token Google Cloud di breve durata.

Ad esempio, la seguente condizione limita l'accesso alle asserzioni che contengono un attributo personalizzato https://example.com/SAML/Attributes/AllowGcpFederation con un valore true:

assertion.attributes['https://example.com/SAML/Attributes/AllowGcpFederation'][0]=='true'

Crea il fornitore e il pool di identità del workload

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare la federazione delle identità per i carichi di lavoro, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci 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 devi concedere ruoli di base in un ambiente di produzione, ma puoi concederli in un ambiente di sviluppo o di test.

Ora hai raccolto tutte le informazioni necessarie per creare un fornitore e un pool di identità del workload:

Console

  1. Nella console Google Cloud , vai alla pagina Nuovo provider e pool di workload.

    Vai a Nuovo provider e pool di workload

  2. In Crea un pool di identità, inserisci quanto segue:

    • Nome: il nome del pool. Il nome viene utilizzato anche come ID pool. Non potrai modificare l'ID pool in un secondo momento.
    • Descrizione: testo che descrive lo scopo del pool.
  3. Fai clic su Continua.

  4. Configura le impostazioni del fornitore nel seguente modo:

    OIDC

    • In Seleziona un provider, seleziona OpenID Connect (OIDC).
    • In Nome provider, inserisci un nome per il provider. Il nome viene utilizzato anche come ID fornitore. Non puoi modificare l'ID fornitore dopo la creazione del fornitore.
    • In URL emittente, inserisci l'URL emittente del tuo IdP. L'URL deve iniziare con https://
    • (Facoltativo) In File JWK (JSON), scegli un file JWK da caricare. Se questo campo non viene fornito, Google Cloud tenta di recuperare una JWK dall'emittente.
    • Segmenti di pubblico consentiti: il pubblico previsto dei token ID.

    SAML

    • In Select a provider (Seleziona un provider), seleziona SAML.
    • In Nome provider, inserisci un nome per il provider. Il nome viene utilizzato anche come ID fornitore. Non puoi modificare l'ID fornitore dopo la creazione del fornitore.
    • In IDP Metadata file (XML) (File di metadati IDP (XML)), carica il documento XML dei metadati SAML fornito dal tuo provider di identità.
  5. Fai clic su Continua.

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

  7. In Condizioni degli attributi, inserisci la condizione dell'attributo che hai identificato in precedenza in questa guida. Lascia vuoto il campo se non hai una condizione dell'attributo.

  8. Per creare il fornitore e il pool di identità del workload, fai clic su Salva.

gcloud

  1. Per creare un nuovo pool di identità dei carichi di lavoro, esegui questo 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 che scegli. Questa descrizione viene visualizzata quando concedi l'accesso alle identità del pool.
  2. Per aggiungere un provider del pool di identità del workload:

    OIDC

    Per aggiungere un provider di pool di identità del workload OIDC, esegui il seguente comando:

    gcloud iam workload-identity-pools providers create-oidc WORKLOAD_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:

    • WORKLOAD_PROVIDER_ID: un ID fornitore del pool di identità del workload univoco a tua scelta.
    • POOL_ID: l'ID del pool di identità del workload che hai creato in precedenza.
    • ISSUER: un URI emittente come definito nei metadati OIDC.
    • AUDIENCE: Il pubblico previsto dei token ID, che, per molti provider, corrisponde all'ID client.
    • MAPPINGS: un elenco separato da virgole di mappature degli attributi che hai creato in precedenza in questa guida.
    • CONDITIONS: una condizione dell'attributo facoltativa che hai creato in precedenza in questa guida. Rimuovi il parametro se non hai una condizione dell'attributo.
    • JWK_JSON_PATH: Un percorso facoltativo per un JWK OIDC caricato localmente. Se questo parametro non viene fornito, Google Cloud invece utilizza il percorso /.well-known/openid-configuration dell'IdP per recuperare i JWK contenenti le chiavi pubbliche.

    SAML

    Per aggiungere un provider di pool di identità del workload SAML, esegui il seguente comando:

    gcloud iam workload-identity-pools providers create-saml WORKLOAD_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 ID pool di identità per la forza lavoro o provider di pool di identità per la forza lavoro.

    (Facoltativo) Accetta le asserzioni SAML criptate dal tuo IdP

    Per consentire al tuo IdP SAML 2.0 di produrre asserzioni SAML criptate che possono essere accettate dalla federazione delle identità per i carichi di lavoro, procedi nel seguente modo:

    • Nella federazione delle identità per i carichi di lavoro, procedi nel seguente modo:
      • Crea una coppia di chiavi asimmetriche per il provider del pool di identità del workload.
      • 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 emette.
    • Nel tuo 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.
      • Conferma che il tuo IdP produce asserzioni SAML criptate.
    Tieni presente che, anche con le chiavi del fornitore di crittografia SAML configurate, la federazione delle identità per i carichi di lavoro può comunque elaborare un'asserzione in testo non crittografato.

    Crea chiavi di crittografia delle asserzioni SAML per la federazione delle identità per i workload

    Questa sezione ti guida nella creazione di una coppia di chiavi asimmetriche che consente alla federazione delle identità per i carichi di lavoro di accettare asserzioni SAML criptate.

    Google Cloud utilizza la chiave privata per decriptare le asserzioni SAML emesse dal tuo IdP. Per creare una coppia di chiavi asimmetriche da utilizzare con la crittografia SAML, esegui il seguente comando. Per saperne di più, consulta Algoritmi di crittografia SAML supportati.

    gcloud iam workload-identity-pools providers keys create KEY_ID \
        --workload-identity-pool WORKLOAD_POOL_ID \
        --provider WORKLOAD_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
    • WORKLOAD_PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
    • KEY_SPECIFICATION: la specifica della chiave, che può essere rsa-2048, rsa-3072 e rsa-4096.

    Dopo aver creato la coppia di chiavi, esegui il seguente comando per scaricare la chiave pubblica in un file di certificato. Solo la federazione delle identità per i carichi di lavoro ha accesso alla chiave privata.

    gcloud iam workload-identity-pools providers keys describe KEY_ID \
        --workload-identity-pool WORKLOAD_POOL_ID \
        --provider WORKLOAD_PROVIDER_ID \
        --location global \
        --format "value(keyData.key)" \
        > CERTIFICATE_PATH

    Sostituisci quanto segue:

    • KEY_ID: il nome della chiave
    • WORKLOAD_POOL_ID: l'ID pool
    • WORKLOAD_PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro
    • 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. Per istruzioni specifiche, rivolgiti al team del tuo IdP.

    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 workload può comunque elaborare le asserzioni in testo normale.

    Elimina le chiavi di crittografia della federazione delle identità per i workload

    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 WORKLOAD_PROVIDER_ID \
          --location global

    Sostituisci quanto segue:

    • KEY_ID: il nome della chiave
    • WORKLOAD_POOL_ID: l'ID pool
    • WORKLOAD_PROVIDER_ID: l'ID del provider del pool di identità della forza lavoro

    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:

Autenticare un workload

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 workload l'accesso alle risorse Google Cloud , ti consigliamo di concedere l'accesso diretto alle risorse all'entità. In questo caso, il principal è l'utente federato. Alcuni prodotti Google Cloud hanno limitazioni dell'API Google Cloud. Se il tuo carico di lavoro chiama un endpoint API che presenta una limitazione, puoi invece utilizzare la rappresentazione dell'identità delaccount di serviziot. In questo caso, l'entità è il service accountGoogle Cloud , che funge da identità. Concedi l'accesso alaccount di serviziot sulla risorsa.

Accesso diretto alle risorse

Puoi concedere l'accesso a un'identità federata direttamente alle risorse utilizzando la console Google Cloud o gcloud CLI.

Console

Per utilizzare la console Google Cloud per concedere i ruoli IAM direttamente su una risorsa, devi andare alla pagina della risorsa e poi concedere il ruolo. L'esempio seguente mostra come accedere 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 in 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 sul 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 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 pool di workload
    • SUBJECT: il soggetto individuale 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 pool di workload
    • GROUP: il gruppo mappato 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: l'ID pool di workload
    • ATTRIBUTE_NAME: uno degli attributi mappati dal tuo IdP
    • 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 delle autorizzazioni che concedono.

  7. Fai clic su Salva.

gcloud

Per utilizzare gcloud CLI per concedere ruoli IAM su una risorsa in un progetto, procedi nel seguente modo:

  1. Ottieni il numero del progetto in cui è definita la risorsa.

    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) alle identità esterne che soddisfano determinati criteri, esegui questo 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 di progetto del progetto che contiene il pool di identità del workload.
    • POOL_ID: l'ID pool del pool di identità del workload
    • SUBJECT: il valore previsto per l'attributo che hai mappato su google.subject
    • GROUP: il valore previsto per l'attributo che hai mappato su google.groups
    • ATTRIBUTE_NAME: il nome di un attributo personalizzato nel mapping degli attributi
    • ATTRIBUTE_VALUE: il valore dell'attributo personalizzato nella mappatura degli attributi

    Puoi concedere ruoli su qualsiasi risorsa Google Cloud che supporta i criteri di autorizzazione IAM.

Simulazione dell'identità dei service account

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

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

      Enable the APIs

    2. Crea un service account che rappresenti il workload. Ti consigliamo di utilizzare un account di servizio dedicato per ogni workload. Il account di servizio non deve trovarsi nello stesso progetto del pool di identità del carico di lavoro, ma devi fare riferimento al progetto che contiene il account di servizio.

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

  2. Per consentire all'identità federata di rappresentare il account di servizio, procedi nel seguente modo:

Console

Per utilizzare la console Google Cloud per concedere ruoli IAM a un'identità federata con account di servizio:

Service Account nello stesso progetto

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

    1. Vai alla pagina Pool di identità del workload.

      Vai a Pool di identità del workload

    2. Seleziona Concedi l'accesso.

    3. Nella finestra di dialogo Concedi l'accesso al service account, seleziona Concedi l'accesso utilizzando la simulazione dell'identità del service account.

    4. Nell'elenco Service account, seleziona il account di servizio per le identità esterne da rappresentare e procedi nel seguente modo:

    5. Per scegliere quali identità nel pool possono rappresentare l'account di servizio, esegui una delle seguenti azioni:

      • Per consentire solo a identità specifiche del pool di identità del workload di simulare l'identità del account di servizio, seleziona Solo le identità corrispondenti al filtro.

      • Nell'elenco Nome attributo, seleziona l'attributo in base al quale vuoi filtrare.

      • 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'attestazione sub nei token emessi dal tuo IdP esterno.

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

Service account in un altro progetto

  1. Per concedere l'accesso utilizzando la rappresentazione dell'account di servizio per un service account in un altro progetto, procedi nel seguente modo:

    1. Vai alla pagina Service Accounts.

      Vai a Service account

    2. Seleziona l'account di servizio che vuoi rappresentare.

    3. Fai clic su Gestisci accesso.

    4. Fai clic su Aggiungi entità.

    5. Nel campo Nuova entità, inserisci uno dei seguenti identificatori dell'entità per le identità nel tuo pool che rappresenteranno 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 pool di workload
      • SUBJECT: il soggetto individuale 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 pool di workload
      • GROUP: il gruppo mappato 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: l'ID pool di workload
      • ATTRIBUTE_NAME: uno degli attributi mappati dal tuo IdP
      • ATTRIBUTE_VALUE: il valore dell'attributo

      Per piscina

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
      

      Sostituisci quanto segue:

      • PROJECT_NUMBER: il numero del progetto
      • WORKLOAD_POOL_ID: l'ID pool di workload
    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 concedere il ruolo Utente Workload Identity (roles/iam.workloadIdentityUser) a un'entità federata o a un insieme di entità, esegui questo comando. Per scoprire di più sugli identificatori dei principal della federazione delle identità per i workload, consulta Tipi di principal.

Per argomento

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"

Per gruppo

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"

Per attributo

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"

Sostituisci quanto segue:

  • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di servizio
  • PROJECT_NUMBER: il numero di progetto del progetto che contiene il pool di identità del workload.
  • POOL_ID: l'ID pool del pool di identità del workload
  • SUBJECT: il valore previsto per l'attributo che hai mappato su google.subject
  • GROUP: il valore previsto per l'attributo che hai mappato su google.groups
  • ATTRIBUTE_NAME: il nome di un attributo personalizzato nel mapping 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 la consoleGoogle Cloud .

Per consentire al tuo workload di accedere alle librerie client, devi prima scaricare e configurare le credenziali predefinite dell'applicazione (ADC) nel seguente modo:

  1. Nella console Google Cloud , vai alla pagina Pool di identità del workload.

    Vai a Pool di identità del workload
  2. Nella tabella, seleziona il tuo pool per andare alla pagina dei dettagli.

  3. Fai clic su Concedi accesso.

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

  5. Per scaricare le credenziali predefinite dell'applicazione (ADC) in modo che il tuo workload possa accedere alle librerie client:

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

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

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

    3. Fai clic su Scarica configurazione e annota il percorso in cui hai salvato il file.

Creare una configurazione delle credenziali

Le librerie client Cloud, l'gcloud CLI e Terraform possono ottenere automaticamente le credenziali esterne e utilizzarle per accedere a Google Cloud. Per consentire a librerie e strumenti di completare questa procedura, devi fornire un file di configurazione delle credenziali. Questo file definisce quanto segue:

  • Dove ottenere le credenziali esterne
  • Quale fornitore e pool di identità del workload utilizzare
  • Quale account di servizio rappresentare, se utilizzi la rappresentazione dell'identità delaccount di serviziot

Le librerie client Cloud ottengono le credenziali esterne da un file locale, da un URL HTTP eseguendo un eseguibile locale:

  • Credenziali basate su eseguibili: le librerie avviano un eseguibile ogni volta che hanno bisogno di nuove credenziali. Se l'eseguibile riesce a ottenere una nuova credenziale esterna, deve scrivere un documento JSON in STDOUT che sia simile al seguente:

    OIDC

    {
      "version": 1,
      "success": true,
      "token_type": "urn:ietf:params:oauth:token-type:id_token",
      "id_token": "HEADER.PAYLOAD.SIGNATURE",
      "expiration_time": 1620499962
    }
    

    Se l'eseguibile non riesce a ottenere una nuova credenziale, deve scrivere un documento JSON in STDOUT simile al seguente:

    {
      "version": 1,
      "success": false,
      "code": "401",
      "message": "Caller not authorized."
    }
    

    I documenti JSON utilizzano i seguenti campi:

    • version: la versione dell'output JSON. È supportata solo la versione 1.
    • success: lo stato della risposta.

      Quando true, la risposta deve contenere i campi id_token e token_type. L'eseguibile deve uscire con il codice di uscita 0.

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

    • token_type: Il tipo di token della credenziale esterna. I valori supportati sono

      • urn:ietf:params:oauth:token-type:id_token
      • urn:ietf:params:oauth:token-type:jwt
    • id_token: le credenziali esterne.

    • expiration_time: La data e l'ora di scadenza del token OIDC in secondi (tempo Unix epoch). Questo campo è obbligatorio solo quando è stato specificato un file di output nella configurazione delle credenziali.

    • code: la stringa del codice di errore.

    • message: il messaggio di errore.

    SAML

    {
      "version": 1,
      "success": true,
      "token_type": "urn:ietf:params:oauth:token-type:saml2",
      "saml_response": "...",
      "expiration_time": 1620499962
    }
    

    Se l'eseguibile non riesce a ottenere una nuova credenziale, deve scrivere un documento JSON in STDOUT simile al seguente:

    {
      "version": 1,
      "success": false,
      "code": "401",
      "message": "Caller not authorized."
    }
    

    I documenti JSON utilizzano i seguenti campi:

    • version: la versione dell'output JSON. È supportata solo la versione 1.
    • success: lo stato della risposta.

      Quando true, la risposta deve contenere i campi id_token e token_type. L'eseguibile deve uscire con il codice di uscita 0.

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

    • token_type: Il tipo di token della credenziale esterna. Deve essere urn:ietf:params:oauth:token-type:saml2.

    • saml_response: La risposta SAML o l'asserzione SAML codificata in base64.

    • expiration_time: la data e l'ora di scadenza dell'asserzione in secondi (tempo Unix epoch). Questo campo è obbligatorio solo quando è stato specificato un file di output nella configurazione delle credenziali.

    • code: la stringa del codice di errore.

    • message: il messaggio di errore.

    Quando viene avviato l'eseguibile, le librerie client impostano le seguenti variabili di ambiente:

    • GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE: Pubblico dalla configurazione delle credenziali. Sempre presente.
    • GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE: Tipo di token soggetto previsto. Sempre presente.
    • GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL: Indirizzo email dell'account di servizio. Presente solo quando viene utilizzata l'impersonificazione del account di servizio.
    • GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE: Posizione del file di output dalla configurazione delle credenziali. Presente solo se specificato nella configurazione delle credenziali.

    Per utilizzare le credenziali basate su eseguibili, devi impostare la variabile di ambiente GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES su 1.

  • Credenziali basate su file: le librerie leggono le credenziali esterne da un file JSON o di testo normale locale. Ad esempio:

    JSON

    {
      "mytoken": "ey...
    }
    

    Testo

    ey...
    

    La credenziale esterna può essere:

    • un token OIDC
    • una risposta SAML
    • un'asserzione SAML con codifica Base64

    Devi aggiornare periodicamente il file in modo che contenga sempre una credenziale valida. Ad esempio, se il token OIDC o l'asserzione SAML è valido per un'ora, devi aggiornare il file almeno una volta ogni ora.

  • Credenziali basate su URL: le librerie eseguono una richiesta GET a un endpoint HTTP ogni volta che hanno bisogno di nuove credenziali. L'endpoint deve restituire una risposta in formato JSON o testo normale 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/WORKLOAD_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 di progetto del progetto che contiene il pool di identità del workload.
  • POOL_ID: l'ID del pool di identità del workload.
  • WORKLOAD_PROVIDER_ID: l'ID del fornitore del pool di identità del workload.
  • SERVICE_ACCOUNT_EMAIL: se utilizzi la simulazione dell'identità del service account, sostituisci questo valore con l'indirizzo email del account di 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, sostituiscilo con la durata del token di accesso all'account di servizio, in secondi; il valore predefinito è un'ora se non viene fornito. Ometti questo flag se non utilizzi l'impersonificazione delaccount di serviziot. Per specificare una durata superiore a un'ora, devi configurare il vincolo dei criteri 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 prima dell'esecuzione dell'eseguibile (il valore predefinito è 30 secondi).
  • EXECUTABLE_OUTPUT_FILE: un percorso che punta alle credenziali 3PI generate dall'eseguibile. Ciò è utile per memorizzare nella cache le credenziali. Se specifichi questo percorso, le librerie Auth verificheranno prima la sua esistenza prima di eseguire l'eseguibile.

Credenziali basate su file

gcloud iam workload-identity-pools create-cred-config \
    projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_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 di progetto del progetto che contiene il pool di identità del workload.
  • POOL_ID: l'ID del pool di identità del workload.
  • WORKLOAD_PROVIDER_ID: l'ID del fornitore del pool di identità del workload.
  • SERVICE_ACCOUNT_EMAIL: se utilizzi la simulazione dell'identità del service account, sostituisci questo valore con l'indirizzo email del service account. Ometti questo flag se non utilizzi l'impersonificazione delaccount di serviziot.
  • SERVICE_ACCOUNT_TOKEN_LIFETIME: se utilizzi l'impersonificazione dell'account di servizio, sostituiscilo con la durata del token di accesso all'account di servizio, in secondi; il valore predefinito è un'ora se non viene fornito. Ometti questo flag se non utilizzi l'impersonificazione delaccount di serviziot. Per specificare una durata superiore a un'ora, devi configurare il vincolo dei criteri dell'organizzazione constraints/iam.allowServiceAccountCredentialLifetimeExtension.
  • FILEPATH: il file in cui salvare la configurazione.
  • TOKEN_FILEPATH: il percorso in cui sono memorizzati i token ID OIDC.
  • SOURCE_TYPE: il formato del file del token ID OIDC, impostato su text (impostazione predefinita) o json.
  • FIELD_NAME: il campo nel file di testo che contiene il token (se SOURCE_TYPE è json).

Credenziali provenienti da URL

gcloud iam workload-identity-pools create-cred-config \
    projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_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: il numero di progetto del progetto che contiene il pool di identità del workload.
  • POOL_ID: ID del pool di identità del workload.
  • WORKLOAD_PROVIDER_ID: ID del fornitore del pool di identità del workload
  • SERVICE_ACCOUNT_EMAIL: se utilizzi la simulazione dell'identità del service account, sostituiscilo con l'indirizzo email del service account. Ometti questo flag se non utilizzi l'impersonificazione delaccount di serviziot.
  • SERVICE_ACCOUNT_TOKEN_LIFETIME: se utilizzi l'impersonificazione dell'account di servizio, sostituiscilo con la durata del token di accesso all'account di servizio, in secondi; il valore predefinito è un'ora se non viene fornito. Ometti questo flag se non utilizzi l'impersonificazione delaccount di serviziot. Per specificare una durata superiore a un'ora, devi configurare il vincolo dei criteri dell'organizzazione constraints/iam.allowServiceAccountCredentialLifetimeExtension.
  • FILEPATH: il 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 del token ID OIDC, impostato su text (impostazione predefinita) o json
  • FIELD_NAME: Campo nel file di testo che contiene il token (se SOURCE_TYPE è json)

Utilizza la configurazione delle credenziali per accedere a Google Cloud

Per consentire a strumenti e librerie client di utilizzare la configurazione delle credenziali, procedi nel seguente modo:

  1. Inizializza una variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS e indirizzala al file di configurazione delle credenziali:

    Bash

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

    PowerShell

      $env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
      
    dove FILEPATH è il percorso relativo al file di configurazione delle credenziali.
  2. Utilizza una libreria client o uno strumento che supporti la federazione delle identità per i carichi di lavoro e che possa trovare automaticamente le credenziali:

    C++

    Le librerie client per C++ supportano la federazione delle identità per i workload a partire dalla versione v2.6.0.Google Cloud Per utilizzare la federazione delle identità per i carichi di lavoro, devi creare le librerie client con gRPC versione 1.36.0 o successive.

    Vai

    Le librerie client per Go supportano la federazione delle identità per i carichi 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 delle identità per i carichi di lavoro se utilizzano la versione 0.24.0 o successive dell'artefatto com.google.auth:google-auth-library-oauth2-http.

    Per controllare quale versione di questo artefatto utilizza la libreria client, esegui il seguente comando Maven nella directory dell'applicazione:

    mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http
    

    Node.js

    Le librerie client per Node.js supportano la federazione delle identità per i carichi di lavoro se utilizzano la versione 7.0.2 o successive del pacchettogoogle-auth-library.

    Per controllare quale versione di questo pacchetto utilizza la tua libreria client, esegui questo comando nella directory dell'applicazione:

    npm list google-auth-library
    

    Quando crei un oggetto GoogleAuth, puoi specificare un ID progetto oppure consentire a GoogleAuth di trovare automaticamente l'ID progetto. Per trovare automaticamente l'ID progetto, il account di servizio nel file di configurazione deve disporre del ruolo Browser (roles/browser) o di un ruolo con autorizzazioni equivalenti per il tuo progetto. Per maggiori dettagli, consulta i 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 successive del pacchetto google-auth.

    Per controllare quale versione di questo pacchetto utilizza la tua libreria client, esegui il comando seguente nell'ambiente in cui è installato il pacchetto:

    pip show google-auth
    

    Per specificare un ID progetto per il client di autenticazione, puoi impostare la variabile di ambiente GOOGLE_CLOUD_PROJECT oppure 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 per il tuo progetto. Per maggiori dettagli, consulta la guida dell'utente per il pacchetto google-auth.

    gcloud

    Per eseguire l'autenticazione utilizzando la federazione delle identità per i carichi di lavoro, utilizza il comando gcloud auth login:

    gcloud auth login --cred-file=FILEPATH.json
    

    Sostituisci FILEPATH con il percorso del file di configurazione delle credenziali.

    Il supporto per la federazione delle identità per i workload in gcloud CLI è disponibile nella versione 363.0.0 e successive di gcloud CLI.

    Terraform

    Il Google Cloud provider supporta la federazione delle identità per i carichi di lavoro se utilizzi la versione 3.61.0 o successive:

    terraform {
      required_providers {
        google = {
          source  = "hashicorp/google"
          version = "~> 3.61.0"
        }
      }
    }
    

    bq

    Per l'autenticazione tramite la federazione delle identità per i carichi di lavoro, 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 gcloud CLI.

Passaggi successivi