Mit der Workforce Identity-Föderation erhalten Identitäten von Drittanbietern Zugriff aufGoogle Cloud -Dienste. Im Zusammenhang mit GKE on AWS bedeutet das, dass Sie bereits vorhandene externe Identitäten verwenden können, um einen GKE-Cluster zu erstellen oder darauf zuzugreifen, ohne Google-Anmeldedaten verwenden zu müssen.
Die Vorteile der Mitarbeiteridentitätsföderation:
- Sie müssen keine doppelten Konten auf verschiedenen Plattformen oder bei verschiedenen Anbietern mehr erstellen.
- Sie müssen Berechtigungen nur einmal festlegen und müssen nicht auf mehreren Plattformen konfigurieren.
- Sie vereinfachen den Nutzerzugriff, da weniger Anmeldungen und Passwörter erforderlich sind.
Hinweise
Bevor Sie externen Nutzern oder Gruppen den Zugriff auf GKE-Cluster gewähren können, müssen Sie die folgenden Schritte ausführen:
Konfigurieren Sie die Workforce Identity-Föderation, damit externe Nutzer oder Gruppen die GKE on AWS API verwenden können:
- Informationen für Azure-Nutzer finden Sie unter Workforce Identity-Föderation mit Azure AD konfigurieren.
- Informationen zu Okta-Nutzern finden Sie unter Workforce Identity-Föderation mit Okta konfigurieren.
- Informationen zu Nutzern aus anderen Plattformen finden Sie unter Mitarbeiteridentitätsföderation konfigurieren.
Weisen Sie Ihren externen Nutzern oder Gruppen die Rolle
gkemulticloud.viewer
zu, damit sie auf Cluster zugreifen können. Weisen Sie die Rollecontainer.clusterViewer
zu, um Cluster in der Google Cloud -Konsole aufzurufen.Beachten Sie, dass Rollen Sammlungen von Berechtigungen sind. Wenn Sie einer Entität eine Rolle zuweisen (Nutzer, Gruppe oder Dienstkonto), erteilen Sie dieser Entität alle mit ihr verknüpften Berechtigungen.
Nutzer
Für einzelne Nutzer müssen Sie die Rolle
gkemulticloud.viewer
zuweisen:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID Ihres Google Cloud Projekts.WORKFORCE_POOL_ID
: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.SUBJECT_VALUE
: Die ID, mit der ein externer Nutzer eindeutig identifiziert wird. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.com
sein.
Gruppen
Für Gruppen müssen Sie die Rolle
gkemulticloud.viewer
zuweisen:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID Ihres Google Cloud Projekts.WORKFORCE_POOL_ID
: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.GROUP_ID
: eine ID, die eine externe Gruppe eindeutig identifiziert.
Optional: Weisen Sie Ihren externen Nutzern oder Gruppen die entsprechenden IAM-Rollen (Identity and Access Management) zu. Dieser Schritt ist nur erforderlich, wenn Sie Nutzern oder Gruppen die Möglichkeit geben möchten, Cluster zu erstellen oder zu aktualisieren. Es ist nicht für den einfachen Zugriff auf einen Cluster erforderlich.
Nutzer
Für einzelne Nutzer müssen Sie die Rolle
gkemulticloud.admin
zuweisen:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID Ihres Google Cloud Projekts.WORKFORCE_POOL_ID
: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.SUBJECT_VALUE
: Die ID, mit der ein externer Nutzer eindeutig identifiziert wird. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.com
sein.
Gruppen
Für Gruppen müssen Sie die Rolle
gkemulticloud.admin
zuweisen:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID Ihres Google Cloud Projekts.WORKFORCE_POOL_ID
: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.GROUP_ID
: eine ID, die eine externe Gruppe eindeutig identifiziert.
Weitere Informationen dazu, welche API-Rollen und -Berechtigungen für GKE on AWS erforderlich sind, finden Sie unter API-Rollen und -Berechtigungen.
Externen Zugriff auf GKE-Cluster gewähren
Es gibt zwei Methoden, um die Mitarbeiteridentitätsföderation einzurichten, damit externe Nutzer oder Gruppen auf Ihre GKE-Cluster zugreifen können.
Bei Methode 1 müssen Sie eine RBAC-Datei definieren und auf den Cluster anwenden. Diese Methode bietet eine detaillierte Kontrolle über Berechtigungen, z. B. Lesezugriff auf Ressourcen, ohne umfassenderen Zugriff zu gewähren.
Bei Methode 2 müssen Sie beim Erstellen oder Aktualisieren eines Clusters Zugriff für externe Identitäten angeben. Mit dieser Methode erhalten die angegebenen Nutzer oder Gruppen volle Administratorberechtigungen.
Wählen Sie die Methode aus, die am besten zu Ihrer gewünschten Zugriffssteuerung passt: Methode 1 für detailliertere Berechtigungen oder Methode 2 für die Gewährung vollständiger Clusteradministratorrechte.
Methode 1: RBAC-Datei verwenden
Die erste Methode zum Gewähren externen Zugriffs auf GKE-Cluster besteht in der Verwendung einer RBAC-Datei. Gehen Sie so vor:
Definieren Sie eine RBAC-YAML-Datei mit den Subjekten (Nutzern oder Gruppen) und den Berechtigungen, die Sie ihnen im GKE-Cluster gewähren möchten. Hier sind Beispiele für RBAC-YAML-Konfigurationen für einzelne Nutzer und für Gruppen:
Nutzer
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-user subjects: - kind: User name: principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Ersetzen Sie Folgendes:
WORKFORCE_POOL_ID
: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.SUBJECT_VALUE
: Die ID, mit der ein externer Nutzer eindeutig identifiziert wird. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.com
sein.
Gruppen
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Ersetzen Sie Folgendes:
WORKFORCE_POOL_ID
: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.GROUP_ID
: eine ID, die eine externe Gruppe eindeutig identifiziert.
Geben Sie den GKE-Cluster an, den Sie konfigurieren möchten, und legen Sie ihn mit dem folgenden Befehl als aktiven Kontext fest:
kubectl config use-context CLUSTER_CONTEXT
Ersetzen Sie
CLUSTER_CONTEXT
durch den entsprechenden Kontextnamen für Ihren Cluster.Wenden Sie die RBAC-Konfiguration mit dem folgenden Befehl auf den Cluster an, wobei der gewünschte GKE-Cluster als aktiver Kontext festgelegt ist:
kubectl apply -f RBAC_PATH
Ersetzen Sie
RBAC_PATH
durch den Pfad zur RBAC-Datei, die Sie erstellt oder bearbeitet haben.Wenn Sie diesen Befehl ausführen, haben die in der RBAC-Konfiguration angegebenen Nutzer oder Gruppen jetzt die Berechtigungen zum Zugriff auf und zur Verwaltung des Ziel-GKE-Cluster, wie in den RBAC-Regeln definiert.
Wenn Sie später Änderungen an den Berechtigungen vornehmen müssen, ändern Sie die RBAC-Datei und wenden Sie sie noch einmal auf den Cluster an. Wiederholen Sie dazu die vorherigen Schritte.
Methode 2: Zugriff auf externe Identitäten beim Erstellen oder Aktualisieren eines Clusters gewähren
Methode 2 gewährt Zugriff auf externe Identitäten während der Clustererstellung oder -aktualisierung.
Eine Anleitung zum Erstellen eines Clusters finden Sie unter Cluster erstellen. Führen Sie die Schritte unter Cluster aktualisieren aus, um einen Cluster zu aktualisieren.
Wenn Sie den Befehl gcloud
zum Erstellen oder Aktualisieren eines Clusters ausführen, geben Sie die Parameter admin-users
und/oder admin-groups
so an:
gcloud container aws clusters [create|update] CLUSTER_NAME \
--location=LOCATION
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
Ersetzen Sie Folgendes:
CLUSTER_NAME
: Der Name Ihres Clusters.LOCATION
: Die Google Cloud Region, in der Ihr Cluster verwaltet wird.WORKFORCE_POOL_ID
: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.SUBJECT_VALUE
: Die ID, mit der ein externer Nutzer eindeutig identifiziert wird. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.com
sein.GROUP_ID
: eine ID, die eine externe Gruppe eindeutig identifiziert.
Zusammenfassung zum Gewähren von Zugriff auf GKE-Cluster für externe IDs
Nachdem Sie Methode 1 oder Methode 2 ausgeführt haben, können die angegebenen externen Nutzer oder Gruppen über die Google Cloud Console eine Verbindung herstellen und sich Clusterdetails ansehen. Alternativ können sie kubectl
mit einer Identität aus der gcloud CLI verwenden, um den Cluster zu verwalten, zu bearbeiten und mit ihm zu kommunizieren.
Wenn Sie kubectl
-Befehle für GKE-Cluster ausführen möchten, lesen Sie den Hilfeartikel kubeconfig
-Eintrag generieren.