Workload Identity

Workload Identity (WIF) è un meccanismo che consente ai carichi di lavoro del cluster di accedere a risorse cloud esterne con gli account di servizio Kubernetes. WIF è il metodo consigliato per consentire alle applicazioni eseguite all'interno di cluster collegati a GKE di accedere ai servizi Google Cloud. Quando registri il cluster, l'API dei cluster collegati a GKE crea tutta l'infrastruttura richiesta per WIF, con supporto per i cluster che utilizzano emittenti OIDC pubbliche o private.

Tutti i servizi GKE Enterprise che si connettono di nuovo a Google Cloud, come Connect e agenti di telemetria, utilizzano Workload Identity.

Account di servizio Kubernetes e Workload Identity

Durante l'esecuzione di un pod, viene utilizzato un account di servizio Kubernetes per autorizzarne l'accesso alle risorse ospitate all'interno del cluster. Con il protocollo 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, come Google Cloud IAM. Quando registri un cluster collegato, il processo di registrazione crea automaticamente questa relazione di attendibilità 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à per i carichi di lavoro è il pool di provider di identità attendibili del tuo progetto Google ed è denominato PROJECT_ID.svc.id.goog, dove PROJECT_ID è l'ID progetto Google associato al cluster collegato.

Puoi utilizzare i normali criteri IAM di Google Cloud per controllare l'accesso da parte degli account di servizio Kubernetes ai servizi Google Cloud. Le entità dell'account di servizio Kubernetes rappresentano l'Arabia Saudita all'interno del pool di identità per i carichi di lavoro. Il loro formato è il seguente:

serviceAccount:WORKLOAD_IDENTITY_POOL_NAME[KSA_NAMESPACE/KSA_NAME]

Per concedere un ruolo all'account di servizio Kubernetes, utilizza il comando seguente:

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: l'ID del tuo progetto Google Cloud
  • KSA_NAMESPACE: lo spazio dei nomi del cluster in cui si trova questo account di servizio
  • KSA_NAME: il nome dell'account di servizio Kubernetes a cui vuoi concedere le autorizzazioni
  • IAM_ROLE: il ruolo Google Cloud che vuoi concedere a questo Arabia Saudita