Connect-Gateway mit Google Groups einrichten
Dieser Leitfaden richtet sich an Plattformadministratoren, die das Connect-Gateway einrichten müssen, damit Nutzerkonten ihres Projekts Google Groups zur Autorisierung verwenden können. Machen Sie sich vor dem Lesen dieses Leitfadens mit den Konzepten in unserer Übersicht vertraut. Informationen zum Autorisieren einzelner Konten finden Sie unter Standardeinrichtung.
Bei dieser Konfiguration können sich Nutzer mit der Google Cloud CLI, dem Connect-Gateway und der Google Cloud Console in konfigurierten Flottenclustern anmelden.
Hierbei wird die Google Groups-Funktion verwendet, die mit Google Workspace oder einer beliebigen Version von Cloud Identity verknüpft ist.
Unterstützte Clustertypen
Wenn Sie GKE-Cluster in Google Cloud mit dem Connect-Gateway verwenden, müssen Sie nicht die gesamte Einrichtung mit GKE Identity Service ausführen, um Google Groups für die Autorisierung zu verwenden. Folgen Sie stattdessen der Anleitung unter Google Groups für RBAC konfigurieren. So können sich Nutzer für die Zugriffssteuerung auch über die Google Cloud Console mit Google Groups in GKE-Clustern anmelden. Folgen Sie dann der Anleitung unter Google Groups IAM-Rollen zuweisen, um Gruppenmitgliedern den Zugriff auf Cluster über das Connect-Gateway zu ermöglichen.
Sie können die Zugriffssteuerung mit Google Groups über das Connect-Gateway für die folgenden Clustertypen einrichten:
- Registrierte GKE-Cluster
- Cluster in Google Distributed Cloud-Bereitstellungen (lokal) auf VMware und auf Bare Metal ab Anthos-Version (GKE Enterprise) 1.13
- GKE auf AWS und GKE auf Azure ab Kubernetes-Version 1.25
Angehängte Clusterversionen ab 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 oder höher.
Wenn Sie lokale Cluster aktualisieren müssen, um diese Funktion zu verwenden, finden Sie weitere Informationen unter Cluster auf VMware aktualisieren und Cluster auf Bare-Metal aktualisieren.
Wenn Sie diese Funktion in anderen Umgebungen als den oben aufgeführten verwenden möchten, wenden Sie sich bitte an Cloud Customer Care oder das Connect-Gateway-Team.
Funktionsweise
Wie in der Übersicht beschrieben, ist es oft nützlich, Nutzern Zugriff auf Cluster basierend auf ihrer Mitgliedschaft in Google Groups zu gewähren, d. h. Gruppen, die im Google Workspace erstellt wurden. Bei einer Autorisierung, die auf der Gruppenmitgliedschaft basiert, müssen Sie nicht für jedes Konto eine separate Autorisierung einrichten. Dies erleichtert die Verwaltung und Überprüfung von Richtlinien. Sie können beispielsweise problemlos den Clusterzugriff für ein Team freigeben, sodass Sie einzelne Nutzer nicht manuell zu Clustern hinzufügen oder daraus entfernen müssen, wenn diese dem Team beitreten oder es verlassen möchten. Durch einige zusätzliche Einrichtungsschritte mit dem GKE Identity Service können Sie das Connect-Gateway so konfigurieren, dass die Google Groups-Mitgliedschaftsinformationen für jeden Nutzer abgerufen werden, der sich im Cluster anmeldet. Diese Gruppeninformationen können Sie dann in Ihren Richtlinien für die Zugriffssteuerung verwenden.
Im Folgenden wird der typische Ablauf für einen Nutzer dargestellt, der sich bei einem Cluster authentifiziert und Befehle für den Cluster ausführt, wobei dieser Dienst aktiviert ist: Damit dieser Ablauf erfolgreich ist, muss im Cluster eine RBAC-Richtlinie für eine Gruppe vorhanden sein, die:
den Nutzer
alice@example.com
als Mitglied enthält.eine verschachtelte Gruppe von
gke-security-groups@example.com
ist.
- Der Nutzer
alice@example.com
meldet sich mit seiner Google-Identität an und erhält, wenn er den Cluster über die Befehlszeile verwenden möchte, das Cluster-Gatewaykubeconfig
, wie unter Connect-Gateway verwenden beschrieben. - Der Nutzer sendet eine Anfrage, indem er einen
kubectl
-Befehl ausführt oder die Google Kubernetes Engine-Seiten Arbeitslasten oder Objektbrowser in der Google Cloud Console öffnet. - Die Anfrage wird vom Connect-Dienst empfangen, der eine Autorisierungsprüfung mit IAM durchführt.
- Der Connect-Dienst leitet die Anfrage an den auf dem Cluster ausgeführten Connect Agent weiter. Die Anfrage wird zusammen mit den Anmeldedaten des Nutzers zur Authentifizierung und Autorisierung im Cluster bereitgestellt.
- Der Connect Agent leitet die Anfrage an den Kubernetes API-Server weiter.
- Der Kubernetes API-Server leitet die Anfrage an GKE Identity Service weiter, der die Anfrage validiert.
- GKE Identity Service gibt die Nutzer- und Gruppeninformationen an den Kubernetes API-Server zurück. Der Kubernetes API-Server kann diese Informationen dann dazu verwenden, die Anfrage basierend auf den konfigurierten RBAC-Richtlinien des Clusters zu autorisieren.
Hinweis
Prüfen Sie, ob die folgenden Befehlszeilentools installiert sind:
- Die neueste Version von Google Cloud CLI, dem Befehlszeilentool für die Interaktion mit Google Cloud.
- Das Kubernetes-Befehlszeilentool
kubectl
zur Interaktion mit Ihren Clustern.
Wenn Sie Cloud Shell als Shell-Umgebung für die Interaktion mit Google Cloud verwenden, sind diese Tools für Sie installiert.
Achten Sie darauf, dass die gcloud CLI für die Verwendung mit Ihrem Projekt initialisiert wurde.
In dieser Anleitung wird davon ausgegangen, dass sich
roles/owner
in Ihrem Projekt befindet. Wenn Sie kein Projektinhaber sind, benötigen Sie möglicherweise zusätzliche Berechtigungen, um einige Einrichtungsschritte auszuführen.Bei Clustern außerhalb von Google Cloud muss GKE Identity Service die Google Identity API aus Ihrem Cluster aufrufen. Prüfen Sie, ob Ihre Netzwerkrichtlinie ausgehenden Traffic über einen Proxy erfordert.
Nutzer und Gruppen einrichten
Die Gruppen, die Sie mit dieser Funktion verwenden möchten, müssen so eingerichtet sein:
- Im Google Workspace Ihrer Organisation muss eine Gruppe mit dem Format
gke-security-groups@YOUR-DOMAIN
vorhanden sein. Wenn Sie keine solche Gruppe haben, folgen Sie der Anleitung unter Gruppe in Ihrer Organisation erstellen, um die Gruppe mit der Google Workspace-Admin-Konsole zu erstellen. - Folgen Sie der Anleitung unter Einer Gruppe eine andere Gruppe hinzufügen, um die Gruppen, die Sie für die Zugriffssteuerung verwenden möchten, als verschachtelte Gruppen zu
gke-security-groups
hinzuzufügen. Fügen Sie einzelne Nutzer nicht als Mitglieder vongke-security-groups
hinzu.
Nutzerkonten, die Sie mit dieser Funktion verwenden möchten, sollten denselben Domainnamen wie die zugehörigen Gruppen haben.
APIs aktivieren
Aktivieren Sie die Connect Gateway API und die erforderlichen Abhängigkeits-APIs, um das Gateway Ihrem Projekt hinzuzufügen. Wenn sich Ihre Nutzer nur über die Google Cloud Console bei Clustern authentifizieren möchten, müssen Sie connectgateway.googleapis.com
nicht aktivieren. Die verbleibenden APIs müssen jedoch aktiviert werden.
PROJECT_ID=example_project
gcloud services enable --project=${PROJECT_ID} \
connectgateway.googleapis.com \
anthos.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
cloudresourcemanager.googleapis.com
Hinweis:GKE Identity Service einrichten
Die Google Groups-Supportfunktion des Connect-Gateways verwendet GKE Identity Service, um Informationen zur Gruppenmitgliedschaft von Google abzurufen. Weitere Informationen zu GKE Identity Service finden Sie unter Einführung in GKE Identity Service.
Wenn Sie GKE-Cluster mit dem Gateway verwenden, müssen Sie GKE Identity Service nicht einrichten, um die Google Groups-Unterstützung verwenden zu können. Folgen Sie stattdessen der Anleitung unter Google Groups for RBAC konfigurieren und fahren Sie mit IAM-Rollen gewähren fort, um Clustern über das Gateway Zugriff zu gewähren.
Wenn Sie in GKE angehängte Cluster mit dem Gateway verwenden, ist GKE Identity Service für den Google Groups-Support nicht erforderlich. Folgen Sie der Anleitung für den ausgewählten Clustertyp, um den Google Groups-Support einzurichten:
- Mit dem mit EKS verknüpften Cluster verbinden
- Mit dem mit AKS verknüpften Cluster verbinden
- Verbindung zu anderen Clustertypen herstellen
Prüfen, ob GKE Identity Service installiert ist
GKE Identity Service ist standardmäßig ab Version 1.7 auf GKE-Clustern installiert. Der Google Groups-Support erfordert jedoch Version 1.13 oder höher. Mit dem folgenden Befehl können Sie prüfen, ob der Dienst korrekt auf Ihrem Cluster installiert ist:
kubectl --kubeconfig CLUSTER_KUBECONFIG get all -n anthos-identity-service
Ersetzen Sie CLUSTER_KUBECONFIG
durch den Pfad zur kubeconfig des Clusters.
Support für Google Groups konfigurieren
Wenn Sie GKE on AWS oder GKE on Azure verwenden, wird Ihr Cluster automatisch für die Unterstützung von Google Groups konfiguriert. Sie können dann mit Google Groups IAM-Rollen zuweisen fortfahren.
Wenn Sie Google Distributed Cloud auf VMware oder Bare Metal verwenden, hängt die Konfiguration der Google Groups-Funktion davon ab, wie Sie GKE Identity Service einrichten.
Wenn Sie GKE Identity Service zum ersten Mal verwenden, können Sie Google Groups auf Flottenebene (empfohlen) oder pro Cluster konfigurieren.
Wenn Sie GKE Identity Service bereits verwenden, beachten Sie Folgendes:
- Wenn Sie bereits GKE Identity Service für einen anderen Identitätsanbieter auf Flottenebene eingerichtet haben, ist die Google Groups-Funktion standardmäßig für Sie aktiviert. Weitere Informationen und ggf. erforderliche zusätzliche Einstellungen finden Sie unten im Abschnitt Flotte.
Wenn Sie bereits GKE Identity Service für einen anderen Identitätsanbieter für jeden Cluster eingerichtet haben, finden Sie im Abschnitt Pro Cluster unten eine Anleitung zum Aktualisieren Ihrer Konfiguration für die Google Groups-Funktion.
Flotte
Sie können den Zugriff auf Google Groups auf Flottenebene über die Google Cloud Console oder die Befehlszeile konfigurieren.
Wenn Sie den GKE-Identitätsdienst auf Flottenebene bereits mit einem anderen Identitätsanbieter (z. B. Microsoft AD FS oder Okta) konfiguriert haben, ist die Funktion Connect gateway Google Groups auf konfigurierten Clustern bereits standardmäßig für Sie aktiviert, vorausgesetzt, der Google-Identitätsanbieter ist ohne die Verwendung eines Proxys erreichbar.
Console
Wenn Sie GKE Identity Service noch nicht für eine Flotte eingerichtet haben, folgen Sie der Anleitung unter Cluster für GKE Identity Service konfigurieren.
Cluster auswählen und Konfiguration aktualisieren
- Rufen Sie in der Google Cloud Console die Seite Feature Manager auf.
- Klicken Sie im Bereich Identity Service auf Details. Die Clusterdetails Ihres Projekts werden angezeigt.
- Klicken Sie auf Identitätsdienst aktualisieren, um den Einrichtungsbereich zu öffnen.
- Wählen Sie die Cluster aus, die Sie konfigurieren möchten. Sie können einzelne Cluster auswählen oder festlegen, dass alle Cluster mit derselben Identitätskonfiguration konfiguriert werden sollen.
- Im Abschnitt Identitätsanbieter konfigurieren können Sie einen Identitätsanbieter beibehalten, hinzufügen, aktualisieren oder entfernen.
- Klicken Sie auf Weiter, um mit dem nächsten Konfigurationsschritt fortzufahren. Wenn Sie mindestens einen geeigneten Cluster für diese Einrichtung ausgewählt haben, wird der Bereich Google-Authentifizierung angezeigt.
- Wählen Sie Aktivieren aus, um die Google-Authentifizierung für die ausgewählten Cluster zu aktivieren. Wenn Sie über einen Proxy auf den Google-Identitätsanbieter zugreifen müssen, geben Sie die Proxy-Details ein.
- Klicken Sie auf Konfiguration aktualisieren. Dadurch wird die Identitätskonfiguration auf die ausgewählten Cluster angewendet.
gcloud
Wenn Sie GKE Identity Service noch nicht für eine Flotte eingerichtet haben, folgen Sie der Anleitung unter Cluster für GKE Identity Service konfigurieren.
Geben Sie in der auth-config.yaml
-Datei nur die folgende Konfiguration an:
spec:
authentication:
- name: google-authentication-method
google:
disable: false
Google Groups-Zugriff über einen Proxy konfigurieren
Wenn Sie über einen Proxy auf den Google-Identitätsanbieter zugreifen müssen, verwenden Sie in der auth-config.yaml
-Datei ein proxy
-Feld. Diese Angabe ist möglicherweise erforderlich, wenn sich der Cluster beispielsweise in einem privaten Netzwerk befindet und eine Verbindung zu einem öffentlichen Identitätsanbieter hergestellt werden muss.
Sie müssen diese Konfiguration hinzufügen, auch wenn Sie GKE Identity Service bereits für einen anderen Anbieter konfiguriert haben.
Um den proxy
zu konfigurieren, müssen Sie den Abschnitt authentication
der vorhandenen Konfigurationsdatei auth-config.yaml
aktualisieren.
spec:
authentication:
- name: google-authentication-method
google:
disable: false
proxy: PROXY_URL
Dabei gilt:
disable
(optional): gibt an, ob die Google Groups-Funktion für Cluster aktiviert oder deaktiviert werden soll. Dieser Wert ist standardmäßig auf false festgelegt. Wenn Sie diese Funktion deaktivieren möchten, können Sie sie auf true setzen.PROXY_URL
(optional): Proxyserver-Adresse für die Verbindung mit der Google-ID. Beispiel:http://user:password@10.10.10.10:8888
Wenden Sie die Konfiguration an
Führen Sie den folgenden Befehl aus, um die Konfiguration auf einen Cluster anzuwenden:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Dabei gilt:
CLUSTER_NAME
ist der eindeutige Mitgliedschaftsname Ihres Clusters innerhalb der Flotte.
Nach der Anwendung wird diese Konfiguration vom GKE Identity Service-Controller verwaltet. Alle lokalen Änderungen, die an der Clientkonfiguration von GKE Identity Service vorgenommen werden, werden vom Controller wieder auf die Konfiguration umgestellt, die in dieser Einrichtung festgelegt wurde.
Pro Cluster
Wenn Sie Ihren Cluster so konfigurieren möchten, dass er GKE Identity Service mit der Google Groups-Funktion verwendet, müssen Sie die GKE Identity Service-ClientConfig
des Clusters aktualisieren.
Dies ist ein benutzerdefinierter Kubernetes-Ressourcentyp (CRD), der für die Clusterkonfiguration verwendet wird.
Jeder GKE Enterprise-Cluster hat eine ClientConfig
-Ressource namens default
im Namespace kube-public
, die Sie mit Ihren Konfigurationsdetails aktualisieren.
Führen Sie den folgenden Befehl aus, um die Konfiguration zu bearbeiten:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
Dabei ist USER_CLUSTER_KUBECONFIG
der Pfad zur kubeconfig-Datei Ihres Clusters.
Wenn die kubeconfig mehrere Kontexte enthält, wird der aktuelle Kontext verwendet. Möglicherweise müssen Sie den aktuellen Kontext auf den richtigen Cluster zurücksetzen, bevor Sie den Befehl ausführen.
Im folgenden Beispiel wird gezeigt, wie Sie die ClientConfig
mit einer neuen Authentifizierungsmethode mit einer Konfiguration vom Typ google
aktualisieren, um die Google Groups-Funktion zu aktivieren.
Wenn das Feld internalServer
leer ist, muss es auf https://kubernetes.default.svc
festgelegt werden, wie unten dargestellt.
spec:
authentication:
- google:
audiences:
- "CLUSTER_IDENTIFIER"
name: google-authentication-method
proxy: PROXY_URL
internalServer: https://kubernetes.default.svc
Dabei gilt:
CLUSTER_IDENTIFIER
(erforderlich): gibt die Mitgliedschaftsdetails Ihres Clusters an.
Sie können die Mitgliedschaftsdetails Ihres Clusters mit dem folgenden Befehl abrufen:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yaml
Dabei gilt:
Dabei ist USER_CLUSTER_KUBECONFIG
der Pfad der kubeconfig-Datei für den Cluster.
In der Antwort finden Sie im Feld spec.owner.id
die Mitgliedschaftsdetails des Clusters.
Hier ist ein Beispiel für eine Antwort mit den Mitgliedschaftsdetails eines Clusters:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34ef
Das entspricht dem folgenden Format:
//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP
IAM-Rollen für Google Groups zuweisen
Gruppen benötigen die folgenden zusätzlichen Google Cloud-Rollen, um über das Gateway mit verbundenen Clustern zu interagieren:
roles/gkehub.gatewayAdmin
: Mit dieser Rolle können Gruppenmitglieder auf die Connect Gateway API zugreifen.- Wenn Gruppenmitglieder nur Lesezugriff auf verbundenen Clustern benötigen, kann stattdessen
roles/gkehub.gatewayReader
verwendet werden. - Wenn Gruppenmitglieder Lese-/Schreibzugriff auf verbundenen Clustern benötigen, kann stattdessen
roles/gkehub.gatewayEditor
verwendet werden.
- Wenn Gruppenmitglieder nur Lesezugriff auf verbundenen Clustern benötigen, kann stattdessen
roles/gkehub.viewer
: Mit dieser Rolle können Gruppenmitglieder registrierte Clustermitgliedschaften ansehen.
Sie weisen diese Rollen mit dem Befehl gcloud projects add-iam-policy-binding
so zu:
gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=GATEWAY_ROLE PROJECT_ID gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=roles/gkehub.viewer PROJECT_ID
Dabei gilt:
- GROUP_NAME ist die Google-Gruppe, der Sie die Rolle zuweisen möchten.
- DOMAIN ist Ihre Google Workspace-Domain.
- GROUP_NAME@DOMAIN ist eine verschachtelte Gruppe unter gke-security-groups@DOMAIN
- GATEWAY_ROLE ist wahlweise
roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayReader
odergkehub.gatewayEditor
. - PROJECT_ID ist Ihr Projekt.
Weitere Informationen zum Erteilen von IAM-Berechtigungen und -Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
Richtlinien für die rollenbasierte Zugriffssteuerung (RBAC) konfigurieren
Schließlich muss der Kubernetes API-Server jedes Clusters in der Lage sein, kubectl
-Befehle zu autorisieren, die über das Gateway Ihrer angegebenen Gruppen eingehen. Für jeden Cluster müssen Sie eine RBAC-Berechtigungsrichtlinie hinzufügen, die angibt, welche Berechtigungen die Gruppe für den Cluster hat.
Im folgenden Beispiel wird gezeigt, wie Sie den Mitgliedern der Gruppe cluster-admin-team
die Berechtigungen cluster-admin
für den Cluster erteilen, die Richtliniendatei unter /tmp/admin-permission.yaml speichern und auf den Cluster anwenden, der dem aktuellen Kontext zugeordnet ist. Achten Sie darauf, auch die Gruppe cluster-admin-team
in die Gruppe gke-security-groups
aufzunehmen.
cat <<EOF > /tmp/admin-permission.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: gateway-cluster-admin-group
subjects:
- kind: Group
name: cluster-admin-team@example.com
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
EOF
# Apply permission policy to the cluster.
kubectl apply --kubeconfig=KUBECONFIG_PATH -f /tmp/admin-permission.yaml
Weitere Informationen zum Angeben von RBAC-Berechtigungen finden Sie unter RBAC-Autorisierung verwenden.
Nächste Schritte
- Verbindung über Cluster über die Befehlszeile herstellen
- Ein Beispiel für die Verwendung des Connect-Gateways als Teil Ihrer DevOps-Automatisierung finden Sie in unserer Anleitung In Cloud Build einbinden