La federazione delle identità di carico di lavoro per GKE (WIF) è un meccanismo che consente ai carichi di lavoro del tuo cluster di accedere alle risorse cloud esterne con gli account di servizio Kubernetes. WIF è il modo consigliato per consentire alle applicazioni in esecuzione all'interno dei cluster collegati a GKE di accedere ai servizi Google Cloud . Quando registri il cluster, l'API GKE attached clusters crea tutta l'infrastruttura richiesta per WIF, con il supporto per i cluster che utilizzano emittenti OIDC pubblici o privati.
Tutti i servizi GKE Enterprise che si ricollegano a Google Cloud, come gli agenti Connect e di telemetria, utilizzano Workload Identity Federation for GKE.
Account di servizio Kubernetes e Workload Identity Federation per GKE
Quando un pod viene eseguito, utilizza un account di servizio Kubernetes per autorizzare il proprio accesso alle risorse ospitate all'interno del cluster. Utilizzando WIF, il pod può utilizzare lo stesso account di servizio Kubernetes (KSA) per ottenere un token di breve durata per accedere alle risorse ospitate al di fuori del cluster.
WIF richiede una relazione di attendibilità tra il provider di identità OIDC all'interno del cluster e il provider di risorse esterno, ad esempio Google Cloud IAM. Quando registri un cluster collegato, la procedura di registrazione crea automaticamente questo rapporto di attendibilità aggiungendo il servizio OIDC del cluster al pool di identità del carico di lavoro predefinito associato al tuo Google Cloud progetto.
Questo pool di identità del workload è il pool di provider di identità attendibili del tuo progetto Google e si chiama PROJECT_ID.svc.id.goog
, dove PROJECT_ID
è l'ID progetto Google associato al cluster collegato.
Puoi utilizzare i normali Google Cloud criteri IAM per controllare l'accesso degli account di servizio Kubernetes ai Google Cloud servizi. Le entità degli account di servizio Kubernetes rappresentano l'account di servizio Kubernetes all'interno del pool di identità del carico di lavoro. Sono formattati come segue:
serviceAccount:WORKLOAD_IDENTITY_POOL_NAME[KSA_NAMESPACE/KSA_NAME]
Per concedere un ruolo all'account di servizio Kubernetes, utilizza il seguente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[KSA_NAMESPACE/KSA_NAME]" \
--role=IAM_ROLE
Sostituisci:
- PROJECT_ID: il tuo ID progetto Google Cloud
- KSA_NAMESPACE: lo spazio dei nomi del cluster in cui risiede questo account servizio
- KSA_NAME: il nome dell'account di servizio Kubernetes a cui vuoi concedere le autorizzazioni
- IAM_ROLE: il Google Cloud ruolo che vuoi assegnare a questa KSA