Workload Identity Federation for GKE (WIF) è un meccanismo che consente ai carichi di lavoro del cluster di accedere a risorse cloud esterne con i service account Kubernetes. WIF è il modo consigliato per le applicazioni in esecuzione all'interno dei cluster GKE collegati per accedere ai servizi. Google Cloud Quando registri il cluster, l'API GKE attached clusters crea tutta l'infrastruttura necessaria per WIF, con il supporto per i cluster che utilizzano emittenti OIDC pubblici o privati.
Tutti i componenti GKE che si riconnettono a Google Cloud, come gli agenti Connect e di telemetria, utilizzano Workload Identity Federation for GKE.
Service account Kubernetes e federazione delle identità per i carichi di lavoro per GKE
Quando viene eseguito un pod, utilizza un service account Kubernetes per autorizzare l'accesso alle risorse ospitate all'interno del cluster. Utilizzando WIF, il pod può utilizzare lo stesso service account Kubernetes (KSA) per ottenere un token di breve durata per accedere alle risorse ospitate all'esterno del cluster.
WIF richiede una relazione di trust 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 questa relazione di trust aggiungendo il servizio OIDC del cluster al pool di identità dei carichi di lavoro predefinito associato al tuo progetto Google Cloud .
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 criteri IAM Google Cloud per controllare l'accesso degli account di servizio Kubernetes ai servizi Google Cloud . Le entità service account Kubernetes sono la rappresentazione del service account Kubernetes all'interno del pool di identità del workload. Sono formattati come segue:
serviceAccount:WORKLOAD_IDENTITY_POOL_NAME[KSA_NAMESPACE/KSA_NAME]
Per concedere un ruolo al account di servizio Kubernetes, utilizza questo 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 si trova questo service account
- KSA_NAME: il nome del account di servizio Kubernetes a cui vuoi concedere le autorizzazioni
- IAM_ROLE: il ruolo Google Cloud che vuoi concedere a questo KSA