Google Groups for RBAC konfigurieren


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:

  1. Voraussetzungen erfüllen
  2. Google Groups einrichten
  3. Google Groups for RBAC in einem Cluster aktivieren
  4. 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:

  1. Erstellen Sie eine Gruppe namens gke-security-groups in Ihrer Domain. Der gke-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.

  2. 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.

  3. Fügen Sie Ihre Gruppen als verschachtelte Gruppen zur Gruppe gke-security-groups hinzu. Fügen Sie einzelne Nutzer nicht als Mitglieder von gke-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 Gruppe gke-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:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf Erstellen.

  3. Klicken Sie bei dem Clustermodus, den Sie verwenden möchten, auf Konfigurieren.

  4. Erweitern Sie bei Autopilot-Clustern den Abschnitt Erweiterte Optionen, um die Optionen für Sicherheit zu finden.

  5. Klicken Sie bei Standardclustern unter Cluster auf Sicherheit.

  6. Klicken Sie das Kästchen Google Groups for RBAC (Beta) aktivieren an.

  7. Geben Sie in die Sicherheitsgruppe gke-security-groups@DOMAIN ein.

  8. 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 Gruppe gke-security-groups.

Console

Gehen Sie so vor, um einen vorhandenen Cluster zur Aktivierung von Google Groups for RBAC zu aktualisieren:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf den Name des Clusters, den Sie aktualisieren möchten

  3. Suchen Sie auf dem Tab Details den Bereich Sicherheit.

  4. Klicken Sie im Feld Google Groups for RBAC auf Google Groups for RBAC bearbeiten.

  5. Klicken Sie das Kästchen Google Groups for RBAC (Beta) aktivieren an.

  6. Geben Sie in die Sicherheitsgruppe gke-security-groups@DOMAIN ein.

  7. 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

  1. Aktivieren Sie das Datenzugriffs-Logging für Ihr Google Cloud-Projekt. So aktivieren Sie das Logging:

    1. Rufen Sie in der Google Cloud Console die Seite Audit-Logs auf.

      Zu den Audit-Logs

    2. Wählen Sie in der Tabelle Kubernetes Engine API aus.

    3. Wählen Sie im Menü Log-Typ Folgendes aus:

      • Administratortätigkeit
      • Daten lesen
      • Daten schreiben
    4. Klicken Sie auf Speichern.

    Weitere Informationen zum Aktivieren von Audit-Logging finden Sie unter Datenzugriffslogs mit der Cloud Console konfigurieren.

  2. Führen Sie einen Befehl mit kubectl im Cluster aus. Beispiel:

    kubectl create ns helloworld
    
  3. Geben Sie auf der Seite Log-Explorer eine benutzerdefinierte Abfrage ein. Das geht so:

    1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

      Zum Log-Explorer

    2. Klicken Sie oben auf der Seite im Feld Abfragevorschau auf den Pfeil.

    3. 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.
    4. 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.

    5. Wählen Sie den Cluster aus, den Sie untersuchen möchten.

    6. Klicken Sie auf Verschachtelte Felder erweitern.

    7. 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.

  4. Optional können Sie das Datenzugriffs-Logging auf die vorherigen Einstellungen zurücksetzen, um weitere Gebühren zu vermeiden.

Nächste Schritte