Mit externen Identitäten bei GKE on Azure authentifizieren
Mit der Mitarbeiteridentitätsföderation können Identitäten, die nicht von Google stammen, auf Google Cloud Dienste zugreifen. Im Zusammenhang mit GKE on Azure bedeutet das, dass Sie vorhandene externe Identitäten verwenden können, um einen GKE-Cluster zu erstellen oder darauf zuzugreifen, ohne auf Google-Anmeldedaten angewiesen zu sein.
Die Verwendung der Mitarbeiteridentitätsföderation bietet folgende Vorteile:
- Sie müssen keine doppelten Konten auf verschiedenen Plattformen oder bei verschiedenen Anbietern erstellen.
- Sie legen Berechtigungen nur einmal fest und müssen keine Konfigurationen auf mehreren Plattformen vornehmen.
- Sie vereinfachen den Nutzerzugriff, da weniger Anmeldungen und Passwörter erforderlich sind.
Hinweis
Bevor Sie externen Nutzern oder Gruppen Zugriff auf GKE-Cluster gewähren können, müssen Sie die folgenden Schritte ausführen:
Konfigurieren Sie die Mitarbeiteridentitätsföderation, damit externe Nutzer oder Gruppen die GKE on Azure 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 Mitarbeiteridentitätsfö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.viewerzu, damit sie auf Cluster zugreifen können. Weisen Sie diecontainer.clusterViewerRolle zu, um Cluster in der Google Cloud Console anzusehen.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.viewerzuweisen: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 in.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, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.comsein.
Gruppen
Für Gruppen müssen Sie die Rolle
gkemulticloud.viewerzuweisen: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 in.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. Er ist nicht für den einfachen Zugriff auf einen Cluster erforderlich.
Nutzer
Für einzelne Nutzer müssen Sie die Rolle
gkemulticloud.adminzuweisen: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 in.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, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.comsein.
Gruppen
Für Gruppen müssen Sie die Rolle
gkemulticloud.adminzuweisen: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 in.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 Azure erforderlich sind, finden Sie unter API-Rollen und -Berechtigungen.
Externen Zugriff auf GKE-Cluster gewähren
Es gibt zwei Methoden, um die Workforce Identity-Föderation so einzurichten, dass 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. So können Sie Nutzern beispielsweise schreibgeschützten Zugriff auf Ressourcen gewähren, ohne ihnen umfassendere Zugriffsrechte zu erteilen.
Bei Methode 2 müssen Sie beim Erstellen oder Aktualisieren eines Clusters den Zugriff für externe Identitäten angeben. Mit dieser Methode werden den angegebenen Nutzern oder Gruppen vollständige Administratorberechtigungen gewährt.
Wählen Sie die Methode aus, die am besten zu der gewünschten Zugriffssteuerung passt: Methode 1 für detailliertere Berechtigungen oder Methode 2, um vollständige Clusteradministratorrechte zu gewähren.
Methode 1: RBAC-Datei verwenden
Bei der ersten Methode zum Gewähren von externem Zugriff auf GKE-Cluster wird eine RBAC-Datei verwendet. Gehen Sie so vor:
Definieren Sie eine RBAC-YAML-Datei, die die Subjekte (Nutzer oder Gruppen) und die Berechtigungen enthält, 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.ioErsetzen 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, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.comsein.
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.ioErsetzen 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_CONTEXTErsetzen Sie
CLUSTER_CONTEXTdurch den entsprechenden Kontextnamen für Ihren Cluster.Wenn der gewünschte GKE-Cluster als aktiver Kontext festgelegt ist, wenden Sie die RBAC-Konfiguration mit dem folgenden Befehl auf den Cluster an:
kubectl apply -f RBAC_PATHErsetzen Sie
RBAC_PATHdurch den Pfad zur RBAC-Datei, die Sie erstellt oder bearbeitet haben.Wenn Sie diesen Befehl ausführen, haben die angegebenen Nutzer oder Gruppen in der RBAC-Konfiguration jetzt die Berechtigungen, auf den Ziel-GKE-Cluster zuzugreifen und ihn zu verwalten, 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
Mit Methode 2 wird externen Identitäten während des Erstellens oder Aktualisierens eines Clusters Zugriff gewährt.
Folgen Sie der Anleitung unter Cluster erstellen, um einen Cluster zu erstellen. Folgen Sie der Anleitung unter Cluster aktualisieren, 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 azure 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, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wiealex@cymbalgroup.comsein.GROUP_ID: eine ID, die eine externe Gruppe eindeutig identifiziert.
Zusammenfassung des Gewährens 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 die
Console Google Cloud verwenden,
um eine Verbindung herzustellen und Clusterdetails anzusehen. Alternativ können sie
kubectl mit der Identität aus der gcloud CLI
verwenden, um den Cluster zu verwalten, zu bearbeiten und mit ihm zu kommunizieren.
Informationen zum Ausführen von kubectl-Befehlen für GKE-Cluster finden Sie unter
Informationen zum Generieren eines kubeconfig-Eintrags.