Questa pagina spiega come gestire i pool di identità del workload esistenti e i relativi provider di identità (IdP) per la federazione delle identità per i workload.
Puoi gestire i pool e i provider utilizzando la console Google Cloud , la Google Cloud CLI o l'API REST.
Prima di iniziare
Crea un pool di identità del workload. Per istruzioni, consulta le guide di configurazione della federazione delle identità per i workload.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i pool e i provider di identità del workload, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Per visualizzare i pool e i provider:
IAM Visualizzatore pool di identità del workload (
roles/iam.workloadIdentityPoolViewer) -
Per visualizzare, creare, aggiornare ed eliminare pool e fornitori:
IAM Workload Identity Pool Admin (
roles/iam.workloadIdentityPoolAdmin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i pool e i provider di identità del workload. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per gestire i pool e i provider di identità del workload sono necessarie le seguenti autorizzazioni:
-
Per visualizzare i fornitori e i pool di identità del workload:
-
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.
Gestisci i pool di identità del workload
Questa sezione mostra come gestire i pool di identità del workload.
Crea pool
Per creare pool di identità del workload in un progetto:
Console
-
Nella console Google Cloud , vai alla pagina Nuovo provider di workload e pool.
-
Nella sezione Crea un pool di identità, inserisci un nome per il pool.
La Google Cloud console utilizza il nome per creare un ID pool. Per modificare l'ID pool, fai clic su Modifica. Non potrai modificare l'ID pool in un secondo momento.
- (Facoltativo) Nel campo Descrizione, inserisci una descrizione del pool.
- (Facoltativo) Per creare il pool in stato disattivato, fai clic sul pulsante di attivazione/disattivazione Pool attivato.
- Fai clic su Continua.
- Nelle sezioni Aggiungi un provider al pool e Configura attributi del provider, configura un provider di identità per il pool. Per istruzioni, vedi Creare un fornitore.
- Fai clic su Salva.
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 identità del workload in un progetto:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Nella tabella, visualizza l'elenco dei pool di identità del workload.
- (Facoltativo) Per includere i pool e i fornitori eliminati nell'elenco, fai clic sul pulsante di attivazione/disattivazione Mostra i pool e i fornitori eliminati.
gcloud
Esegui il comando gcloud iam workload-identity-pools list.
REST
Chiama il numero projects.locations.workloadIdentityPools.list().
Ottenere un pool
Per ottenere i dettagli di un pool di identità del workload specifico:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Individua il pool di identità del workload che vuoi visualizzare, quindi fai clic sul relativo nome visualizzato. La Google Cloud console mostra i dettagli del pool di identità del workload.
gcloud
Esegui il comando
gcloud iam workload-identity-pools describe.
REST
Chiama il numero projects.locations.workloadIdentityPools.get().
Aggiorna un pool
Puoi attivare o disattivare un pool di identità del workload. Puoi anche modificare il nome visualizzato o la descrizione.
Per aggiornare un pool di identità del workload esistente:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Trova il pool di identità del workload che vuoi modificare.
- Fai clic sul nome visualizzato del pool di identità del workload.
-
Per modificare il nome visualizzato del pool di identità del workload:
- Nella pagina Dettagli pool, fai clic sull'icona Modifica accanto al nome visualizzato.
- Nella finestra di dialogo Modifica il nome visualizzato del pool visualizzata, aggiorna il nome visualizzato.
- Fai clic su Salva.
- Per disattivare o attivare il pool di identità del workload, fai clic sul pulsante di attivazione/disattivazione Stato, poi fai clic su Disattiva o Attiva.
-
Per modificare la descrizione:
- In Descrizione, accanto al testo della descrizione, fai clic su Modifica.
- Aggiorna la descrizione.
- Fai clic su Salva.
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à del workload, vengono eliminati anche i relativi provider di pool di identità del workload. Di conseguenza, le identità nel pool perdono l'accesso alle risorseGoogle Cloud .
Puoi recuperare 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 quando crei un nuovo pool di identità del workload.
Per eliminare un pool di identità del workload e i relativi IdP:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Individua il pool di identità del workload che vuoi eliminare, quindi fai clic sul relativo nome visualizzato.
- Fai clic su Elimina pool, quindi fai clic su Elimina. Il pool di identità del workload e i relativi IdP 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à del workload eliminato fino a 30 giorni dopo l'eliminazione.
Per annullare l'eliminazione di un pool:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Fai clic sul pulsante di attivazione/disattivazione Mostra i pool e i provider eliminati.
- Individua il pool di identità del workload che vuoi ripristinare, quindi fai clic sull'icona Ripristina.
- 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à del workload
Questa sezione mostra come gestire i provider di pool di identità del workload.
Crea un provider
Per creare un fornitore del pool di identità del workload in un pool di identità del workload esistente, procedi nel seguente modo:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Trova il pool di identità del workload a cui vuoi aggiungere un provider, quindi fai clic sul relativo Nome visualizzato.
- Fai clic su Aggiungi provider.
-
Seleziona il tipo di fornitore da creare:
- AWS: un IdP Amazon Web Services (AWS).
- OpenID Connect (OIDC): un IdP compatibile con OIDC. Ciò include Microsoft Azure.
-
Inserisci un nome per il fornitore.
La console Google Cloud utilizza il nome per creare un ID fornitore. Per modificare l'ID fornitore, fai clic su Modifica. Non potrai modificare l'ID provider in un secondo momento.
-
Completa i campi rimanenti 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 altri provider, consulta la documentazione del provider.
Al termine, fai clic su Continua.
-
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à.
-
AWS: questo passaggio è facoltativo. Puoi utilizzare la mappatura predefinita.
Per maggiori dettagli, vedi Impostazioni del provider di identità per AWS e Azure.
-
OIDC: ti consigliamo di mappare
google.subjectaassertion.sub. Gli altri mapping sono facoltativi.Per i dettagli, vedi le impostazioni del provider di identità per Azure o altri provider OIDC.
-
- (Facoltativo) Per fornire una condizione dell'attributo che specifichi le identità che possono autenticarsi, fai clic su Aggiungi condizione e inserisci un'espressione Common Expression Language (CEL) valida. Per maggiori dettagli, consulta Condizioni degli attributi.
- Fai clic su Salva. Il provider di 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. Ciò include Microsoft Azure.
REST
Chiama il numero projects.locations.workloadIdentityPools.providers.create().
Elenca fornitori
Per elencare i provider di pool di identità del workload in un progetto:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Per visualizzare i provider per 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 di pool di identità del workload specifico:
Console
-
Nella console Google Cloud , vai alla pagina Pool di identità dei workload.
- Individua il pool di identità del workload che contiene il fornitore, quindi fai clic sull'icona Espandi nodo per il pool.
- Trova il provider di pool di identità del workload che vuoi visualizzare, quindi fai clic sull'icona Modifica. La console Google Cloud mostra informazioni dettagliate sul fornitore.
gcloud
Esegui il comando gcloud iam workload-identity-pools providers describe.
REST
Chiama il numero projects.locations.workloadIdentityPools.providers.get().
Aggiorna un fornitore
Puoi attivare o disattivare un provider di pool di identità del workload. Puoi anche aggiornare i dati dell'account e il mapping degli attributi, nonché il nome visualizzato e la descrizione.
Per aggiornare un fornitore di pool di identità del workload esistente:
Console
Nella console Google Cloud , vai alla pagina Pool di identità del workload.
Individua il pool di identità del workload che contiene il fornitore, quindi fai clic sull'icona Espandi nodo per il pool.
Trova il fornitore del pool di identità del workload da modificare, quindi fai clic sull'icona Modifica.
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().
Eliminare un provider
Quando elimini un provider di pool di identità del workload, le identità del provider perdono l'accesso alle risorse Google Cloud .
Puoi recuperare 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 fornitore del pool di identità del workload:
Console
Nella console Google Cloud , vai alla pagina Pool di identità del workload.
Trova il pool di identità del workload che contiene il provider e fai clic sul relativo Nome visualizzato.
Nel riquadro Fornitori, individua il fornitore che vuoi eliminare, quindi fai clic sulla relativa icona Elimina.
Fai clic su Elimina per eliminare il fornitore.
gcloud
Esegui il comando gcloud iam workload-identity-pools providers delete.
REST
Chiama il numero projects.locations.workloadIdentityPools.providers.delete().
Recuperare un fornitore
Puoi recuperare un provider di pool di identità del workload eliminato fino a 30 giorni dopo l'eliminazione. Per ripristinare un fornitore:
Console
Nella console Google Cloud , vai alla pagina Pool di identità del workload.
Fai clic sul pulsante di attivazione/disattivazione Mostra i pool e i provider eliminati.
Individua il pool di identità del workload che contiene il fornitore, quindi fai clic sull'icona Espandi nodo per il pool.
Trova il fornitore che vuoi recuperare, quindi fai clic sull'icona Ripristina.
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().
Gestisci i vincoli per la federazione delle identità per i workload
Puoi utilizzare i vincoli delle policy dell'organizzazione per limitare l'utilizzo delle risorse nella tua organizzazione Google Cloud .
Questa sezione descrive i vincoli consigliati quando utilizzi la federazione delle identità per i carichi di lavoro.
Gestire i provider di identità consentiti
In qualità di amministratore dell'organizzazione, puoi decidere con quali IdP la tua organizzazione può federarsi.
Per gestire i provider di identità consentiti, attiva il vincolo di elenco constraints/iam.workloadIdentityPoolProviders nella policy dell'organizzazione per la tua organizzazione. Questo vincolo specifica gli URI
dell'emittente dei provider consentiti. Per abilitare questo vincolo, puoi utilizzare la consoleGoogle Cloud o Google Cloud CLI.
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 gli ID account AWS che hanno accesso alle tue risorseGoogle 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 da un solo provider OIDC, crea un singolo vincolo con
il 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 IdP SAML è speciale perché le chiavi pubbliche utilizzate per convalidare l'asserzione vengono fornite quando l'IdP SAML viene configurato. Di conseguenza, è possibile che un utente malintenzionato tenti di caricare un documento di metadati SAML con l'ID entità dell'IdP della tua organizzazione utilizzando una chiave pubblica. La limitazione della federazione utilizzando un ID entità in questo scenario offre solo un'illusione di sicurezza.
Per ridurre questo rischio, ti consigliamo vivamente di consentire la creazione di un pool di identità del carico di lavoro con la federazione SAML solo in un Google Cloud progetto che la tua organizzazione gestisce centralmente. Poi, se necessario, concedi alle identità esterne in quel pool di identità del workload l'accesso alle risorse della tua organizzazione.
Per consentire la federazione dagli IdP 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 fornitori:
Crea un file YAML contenente quanto segue:
constraint: constraints/iam.workloadIdentityPoolProviders listPolicy: allValues: DENY
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 la creazione di chiavi del account di servizio
La federazione delle identità per i workload consente di accedere alle risorse Google Cloud da Google Cloud senza utilizzare una chiave del account di servizio. Se non utilizzi mai le chiavi del account di servizio per l'autenticazione, puoi contribuire a ridurre il rischio disattivando la creazione di chiavi.
Per disattivare la creazione di chiavi del 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 disattiva il caricamento di chiavi pubbliche per i service account.
Puoi utilizzare la consoleGoogle Cloud o gcloud CLI per abilitare questi vincoli. 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
Monitora la federazione delle identità per i workload
Puoi utilizzare le metriche di Cloud Monitoring per monitorare gli eventi di autenticazione per i tuoi pool e provider di identità del workload. Per un elenco delle metriche disponibili, consulta Metriche IAM.
Passaggi successivi
Scopri di più sulla federazione delle identità per i workload.