Gestione dei provider e dei pool di identità per i carichi di lavoro

In questa pagina viene spiegato come gestire i pool di identità per i carichi di lavoro esistenti e i relativi provider di identità.

Puoi gestire pool e provider utilizzando la console Google Cloud, Google Cloud CLI o l'API REST.

Prima di iniziare

Crea un pool di identità del workload. Per scoprire come, consulta una delle seguenti pagine:

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire i provider e i pool di 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 Gestire l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i provider e i pool di identità per i carichi di lavoro. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per gestire i provider e i pool di identità per i carichi di lavoro sono necessarie le seguenti autorizzazioni:

  • Per visualizzare i provider e i pool di identità per i carichi di lavoro:
    • iam.googleapis.com/workloadIdentityPoolProviders.get
    • iam.googleapis.com/workloadIdentityPoolProviders.list
    • iam.googleapis.com/workloadIdentityPools.get
    • iam.googleapis.com/workloadIdentityPools.list
  • Per creare, aggiornare ed eliminare pool e provider:
    • iam.googleapis.com/workloadIdentityPoolProviders.create
    • iam.googleapis.com/workloadIdentityPoolProviders.delete
    • iam.googleapis.com/workloadIdentityPoolProviders.undelete
    • iam.googleapis.com/workloadIdentityPoolProviders.update
    • iam.googleapis.com/workloadIdentityPools.create
    • iam.googleapis.com/workloadIdentityPools.delete
    • iam.googleapis.com/workloadIdentityPools.undelete
    • iam.googleapis.com/workloadIdentityPools.update

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Gestire i pool di identità per i carichi di lavoro

Questa sezione mostra come gestire i pool di identità per i carichi di lavoro.

Crea pool

Per creare pool di identità del workload in un progetto:

Console

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

Vai a Pool Workload Identity

gcloud

Esegui il comando gcloud iam workload-identity-pools create.

REST

Chiama il numero projects.locations.workloadIdentityPools.create().

Elenca pool

Per elencare tutti i pool di Workload Identity in un progetto, segui questi passaggi:

Console

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

Vai a Pool Workload Identity

gcloud

Esegui il comando gcloud iam workload-identity-pools list.

REST

Chiama il numero projects.locations.workloadIdentityPools.list().

Ottenere un pool

Per visualizzare i dettagli di un pool Workload Identity specifico:

Console

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

    Vai a Pool Workload Identity

  2. Individua il pool di identità di lavoro che vuoi visualizzare, quindi fai clic sull'icona Modifica. La console Google Cloud mostra i dettagli del pool di identità per i workload.

gcloud

Esegui il comando gcloud iam workload-identity-pools describe.

REST

Chiama il numero projects.locations.workloadIdentityPools.get().

Aggiornare un pool

Puoi attivare o disattivare un pool di identità per i carichi di lavoro. Puoi anche modificare il nome visualizzato o la descrizione.

Per aggiornare un pool di identità del workload esistente:

Console

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

    Vai a Pool Workload Identity

  2. Individua il pool di identità di lavoro da modificare, quindi fai clic sull'icona Modifica.

    Per disattivare o attivare il pool di identità per i carichi di lavoro, fai clic sul pulsante di attivazione/disattivazione Stato, quindi su Disattiva o Attiva.

    Per modificare il nome visualizzato, fai clic su Modifica accanto al nome visualizzato. Aggiorna il nome e fai clic su Salva.

    Per modificare la descrizione, utilizza l'interfaccia a riga di comando gcloud o l'API REST.

gcloud

Esegui il comando gcloud iam workload-identity-pools update.

REST

Chiama il numero projects.locations.workloadIdentityPools.patch().

Eliminare un pool

Quando elimini un pool di identità di carico di lavoro, vengono eliminati anche i relativi provider. Di conseguenza, le identità nel pool perdono l'accesso alle risorse Google Cloud.

Puoi annullare l'eliminazione di un pool fino a 30 giorni dopo l'eliminazione. Dopo 30 giorni, l'eliminazione è definitiva. Finché un pool non viene eliminato definitivamente, non puoi riutilizzarne il nome durante la creazione di un nuovo pool di identità di carico di lavoro.

