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

Questa pagina spiega come gestire i pool di identità dei 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à per i carichi di lavoro. Per sapere come fare, 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 ruoli IAM seguenti per il progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

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 necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per gestire i pool e i provider di Workload Identity, 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 essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Gestisci 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 Workload Identity in un progetto:

Console

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

Vai ai 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à per carichi di lavoro.

Vai ai pool Workload Identity

gcloud

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

REST

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

Ottieni una piscina

Per ottenere i dettagli di uno specifico pool di identità per i carichi di lavoro:

Console

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

    Vai ai pool Workload Identity

  2. Trova il pool di identità per i carichi di lavoro che vuoi visualizzare, poi fai clic sulla relativa icona Modifica. La console Google Cloud mostra i dettagli sul pool di identità per i carichi di lavoro.

gcloud

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

REST

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

Aggiorna un pool

Puoi abilitare o disabilitare un pool di identità per i carichi di lavoro. Puoi anche modificarne il nome visualizzato o la descrizione.

Per aggiornare un pool di identità per i carichi di lavoro esistente:

Console

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

    Vai ai pool Workload Identity

  2. Trova il pool di identità per i carichi di lavoro che vuoi modificare, poi fai clic sulla relativa icona Modifica.

    Per disabilitare o abilitare il pool di identità per i carichi di lavoro, fai clic sul pulsante di attivazione/disattivazione Stato, quindi fai clic su Disabilita o Abilita.

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

    Per modificare la descrizione, utilizza gcloud CLI o l'API REST.

gcloud

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

REST

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

Elimina un pool

Quando elimini un pool di identità per i carichi di lavoro, elimini anche i relativi provider di pool di identità. Di conseguenza, le identità nel pool perderanno l'accesso alle risorse Google Cloud.

Puoi annullare l'eliminazione di un pool per un massimo di 30 giorni dopo l'eliminazione. Dopo 30 giorni, l'eliminazione è definitiva. Fino a quando un pool non viene eliminato definitivamente, non puoi riutilizzarne il nome durante la creazione di un nuovo pool di identità per i carichi di lavoro.

Per eliminare un pool di identità per i carichi di lavoro e i relativi provider di identità:

Console

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

    Vai ai pool Workload Identity

  2. Trova il pool di identità per i carichi di lavoro che vuoi eliminare, quindi fai clic sulla relativa icona Modifica.

  3. Fai clic su Elimina pool, poi su Elimina. Il pool di identità per i carichi di lavoro 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().

Annullare l'eliminazione di un pool

Puoi recuperare un pool di identità dei carichi di lavoro 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à per carichi di lavoro.

    Vai ai pool Workload Identity

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

  3. Trova il pool Workload Identity di cui vuoi annullare l'eliminazione, quindi fai clic sulla relativa 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().

Gestisci 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 di pool di identità per i carichi di lavoro in un pool di identità per i carichi di lavoro esistente, segui questi passaggi:

Console

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

    Vai ai pool Workload Identity

  2. Individua il pool di identità per i carichi di lavoro a cui vuoi aggiungere un provider, quindi fai clic sulla relativa icona Modifica.

  3. Fai clic su Aggiungi provider.

  4. Seleziona il tipo di provider da creare:

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

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

  6. Completa i restanti campi per il tuo fornitore:

    • AWS: inserisci l'ID account AWS.
    • OIDC: inserisci l'URL dell'emittente. Per Azure, l'URL dell'emittente utilizza il formato https://sts.windows.net/AZURE_TENANT_ID. Per gli altri provider, consulta la relativa documentazione.

    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 informazioni sulle identità esterne per concedere l'accesso a un sottoinsieme di identità.

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

  9. Fai clic su Salva. Il provider del pool di identità per i carichi di lavoro è stato 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. Ciò include Microsoft Azure.

REST

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

Elenco provider

Per elencare i provider di pool di identità per i carichi di lavoro in un progetto:

Console

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

    Vai ai pool Workload Identity

  2. Per visualizzare i provider per un pool di identità per i carichi di lavoro, 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().

Ottieni un provider

Per ottenere i dettagli di uno specifico provider di pool di identità per i carichi di lavoro:

Console

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

    Vai ai pool Workload Identity

  2. Individua il pool di identità per i carichi di lavoro che contiene il provider, quindi fai clic sull'icona Espandi nodo per il pool.

  3. Individua il provider del pool di identità per i carichi di lavoro che vuoi visualizzare, quindi fai clic sulla relativa 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().

Aggiorna un provider

