Auf dieser Seite wird beschrieben, wie Sie Google Groups für die Arbeit mit der rollenbasierten Zugriffssteuerung (Role-based Access Control, RBAC) von Kubernetes in Ihren GKE-Clustern (Google Kubernetes Engine) einrichten.
Übersicht
Mit Google Groups for RBAC können Sie Mitgliedern von Gruppen in Google Workspace RBAC-Berechtigungen zuweisen. Ihre Google Workspace-Administratoren verwalten die Nutzer und Gruppen vollständig außerhalb von GKE oder der Google Cloud Console. Ihre Clusteradministratoren benötigen daher keine detaillierten Informationen über Nutzer.
Google Groups for RBAC ermöglicht auch die Einbindung in vorhandene Verwaltungsverfahren für Nutzerkonten, z. B. zum Widerrufen des Zugriffs für Personen, die Ihre Organisation verlassen.
Führen Sie die folgenden Aufgaben aus, um Google Groups for RBAC zu verwenden:
- Voraussetzungen erfüllen
- Google Groups einrichten
- Google Groups for RBAC in einem Cluster aktivieren
- RBAC-Berechtigungen definieren und den Google Groups zuweisen
Voraussetzungen
Um Google Groups for RBAC verwenden zu können, müssen Sie Zugriff auf Google Workspace oder eine beliebige Version von Cloud Identity haben.
Informieren Sie sich über die Google Groups-Limits, wenn Sie Gruppen erstellen und Nutzer als Mitglieder hinzufügen.
Beschränkung
- GKE unterstützt Nutzer mit Mitgliedschaft in bis zu 2000 Gruppen unter der Sicherheitsgruppe (einschließlich verschachtelter Mitgliedschaften) mit Google Groups for RBAC.
Google Groups-Gruppen einrichten
Die folgenden Schritte zeigen, wie Sie eine Gruppe in Google Groups einrichten, die mit RBAC funktioniert:
Erstellen Sie eine Gruppe namens
gke-security-groups
in Ihrer Domain. Dergke-security-groups
-Name ist erforderlich. Achten Sie darauf, dass für die Gruppe die Berechtigung Mitglieder ansehen für Gruppenmitglieder ausgewählt ist. Weitere Informationen finden Sie unter Berechtigungen zum Verwalten von Mitgliedern und Inhalten festlegen.Erstellen Sie Gruppen (sofern noch nicht vorhanden), die Gruppen von Nutzern darstellen, die unterschiedliche Berechtigungen für die Cluster haben sollten, z. B. Entwickler und Clusteradministratoren. Jede Gruppe muss die Berechtigung Mitglieder ansehen für Gruppenmitglieder haben.
Fügen Sie Ihre Gruppen als verschachtelte Gruppen zur Gruppe
gke-security-groups
hinzu. Fügen Sie einzelne Nutzer nicht als Mitglieder vongke-security-groups
hinzu.
Weitere Informationen zum Verwalten von Google Groups finden Sie in der Google Groups-Hilfe.
Um zu prüfen, ob ein bestimmter Nutzer eine Aktion für eine Clusterressource ausführen kann, prüft GKE, ob der Nutzer Mitglied einer zugriffsberechtigten Gruppe ist und ob diese Gruppe in der Gruppe gke-security-groups
verschachtelt ist.
Informationen zur Google Groups-Mitgliedschaft werden für kurze Zeit im Cache gespeichert. Es kann einige Minuten dauern, bis Änderungen an Gruppenmitgliedschaften an alle Cluster weitergegeben wurden. Zusätzlich zur Latenz aufgrund von Gruppenänderungen dauert das Standard-Caching von Nutzeranmeldedaten im Cluster etwa eine Stunde.
Google Groups for RBAC für Cluster aktivieren
Sie können Google Groups for RBAC auf neuen und vorhandenen GKE-Standard- und Autopilot-Clustern über das Google Cloud CLI oder die Google Cloud Console aktivieren.
Neuen Cluster erstellen
gcloud
Standard
Führen Sie den folgenden Befehl aus, um einen neuen Standardcluster zu erstellen und Google Groups for RBAC zu aktivieren:
gcloud container clusters create CLUSTER_NAME \
--region=COMPUTE_REGION \
--security-group="gke-security-groups@DOMAIN"
Dabei gilt:
CLUSTER_NAME
ist der Name des neuen Clusters.COMPUTE_REGION
ist die Compute Engine-Region für den neuen Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.DOMAIN
ist der Domainname der von Ihnen erstellten Gruppegke-security-groups
.
Autopilot
Führen Sie den folgenden Befehl aus, um einen neuen Autopilot-Cluster zu erstellen und Google Groups for RBAC zu aktivieren:
gcloud container clusters create-auto CLUSTER_NAME \
--region=COMPUTE_REGION \
--security-group="gke-security-groups@DOMAIN"
Console
Führen Sie die folgenden Schritte aus, um einen neuen Cluster zu erstellen und das Feature "Google Groups for RBAC" zu aktivieren:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie auf add_box Erstellen.
Klicken Sie bei dem Clustermodus, den Sie verwenden möchten, auf Konfigurieren.
Erweitern Sie bei Autopilot-Clustern den Abschnitt Erweiterte Optionen, um die Optionen für Sicherheit zu finden.
Klicken Sie bei Standardclustern unter Cluster auf Sicherheit.
Klicken Sie das Kästchen Google Groups for RBAC (Beta) aktivieren an.
Geben Sie in die Sicherheitsgruppe
gke-security-groups@DOMAIN
ein.Klicken Sie auf Erstellen.
Vorhandenen Cluster aktualisieren
gcloud
Führen Sie den folgenden Befehl aus, um einen vorhandenen Cluster zur Aktivierung von Google Groups for RBAC zu aktualisieren:
gcloud container clusters update CLUSTER_NAME \
--region=COMPUTE_REGION \
--security-group="gke-security-groups@DOMAIN"
Dabei gilt:
CLUSTER_NAME
ist der Name des Clusters.COMPUTE_REGION
ist die Compute Engine-Region des Clusters. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.DOMAIN
ist der Domainname der von Ihnen erstellten Gruppegke-security-groups
.
Console
Gehen Sie so vor, um einen vorhandenen Cluster zur Aktivierung von Google Groups for RBAC zu aktualisieren:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie auf den Name des Clusters, den Sie aktualisieren möchten
Suchen Sie auf dem Tab Details den Bereich Sicherheit.
Klicken Sie im Feld Google Groups for RBAC auf edit Google Groups for RBAC bearbeiten.
Klicken Sie das Kästchen Google Groups for RBAC (Beta) aktivieren an.
Geben Sie in die Sicherheitsgruppe
gke-security-groups@DOMAIN
ein.Klicken Sie auf Änderungen speichern.
Berechtigungen definieren und zuweisen
Nachdem Sie Google Groups for RBAC erstellt und konfiguriert haben, definieren Sie mithilfe von Rollen und Rollenbindungen RBAC-Berechtigungen und weisen Sie diese Berechtigungen Google Groups zu, die Mitglieder der Gruppe gke-security-groups
sind. Eine Anleitung finden Sie unter Berechtigungen definieren und zuweisen.
Google Groups for RBAC-Konfiguration überprüfen
In den folgenden Abschnitten erfahren Sie, wie Sie mit der gcloud CLI oder der Google Cloud Console prüfen, ob die Konfiguration von Google Groups für die RBAC-Berechtigungsverwaltung erfolgreich war.
Mit der gcloud CLI überprüfen
Führen Sie einen kubectl-Befehl can-i
aus, um zu prüfen, ob Sie eine bestimmte Aktion für eine bestimmte Kubernetes-Ressource ausführen können. Sie können diese Methode verwenden, um das Testen des RBAC-Zugriffs als Teil Ihres CI/CD-Workflows zu automatisieren. Der folgende Befehl testet beispielsweise den Zugriff von get
auf pods
-Ressourcen im dev
-Namespace:
kubectl auth can-i get pods \
--namespace=dev \
--as=USER \
--as-group=GROUP
Dabei gilt:
USER
: der Name des Nutzers, dessen Identität angenommen werden soll, z. B.gke-user@example.com
. Der angegebene Nutzer muss Mitglied der Gruppe sein, für die Sie den Zugriff testen.GROUP
: Der Name der Gruppe, deren Identität übernommen werden soll, z. B.gke-dev-users@example.com
.
Wenn USER
Zugriff hat, ist die Ausgabe yes
. Andernfalls ist die Ausgabe no
.
Über die Google Cloud Console prüfen
Sie können den RBAC-Zugriff auch prüfen, indem Sie einen kubectl-Befehl für Ihren Cluster ausführen und Ihre Logs prüfen.
Hinweis
Vor Beginn müssen folgende Voraussetzungen erfüllt sein:
- Sie haben mindestens eine Stunde lang nicht mit dem zu testenden Cluster interagiert (z. B. haben Sie keine
kubectl
-Befehle ausgeführt). Die Authentifizierung wird eine Stunde lang im Cache gespeichert. Wenn Sie die im Cache gespeicherten Anmeldedaten ablaufen lassen, wird die Anfrage protokolliert, wenn sie eintritt. - Sie sind Mitglied in mindestens einer der Gruppen, die Mitglieder der Gruppe
gke-security-groups
sind. Dadurch wird sichergestellt, dass einige Google Groups-Informationen geloggt werden.
Protokolle aktivieren und einen Testbefehl ausführen
Aktivieren Sie das Datenzugriffs-Logging für Ihr Google Cloud-Projekt. So aktivieren Sie das Logging:
Rufen Sie in der Google Cloud Console die Seite Audit-Logs auf.
Wählen Sie in der Tabelle Kubernetes Engine API aus.
Wählen Sie im Menü Log-Typ Folgendes aus:
- Administratortätigkeit
- Daten lesen
- Daten schreiben
Klicken Sie auf Speichern.
Weitere Informationen zum Aktivieren von Audit-Logging finden Sie unter Datenzugriffslogs mit der Cloud Console konfigurieren.
Führen Sie einen Befehl mit
kubectl
im Cluster aus. Beispiel:kubectl create ns helloworld
Geben Sie auf der Seite Log-Explorer eine benutzerdefinierte Abfrage ein. Das geht so:
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
Klicken Sie oben auf der Seite im Feld Abfragevorschau auf den Pfeil.
Geben Sie im angezeigten Drop-down-Feld die folgende Abfrage an:
resource.type="k8s_cluster" resource.labels.location="CLUSTER_LOCATION" resource.labels.cluster_name="CLUSTER_NAME" protoPayload.resourceName="authorization.k8s.io/v1beta1/subjectaccessreviews" protoPayload.response.spec.user="EMAIL_ADDRESS"
Dabei gilt:
CLUSTER_LOCATION
: Die Region oder Zone Ihres Clusters.CLUSTER_NAME
: Der Name Ihres Clusters.EMAIL_ADDRESS
: Die registrierte E-Mail-Adresse Ihres Google-Kontos.
Wählen Sie Abfrage ausführen aus. Es sollte mindestens ein Ergebnis angezeigt werden. Wenn keine Ergebnisse vorhanden sind, versuchen Sie, den Zeitraum zu verlängern.
Wählen Sie den Cluster aus, den Sie untersuchen möchten.
Klicken Sie auf Verschachtelte Felder erweitern.
Das Feld
protoPayload.request.spec.group
enthält die Gruppen, in denen folgende Bedingungen erfüllt sind:- Die Gruppen sind Mitglieder von
gke-security-group
. - Sie sind Mitglied der Gruppe.
Diese Liste sollte mit den Gruppen übereinstimmen, in denen Sie Mitglied sind. Wenn keine Gruppen vorhanden sind, liegt möglicherweise ein Problem mit der Einrichtung der Gruppen vor.
- Die Gruppen sind Mitglieder von
Optional können Sie das Datenzugriffs-Logging auf die vorherigen Einstellungen zurücksetzen, um weitere Gebühren zu vermeiden.