Per eliminare un pool di identità del workload e i relativi provider di identità, segui questi passaggi:

Console

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

    Vai a Pool Workload Identity

  2. Individua il pool di identità del carico di lavoro che vuoi eliminare, quindi fai clic sull'icona Modifica.

  3. Fai clic su Elimina pool e poi su Elimina. Il pool di identità del workload e i relativi provider di identità vengono eliminati.

gcloud

Esegui il comando gcloud iam workload-identity-pools delete.

REST

Chiama il numero projects.locations.workloadIdentityPools.delete().

Annulla eliminazione di un pool

Puoi recuperare un pool di identità di workload eliminato per un massimo di 30 giorni dopo l'eliminazione.

Per annullare l'eliminazione di un pool:

Console

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

    Vai a Pool Workload Identity

  2. Fai clic sul pulsante di attivazione/disattivazione Mostra i pool e i provider eliminati.

  3. Individua il pool di identità del carico di lavoro di cui vuoi annullare l'eliminazione, quindi fai clic sull'icona Ripristina.

  4. Fai clic su Ripristina. Il pool e i relativi provider vengono ripristinati.

gcloud

Esegui il comando gcloud iam workload-identity-pools undelete.

REST

Chiama il numero projects.locations.workloadIdentityPools.undelete().

Gestire i provider di pool di identità per i carichi di lavoro

Questa sezione mostra come gestire i provider di pool di identità per i carichi di lavoro.

Crea un provider

Per creare un provider del pool di identità del workload in un pool di identità del workload esistente, procedi nel seguente modo:

Console

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

    Vai a Pool Workload Identity

  2. Individua il pool di identità del carico di lavoro a cui vuoi aggiungere un provider, poi fai clic sull'icona Modifica.

  3. Fai clic su Aggiungi provider.

  4. Seleziona il tipo di fornitore da creare:

    • AWS: un provider di identità Amazon Web Services (AWS).
    • OpenID Connect (OIDC): un provider di identità compatibile con OIDC. Sono inclusi anche Microsoft Azure.
  5. Inserisci un nome per il fornitore.

    La console Google Cloud utilizza il nome per creare un ID provider. Per modificare l'ID provider, fai clic su Modifica. Non potrai modificare l'ID fornitore in un secondo momento.

  6. Completa i campi rimanenti per il tuo provider:

    • AWS: inserisci il tuo ID account AWS.
    • OIDC: inserisci l'URL dell'emittente. Per Azure, l'URL dell'emittente utilizza il formatohttps://sts.windows.net/AZURE_TENANT_ID. Per altri fornitori, consulta la documentazione del fornitore.

    Al termine, fai clic su Continua.

  7. Per configurare la mappatura degli attributi, fai clic su Modifica mappatura. La mappatura degli attributi consente di utilizzare le informazioni sulle identità esterne per concedere l'accesso a un sottoinsieme di queste identità.

  8. (Facoltativo) Per fornire una condizione dell'attributo che specifica le identità che possono eseguire l'autenticazione, fai clic su Aggiungi condizione e inserisci un'espressione Common Expression Language (CEL) valida. Per maggiori dettagli, consulta Condizioni degli attributi.

  9. Fai clic su Salva. Il provider del pool di identità del workload viene creato.

gcloud

Esegui il comando gcloud iam workload-identity-pools providers create-aws per creare un provider AWS.

Esegui il comando gcloud iam workload-identity-pools providers create-oidc per creare un provider OIDC. Sono inclusi Microsoft Azure e altri.

REST

Chiama il numero projects.locations.workloadIdentityPools.providers.create().

Elenca provider

Per elencare i provider di pool di identità del workload in un progetto, segui questi passaggi:

Console

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

    Vai a Pool Workload Identity

  2. Per visualizzare i fornitori di un pool di identità del workload, fai clic sull'icona Espandi nodo per il pool.

gcloud

Esegui il comando gcloud iam workload-identity-pools providers list.

REST

Chiama il numero projects.locations.workloadIdentityPools.providers.list().

