Die Identitätsföderation von Arbeitslasten für GKE (Workload Identity Federation for GKE, WIF) ist ein Mechanismus, mit dem die Arbeitslasten Ihres Clusters über Kubernetes-Dienstkonten auf externe Cloud-Ressourcen zugreifen können. WIF ist die empfohlene Methode für Anwendungen, die in GKE-angehängten Clustern ausgeführt werden, um auf Google Cloud Dienste zuzugreifen. Wenn Sie Ihren Cluster registrieren, erstellt die GKE Attached Clusters API die gesamte für WIF erforderliche Infrastruktur mit Unterstützung für Cluster, die öffentliche oder private OIDC-Aussteller verwenden.
Alle GKE Enterprise-Dienste, die eine Verbindung zu Google Cloudherstellen, z. B. Connect- und Telemetrie-Agents, verwenden die Workload Identity Federation for GKE.
Kubernetes-Dienstkonten und Workload Identity Federation for GKE
Wenn ein Pod ausgeführt wird, verwendet er ein Kubernetes-Dienstkonto, um den Zugriff auf Ressourcen zu autorisieren, die in seinem Cluster gehostet werden. Über WIF kann der Pod dasselbe Kubernetes-Dienstkonto (KSA) verwenden, um ein kurzlebiges Token für den Zugriff auf Ressourcen abzurufen, die außerhalb des Clusters gehostet werden.
WIF erfordert eine Vertrauensstellung zwischen dem OIDC-Identitätsanbieter im Cluster und dem externen Ressourcenanbieter wie Google Cloud IAM. Wenn Sie einen angehängten Cluster registrieren, wird diese Vertrauensstellung automatisch durch den Registrierungsprozess erstellt, indem der OIDC-Dienst Ihres Clusters dem Standard-Workload Identity-Pool hinzugefügt wird, der an Ihr Google Cloud -Projekt gebunden ist.
Dieser Workload Identity-Pool ist der Pool vertrauenswürdiger Identitätsanbieter Ihres Google-Projekts und heißt PROJECT_ID.svc.id.goog
, wobei PROJECT_ID
die Google-Projekt-ID ist, die Ihrem angehängten Cluster zugeordnet ist.
Sie können reguläre Google Cloud IAM-Richtlinien verwenden, um den Zugriff von Kubernetes-Dienstkonten auf Google Cloud Dienste zu steuern. Kubernetes-Dienstkontohauptkonten sind die Darstellung des KSA im Workload Identity-Pool. Sie haben das folgende Format:
serviceAccount:WORKLOAD_IDENTITY_POOL_NAME[KSA_NAMESPACE/KSA_NAME]
Verwenden Sie den folgenden Befehl, um dem Kubernetes-Dienstkonto eine Rolle zuzuweisen:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[KSA_NAMESPACE/KSA_NAME]" \
--role=IAM_ROLE
Ersetzen Sie:
- PROJECT_ID: Ihre Google Cloud Projekt-ID
- KSA_NAMESPACE: der Cluster-Namespace, in dem sich dieses Dienstkonto befindet
- KSA_NAME: der Name des Kubernetes-Dienstkontos, dem Sie Berechtigungen erteilen möchten
- IAM_ROLE: die Google Cloud Rolle, die Sie diesem KSA zuweisen möchten