Puoi abilitare o disabilitare un provider del pool di identità per i carichi di lavoro. Puoi anche aggiornare i dati dell'account e la mappatura degli attributi, nonché il nome visualizzato e la descrizione.

Per aggiornare un provider di pool di identità per i carichi di lavoro esistente:

Console

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

    Vai ai pool Workload Identity

  2. Individua il pool di identità per i carichi di lavoro che contiene il provider, quindi fai clic sull'icona Espandi nodo per il pool.

  3. Individua il provider del pool di identità per i carichi di lavoro che vuoi modificare, quindi fai clic sulla relativa icona Modifica.

  4. Modifica le informazioni del fornitore e 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. Ciò include Microsoft Azure.

REST

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

Elimina un provider

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

Puoi annullare l'eliminazione di un provider per un massimo di 30 giorni dopo l'eliminazione. Dopo 30 giorni, l'eliminazione è definitiva. Fino a quando un provider non viene eliminato definitivamente, non puoi riutilizzarne il nome durante la creazione di un nuovo provider.

Per eliminare un provider di pool di identità per i carichi di lavoro:

Console

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

    Vai ai pool Workload Identity

  2. Individua il pool di identità per i carichi di lavoro che contiene il provider, quindi fai clic sulla relativa icona Modifica.

  3. Nel riquadro Provider, individua il provider che vuoi eliminare, quindi fai clic sulla relativa 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 provider

Puoi recuperare un provider di pool di identità dei carichi di lavoro eliminato per un massimo di 30 giorni dopo l'eliminazione. Per annullare l'eliminazione di un provider:

Console

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

    Vai ai pool Workload Identity

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

  3. Individua il pool di identità per i carichi di lavoro che contiene il provider, quindi fai clic sull'icona Espandi nodo per il pool.

  4. Trova il provider di cui vuoi annullare l'eliminazione, quindi fai clic sulla relativa icona Ripristina.

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

gcloud

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

REST

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

Gestisci i vincoli per la federazione delle identità per i carichi di lavoro

Puoi utilizzare i vincoli dei criteri dell'organizzazione per limitare le modalità di utilizzo delle risorse nella tua organizzazione Google Cloud.

Questa sezione descrive i vincoli consigliati quando si utilizza la federazione delle identità per i carichi di lavoro.

Limita la configurazione del provider di identità

In qualità di amministratore dell'organizzazione, puoi decidere con quali provider di identità la tua organizzazione è autorizzata a federare.

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

Per consentire la federazione solo da AWS, crea un singolo vincolo con l'URI https://sts.amazonaws.com. L'esempio seguente mostra come creare questo 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 dell'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 singolo vincolo con issuer_uri del provider consentito. Ad esempio, quanto segue consente solo la federazione 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'asserzione vengono fornite al momento della configurazione anziché recuperate direttamente dal provider di identità. È quindi concepibile che un utente malintenzionato potrebbe tentare di caricare un documento di metadati SAML utilizzando l'ID entità del provider di identità dell'organizzazione, ma una chiave pubblica per la quale ha accesso alla chiave privata. Limitare la federazione in base all'ID entità in questo scenario dà solo un'illusione di sicurezza. Per questo motivo, consigliamo vivamente di consentire solo la creazione di un pool di identità per i carichi di lavoro che consenta la federazione SAML in un progetto Google Cloud gestito a livello centrale dalla tua organizzazione. Successivamente, potrai concedere alle identità esterne in quel pool di identità dei carichi di lavoro l'accesso alle risorse dell'organizzazione.

Per consentire la federazione da provider di identità SAML, crea un vincolo che consente 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 provider aggiuntivi.

Per bloccare la federazione da tutti i provider:

  1. Crea un file YAML contenente:

    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
    

Limita creazione chiavi account di servizio

La federazione delle identità per i carichi di lavoro 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 degli account di servizio per l'autenticazione, puoi ridurre i rischi disattivando la creazione delle chiavi.

Per disabilitare la creazione di chiavi degli account di servizio, applica il vincolo booleano iam.disableServiceAccountKeyCreation nel criterio dell'organizzazione per la tua organizzazione. Puoi anche applicare il vincolo booleano iam.disableServiceAccountKeyUpload, che disabilita il caricamento di chiavi pubbliche per gli account di servizio.

Puoi utilizzare la console Google Cloud o gcloud CLI per abilitare questi vincoli. Ad esempio, i seguenti comandi dellgcloud CLI abilitano 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

Monitora la federazione delle identità per i carichi di lavoro

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

Passaggi successivi

Scopri di più sulla federazione delle identità per i carichi di lavoro.