Trovare un fornitore

Per ottenere i dettagli di un provider pool Workload Identity specifico:

Console

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

    Vai a Pool Workload Identity

  2. Individua il pool di identità del workload contenente il fornitore, quindi fai clic sull'icona Espandi nodo per il pool.

  3. Individua il provider del pool di identità del carico di lavoro che vuoi visualizzare, quindi fai clic sull'icona Modifica. La console Google Cloud mostra informazioni dettagliate sul provider.

gcloud

Esegui il comando gcloud iam workload-identity-pools providers describe.

REST

Chiama il numero projects.locations.workloadIdentityPools.providers.get().

Aggiornare un fornitore

Puoi attivare o disattivare un provider di pool di identità del workload. Puoi anche aggiornarne i dati dell'account e la mappatura degli attributi, nonché il nome visualizzato e la descrizione.

Per aggiornare un provider del pool di identità del workload esistente:

Console

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

    Vai a Pool Workload Identity

  2. Individua il pool di identità del workload contenente il fornitore, quindi fai clic sull'icona Espandi nodo per il pool.

  3. Individua il provider del pool di identità di lavoro da modificare, quindi fai clic sull'icona Modifica.

  4. Modifica le informazioni del fornitore e poi fai clic su Salva.

gcloud

Esegui il comando gcloud iam workload-identity-pools providers update-aws per aggiornare un provider AWS.

Esegui il comando gcloud iam workload-identity-pools providers update-oidc per aggiornare un provider OIDC. Sono inclusi Microsoft Azure e altri.

REST

Chiama il numero projects.locations.workloadIdentityPools.providers.patch().

Eliminare un fornitore

Quando elimini un provider del pool di identità del carico di lavoro, le identità del provider perdono l'accesso alle risorse Google Cloud.

Puoi annullare l'eliminazione di un fornitore fino a 30 giorni dopo l'eliminazione. Dopo 30 giorni, l'eliminazione è definitiva. Finché un fornitore non viene eliminato definitivamente, non puoi riutilizzarne il nome quando crei un nuovo fornitore.

Per eliminare un provider del pool di identità del workload:

Console

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

    Vai a Pool Workload Identity

  2. Individua il pool di identità del workload contenente il provider, quindi fai clic sull'icona Modifica.

  3. Nel riquadro Fornitori, individua il fornitore che vuoi eliminare, quindi fai clic sull'icona Elimina.

  4. Fai clic su Elimina per eliminare il provider.

gcloud

Esegui il comando gcloud iam workload-identity-pools providers delete.

REST

Chiama il numero projects.locations.workloadIdentityPools.providers.delete().

Annullare l'eliminazione di un fornitore

Puoi recuperare un provider pool Workload Identity eliminato per un massimo di 30 giorni dopo l'eliminazione. Per annullare l'eliminazione di un fornitore:

Console

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

    Vai a Pool Workload Identity

  2. Fai clic sul pulsante di attivazione/disattivazione Mostra i pool e i provider eliminati.

  3. Individua il pool di identità del workload contenente il fornitore, quindi fai clic sull'icona Espandi nodo per il pool.

  4. Individua il fornitore di cui vuoi annullare l'eliminazione, quindi fai clic sull'icona Ripristina.

  5. Fai clic su Ripristina. Il fornitore viene ripristinato.

gcloud

Esegui il comando gcloud iam workload-identity-pools providers undelete.

REST

Chiama il numero projects.locations.workloadIdentityPools.providers.undelete().

Gestire le limitazioni per la federazione delle identità per i carichi di lavoro

Puoi utilizzare i vincoli dei criteri dell'organizzazione per limitare il modo in cui le risorse della tua organizzazione Google Cloud possono essere utilizzate.

Questa sezione descrive i vincoli consigliati quando utilizzi la federazione delle identità di lavoro.

Limitare la configurazione del provider di identità

In qualità di amministratore dell'organizzazione, puoi decidere con quali provider di identità la tua organizzazione può eseguire la federazione.

