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.

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.

Diese Seite richtet sich an Sicherheitsexperten und Operatoren, die Google Groups mit Kubernetes RBAC in GKE-Clustern verwenden möchten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.

Bevor Sie diese Seite lesen, sollten Sie sich mit den Beschränkungen von Google Groups beim Erstellen von Gruppen und Hinzufügen von Nutzern als Mitglieder vertraut machen.

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.

Beschränkungen

  • 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 \
    --location=CONTROL_PLANE_LOCATION \
    --security-group="gke-security-groups@DOMAIN"

Dabei gilt:

  • CLUSTER_NAME ist der Name des neuen Clusters.
  • CONTROL_PLANE_LOCATION ist der Compute Engine Standort der Steuerungsebene Ihres Clusters. Geben Sie für regionale Cluster eine Region und für zonale Cluster eine Zone an.
  • DOMAINist 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 \
    --location=CONTROL_PLANE_LOCATION \
    --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. Öffnen Sie in der Google Cloud Console die Seite Google Kubernetes Engine.

    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 \
    --location=CONTROL_PLANE_LOCATION \
    --security-group="gke-security-groups@DOMAIN"

Dabei gilt:

  • CLUSTER_NAME ist der Name des Clusters.
  • CONTROL_PLANE_LOCATION ist der Compute Engine Standort der Steuerungsebene Ihres Clusters. Geben Sie für regionale Cluster eine Region und für zonale Cluster eine Zone an.
  • DOMAINist 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. Öffnen Sie in der Google Cloud Console die Seite Google Kubernetes Engine.

    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 wird beschrieben, wie Sie überprüfen, ob Ihre Google Groups for RBAC Konfiguration erfolgreich war. Sie können dazu entweder die gcloud CLI oder die Google Cloud Console verwenden.

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.

Mit der Google Cloud Console überprüfen

Sie können den RBAC-Zugriff auch überprü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 mindestens einer der Gruppen, die Mitglieder der Gruppe gke-security-groups sind. So wird sichergestellt, dass einige Google Groups-Informationen protokolliert werden.

Logs aktivieren und einen Testbefehl ausführen

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

    1. Öffnen Sie in der Console die Seite Audit-Logs. Google Cloud

      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. So führen Sie die Abfrage aus:

    1. Rufen Sie in der Google Cloud Console die Seite 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/v1/selfsubjectaccessreviews"
      protoPayload.authenticationInfo.principalEmail="EMAIL_ADDRESS"
      

      Dabei gilt:

      • CLUSTER_LOCATION ist 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 labels.authorization.k8s.io/decision enthält das Ergebnis, ob Ihre Anfrage zugelassen oder abgelehnt wurde.

    8. Das Feld labels."authorization.k8s.io/reason" enthält den Namen einer Google-Gruppe. Diese Gruppe ist Mitglied der gke-security-group und wird der Kubernetes-Gruppe zugeordnet, die den Zugriff bestimmt.

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

Auswirkungen des Löschens von Gruppen

Nachdem Sie Google Groups for RBAC konfiguriert haben, hängen Ihre RBAC-Zugriffsgewährungen vom Vorhandensein der von Ihnen erstellten Google-Gruppen ab. Beachten Sie die folgenden Auswirkungen des Löschens einer der Gruppen:

  • gke-security-group: GKE verwendet die eindeutige ID der Gruppe gke-security-group, um die Subjekte zu finden, auf die Sie in Ihren RBAC-Richtlinien verweisen. Wenn Sie diese Gruppe löschen, schlagen alle Zugriffsgewährungen für Google Groups for RBAC fehl.

    Wenn Sie die gke-security-group Gruppe neu erstellen, müssen Sie Google Groups for RBAC in Ihrem Cluster noch einmal aktivieren. Folgen Sie dazu der Anleitung im Abschnitt Vorhandenen Cluster aktualisieren. Durch das erneute Aktivieren von Google Groups for RBAC wird der Cluster so aktualisiert, dass die Gruppen-ID der neuen Gruppe gke-security-group verwendet wird.

  • Mitgliedsgruppen: Wenn Sie eine der Mitgliedsgruppen löschen, die Sie konfiguriert haben für Google Groups for RBAC, schlagen alle RBAC-Bindungen für diese Gruppe fehl. Dadurch verlieren alle Mitglieder dieser Gruppe den entsprechenden Zugriff.

    Wenn Sie eine Mitgliedsgruppe versehentlich gelöscht haben, erstellen Sie eine neue Gruppe mit genau demselben Namen wie die gelöschte Gruppe. Machen Sie die neue Gruppe zu einem Mitglied der gke-security-group Gruppe. Folgen Sie dazu der Anleitung im Abschnitt Google Groups-Gruppen einrichten.

Nächste Schritte