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 dieser Seite mit den Konzepten in unserer Übersicht vertraut. Informationen zum Autorisieren einzelner Konten finden Sie unter der 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
Sie können die Zugriffssteuerung mit Google Groups über das Connect-Gateway für die folgenden Clustertypen einrichten:
- GKE on Google Cloud: alle verfügbaren Versionen. Richten Sie das Connect-Gateway ein, konfigurieren Sie Google Groups for RBAC, und weisen Sie dann Google Groups IAM-Rollen zu.
- Google Distributed Cloud (nur Software) auf VMware und Bare Metal: alle verfügbaren Versionen.
- Google Distributed Cloud Connected: alle verfügbaren Versionen.
- In GKE angehängte Cluster: Version 1.28.0-gke.2 und höher.
GKE on AWS und GKE on Azure: alle verfügbaren Versionen.
Wenn Sie diese Funktion in Umgebungen verwenden möchten, die nicht in der vorherigen Liste enthalten sind, wenden Sie sich 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 in 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. So können Sie beispielsweise ganz einfach den Clusterzugriff für ein Team freigeben. Es ist nicht mehr erforderlich, einzelne Nutzer manuell zu Clustern hinzuzufügen oder daraus zu entfernen, wenn diese dem Team beitreten oder es verlassen möchten. Sie können das Connect-Gateway so konfigurieren, dass die Google Groups-Mitgliedschaftsinformationen für jeden Nutzer abgerufen werden, der sich im Cluster anmeldet. Diese Informationen 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.comals Mitglied enthält.eine verschachtelte Gruppe von
gke-security-groups@example.comist.
- Der Nutzer
alice@example.commeldet sich mit seiner Google-Identität an und erhält, wenn er den Cluster über die Befehlszeile verwenden möchte, die Gatewaykubeconfigdes Clusters, wie unter Connect-Gateway verwenden beschrieben. - Der Nutzer sendet eine Anfrage, indem er einen
kubectlBefehl ausführt oder die Google Kubernetes Engine Arbeitslasten oder Objektbrowser Seiten 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 den
anthos-identity-service-Pod im Cluster weiter, der die Anfrage validiert. - Der
anthos-identity-service-Pod 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
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto haben, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Google CloudNeukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.
Aktivieren Sie die Connect Gateway-, GKE Connect-, GKE Hub-, Anthos Identity Service- und Cloud Resource Manager APIs:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com -
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.
Aktivieren Sie die Connect Gateway-, GKE Connect-, GKE Hub-, Anthos Identity Service- und Cloud Resource Manager APIs:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com - Bei Clustern außerhalb von Google Cloud, müssen die Authentifizierungskomponenten in Ihrem Cluster die Cloud Identity API aufrufen. Prüfen Sie, ob Sie Netzwerkrichtlinien haben, die erfordern, dass ausgehender Traffic von Ihrem Cluster über einen Proxy geleitet wird.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die
Editor (roles/editor) IAM-Rolle für das Projekt zu gewähren,
um die Berechtigungen zu erhalten, die
Sie zum Konfigurieren des Connect-Gateways und Ihrer Cluster benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
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-DOMAINvorhanden sein. Wenn Sie keine solche Gruppe haben, folgen Sie der Anleitung unter Gruppe in Ihrer Organisation erstellen, um die Gruppe mit der Google Admin-Konsole zu erstellen. - Folgen Sie der Anleitung unter Einer Gruppe eine andere
Gruppe, um die Gruppen, die Sie
für die Zugriffssteuerung verwenden möchten, als verschachtelte Gruppen von
gke-security-groupshinzuzufügen. Fügen Sie keine einzelnen Nutzer als Mitglieder vongke-security-groupshinzu.
Nutzerkonten, die Sie mit dieser Funktion verwenden möchten, sollten denselben Domainnamen wie die zugehörigen Gruppen haben.
Unterstützung für Gruppen konfigurieren
Das Connect-Gateway verwendet Authentifizierungskomponenten in Ihrem Cluster, um Informationen zur Gruppenmitgliedschaft abzurufen. Informationen zum Aktivieren der erforderlichen Komponenten finden Sie in einem der folgenden Dokumente, je nach Clustertyp:
- GKE on Google Cloud: Konfigurieren Sie Google Groups for RBAC, und fahren Sie dann mit dem Abschnitt IAM-Rollen für Gruppen zuweisen fort.
- In GKE angehängte Cluster:
Google Distributed Cloud: Aktivieren Sie die Unterstützung für Gruppen, indem Sie die benutzerdefinierte Ressource ClientConfig in Ihrem Cluster aktualisieren. Distributed Cloud erstellt automatisch in jedem Cluster eine ClientConfig mit dem Namen
defaultim Namespacekube-public. Prüfen Sie mit dem folgenden Befehl, ob diese benutzerdefinierte Ressource vorhanden ist:kubectl --kubeconfig CLUSTER_KUBECONFIG get ClientConfig default -n kube-publicErsetzen Sie
CLUSTER_KUBECONFIGdurch den Pfad zur kubeconfig des Clusters.
In den folgenden Abschnitten wird beschrieben, wie Sie die benutzerdefinierte Ressource ClientConfig aktualisieren, um die Gruppenunterstützung zu aktivieren. Diese Abschnitte gelten nur für Google Distributed Cloud-Cluster. Für andere Clustertypen wie GKE on Google CloudGKE on AWS und GKE on Azure fahren Sie mit dem Abschnitt IAM-Rollen für Gruppen zuweisen fort.
Für Distributed Cloud können Sie die Unterstützung für Gruppen für einzelne Cluster oder für eine Flotte konfigurieren. Der verwendete Clustertyp bestimmt, wie Sie die Gruppenunterstützung konfigurieren:
- Distributed Cloud Connected: nur einzelne Cluster. Die Konfiguration auf Flottenebene wird nicht unterstützt.
- Google Distributed Cloud (nur Software) auf VMware und Bare Metal: einzelne Cluster oder Flotten.
Gruppenunterstützung mit der GKE Fleet API konfigurieren
Für Google Distributed Cloud (nur Software) auf VMware und Bare Metal können Sie die Gruppenunterstützung auf Flottenebene konfigurieren. Wenn Sie die Authentifizierung auf Flottenebene bereits konfiguriert haben, z. B. für einen anderen Identitätsanbieter, ist die Gruppenauthentifizierung bereits aktiviert. Wenn Ihre Netzwerkrichtlinie jedoch erfordert, dass ausgehender Traffic über einen Proxy geleitet wird, müssen Sie die vorhandene Konfiguration mit Informationen zu diesem Proxy aktualisieren.
Wählen Sie eine der folgenden Optionen aus, um die Gruppenunterstützung auf Flottenebene zu konfigurieren:
Console
Rufen Sie in der Google Cloud Console die Seite GKE Identity Service auf.
Klicken Sie auf Identity Service aktivieren.
Wählen Sie die Google Distributed Cloud-Cluster (nur Software) auf VMware und Bare Metal aus, die Sie konfigurieren möchten.
Klicken Sie auf Konfiguration aktualisieren. Der Bereich Clusterkonfiguration für Identity Service bearbeiten wird geöffnet.
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
- Aktivieren Sie die Funktion für den Identitätsdienst auf Flottenebene und konfigurieren Sie die Cluster, wie unter Authentifizierungsverwaltung auf Flottenebene einrichtenbeschrieben.
Fügen Sie der Datei
auth-config.yaml, die Ihre ClientConfig-Spezifikation enthält, das folgende Feld hinzu:spec: authentication: - name: google-authentication-method google: disable: falseDer Wert
falseim Feldgoogle.disableaktiviert die Gruppenunterstützung. Wenn Sie die Gruppenunterstützung deaktivieren möchten, ändern Sie diesen Wert intrue.Optional: Wenn Sie über einen Proxy auf den Google-Identitätsanbieter zugreifen müssen, fügen Sie der vorherigen Konfiguration das Feld
proxyhinzu:spec: authentication: - name: google-authentication-method google: disable: false proxy: PROXY_URLErsetzen Sie
PROXY_URLdurch die Proxyserveradresse, um eine Verbindung zur Google-Identität herzustellen. Beispiel:http://user:password@10.10.10.10:8888Wenden Sie die Konfiguration auf einen Cluster in Ihrer Flotte an:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Ersetzen Sie
CLUSTER_NAMEdurch den eindeutigen Mitgliedschaftsnamen Ihres Clusters innerhalb der Flotte.
Nachdem Sie die Gruppenunterstützung auf Flottenebene eingerichtet haben, verwaltet der Flottencontroller die Konfiguration. Die Konfiguration auf Flottenebene überschreibt alle lokalen Änderungen, die Sie an der Konfiguration in einem bestimmten Cluster vornehmen.
Gruppenunterstützung für einzelne Cluster konfigurieren
Aktivieren Sie für alle Distributed Cloud-Cluster, einschließlich Distributed Cloud Connected, die Gruppenunterstützung, indem Sie die default-ClientConfig in jedem Cluster aktualisieren:
Rufen Sie die Mitgliedschaftsdetails Ihres Clusters ab:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yamlErsetzen Sie
USER_CLUSTER_KUBECONFIGdurch den Pfad der kubeconfig-Datei für den Cluster. 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.In der Antwort finden Sie im Feld
spec.owner.iddie Mitgliedschaftsdetails des Clusters. Die Mitgliedschafts-ID hat das Format//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP.Die Ausgabe sieht etwa so aus:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34efÖffnen Sie die
default-ClientConfig in Ihrem Cluster zur Bearbeitung:kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig defaultFügen Sie das Feld
googledem Feldspec.authenticationhinzu, um die Gruppenunterstützung zu aktivieren:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-methodErsetzen Sie
CLUSTER_IDENTIFIERdurch die Mitgliedschaftsdetails Ihres Clusters.Prüfen Sie, ob das Feld
internalServerden Werthttps://kubernetes.default.svchat.Optional: Wenn Sie über einen Proxy auf den Google-Identitätsanbieter zugreifen müssen, fügen Sie der vorherigen Konfiguration das Feld
proxyhinzu:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-method proxy: PROXY_URLErsetzen Sie
PROXY_URLdurch die Proxyserveradresse, um eine Verbindung zur Google-Identität herzustellen. Beispiel:http://user:password@10.10.10.10:8888
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.gatewayReaderverwendet werden. - Wenn Gruppenmitglieder Lese-/Schreibzugriff auf verbundenen Clustern benötigen, kann stattdessen
roles/gkehub.gatewayEditorverwendet 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.gatewayReaderodergkehub.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
- Erfahren Sie, wie Sie das Connect-Gateway verwenden, um über die Befehlszeile eine Verbindung zu Clustern herzustellen.
- Ein Beispiel für die Verwendung des Connect-Gateways als Teil Ihrer DevOps-Automatisierung finden Sie in unserer Anleitung In Cloud Build einbinden.