Per gestire i provider di identità consentiti, attiva il vincolo dell'elenco constraints/iam.workloadIdentityPoolProviders nel criterio dell'organizzazione. Questo vincolo specifica gli URI di emittente dei fornitori consentiti. Puoi utilizzare la console Google Cloud o Google Cloud CLI per attivare questa limitazione.

Per consentire la federazione solo da AWS, crea una singola limitazione con l'URIhttps://sts.amazonaws.com. L'esempio seguente mostra come creare questa vincolo utilizzando gcloud CLI:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.amazonaws.com --organization=ORGANIZATION_NUMBER

Puoi anche specificare quali ID account AWS hanno accesso alle tue risorse Google Cloud. Per specificare gli ID account, utilizza il vincolo di elenco constraints/iam.workloadIdentityPoolAwsAccounts:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolAwsAccounts \
    ACCOUNT_ID --organization=ORGANIZATION_NUMBER

Per consentire la federazione solo da un provider OIDC, crea un'unica limitazione con il issuer_uri del provider consentito. Ad esempio, quanto segue consente la federazione solo da un tenant Azure specifico:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.windows.net/AZURE_TENANT_ID --organization=ORGANIZATION_NUMBER

La federazione da un provider di identità SAML è un caso speciale perché le chiavi pubbliche utilizzate per convalidare l'affermazione vengono fornite al momento della configurazione anziché essere recuperate direttamente dal provider di identità. È quindi possibile che un utente malintenzionato possa tentare di caricare un documento di metadati SAML con l'ID entità del provider di servizi di identità della tua organizzazione, ma una chiave pubblica per la quale ha accesso alla chiave privata. Limitare la federazione in base all'ID entità in questo scenario offre solo un'illusione di sicurezza. Per questo motivo, ti consigliamo vivamente di consentire solo la creazione di un pool Workload Identity che consenta la federazione SAML in un progetto Google Cloud gestito centralmente dalla tua organizzazione. Puoi quindi concedere alle identità esterne nel pool Workload Identity l'accesso alle risorse di tutta l'organizzazione.

Per consentire la federazione da provider di identità SAML, crea un vincolo che consenta la parola chiave speciale KEY_UPLOAD.

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     KEY_UPLOAD --organization=ORGANIZATION_NUMBER

Puoi ripetere questi comandi per consentire la federazione da altri provider.

Per bloccare la federazione da tutti i provider:

  1. Crea un file YAML contenente quanto segue:

    constraint: constraints/iam.workloadIdentityPoolProviders
    listPolicy:
      allValues: DENY
  2. Passa il file al comando gcloud resource-manager org-policies set-policy:

    gcloud resource-manager org-policies set-policy FILE_NAME.yaml \
        --organization=ORGANIZATION_NUMBER

Limitare la creazione di chiavi dell'account di servizio

La federazione delle identità del carico di lavoro ti consente di accedere alle risorse Google Cloud dall'esterno di Google Cloud senza utilizzare una chiave dell'account di servizio. Se non utilizzi mai le chiavi dell'account di servizio per l'autenticazione, puoi contribuire a ridurre il rischio disattivando la creazione delle chiavi.

Per disattivare la creazione di chiavi del account di servizio, applica il vincolo booleano iam.disableServiceAccountKeyCreation nel criterio dell'organizzazione. Puoi anche applicare il vincolo booleano iam.disableServiceAccountKeyUpload, che disattiva il caricamento delle chiavi pubbliche per gli account di servizio.

Puoi utilizzare la console Google Cloud o la CLI gcloud per attivare questi limiti. Ad esempio, i seguenti comandi gcloud CLI attivano entrambi i vincoli:

gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyCreation \
    --organization=ORGANIZATION_NUMBER
gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyUpload \
    --organization=ORGANIZATION_NUMBER

Monitorare la federazione delle identità per i workload

Puoi utilizzare le metriche di Cloud Monitoring per monitorare gli eventi di autenticazione per i pool di identità e i provider dei tuoi carichi di lavoro. Per un elenco delle metriche disponibili, consulta Metriche IAM.

Passaggi successivi

Scopri di più sulla federazione di Workload Identity.