Bei GKE on Azure mit externen Identitäten authentifizieren

Die Mitarbeiteridentitätsföderation gewährt Nicht-Google-Identitäten Zugriff auf Google Cloud-Dienste. Im Kontext von GKE on Azure bedeutet dies, dass Sie bereits vorhandene externe Identitäten verwenden können, um einen GKE-Cluster zu erstellen oder auf einen GKE-Cluster zuzugreifen, ohne auf Google-Anmeldedaten angewiesen zu sein.

Die Verwendung der Mitarbeiteridentitätsföderation bietet folgende Vorteile:

  • Sie vermeiden doppelte Konten bei verschiedenen Plattformen oder Anbietern.
  • Berechtigungen werden nur einmal festgelegt. So müssen Sie keine Konfigurationen auf mehreren Plattformen vornehmen.
  • Sie vereinfachen den Zugriff für die Nutzer, da weniger Anmeldungen und Passwörter erforderlich sind.

Hinweise

Bevor Sie externen Nutzern oder Gruppen den Zugriff auf GKE-Cluster ermöglichen können, müssen Sie die folgenden Schritte ausführen:

  1. Damit externe Nutzer oder Gruppen die GKE on Azure API verwenden können, konfigurieren Sie die Mitarbeiteridentitätsföderation:

  2. Weisen Sie Ihren externen Nutzern oder Gruppen die Rolle gkemulticloud.viewer zu, damit sie auf Cluster zugreifen können. Weisen Sie die Rolle container.clusterViewer zu, um Cluster in der Google Cloud Console anzusehen.

    Beachten Sie, dass Rollen Sammlungen von Berechtigungen sind. Wenn Sie einer Entität (Nutzer, Gruppe oder Dienstkonto) eine Rolle zuweisen, erhält diese Entität alle Berechtigungen, die in dieser Rolle enthalten sind.

    Nutzer

    Einzelnen Nutzern müssen Sie die Rolle gkemulticloud.viewer zuweisen:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.viewer" \
      --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • WORKFORCE_POOL_ID: Die ID, die Ihren Personalidentitätspool in Google Cloud eindeutig identifiziert. Beachten Sie beim Formatieren der ID die empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
    • SUBJECT_VALUE: Die ID, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wie alex@cymbalgroup.com sein.

    Gruppen

    Für Gruppen müssen Sie die Rolle gkemulticloud.viewer zuweisen:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.viewer" \
      --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • WORKFORCE_POOL_ID: Die ID, die Ihren Personalidentitätspool in Google Cloud eindeutig identifiziert. Beachten Sie beim Formatieren der ID die empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
    • GROUP_ID: eine ID, die eine externe Gruppe eindeutig identifiziert.
  3. Optional: Weisen Sie Ihren externen Nutzern oder Gruppen die entsprechenden IAM-Rollen (Identity and Access Management) zu. Dieser Schritt ist nur erforderlich, wenn Sie Nutzern oder Gruppen die Möglichkeit geben möchten, Cluster zu erstellen oder zu aktualisieren. Er ist nicht einfach für den Zugriff auf einen Cluster erforderlich.

    Nutzer

    Einzelnen Nutzern müssen Sie die Rolle gkemulticloud.admin zuweisen:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • WORKFORCE_POOL_ID: Die ID, die Ihren Personalidentitätspool in Google Cloud eindeutig identifiziert. Beachten Sie beim Formatieren der ID die empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
    • SUBJECT_VALUE: Die ID, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wie alex@cymbalgroup.com sein.

    Gruppen

    Für Gruppen müssen Sie die Rolle gkemulticloud.admin zuweisen:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
    • WORKFORCE_POOL_ID: Die ID, die Ihren Personalidentitätspool in Google Cloud eindeutig identifiziert. Beachten Sie beim Formatieren der ID die empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
    • GROUP_ID: eine ID, die eine externe Gruppe eindeutig identifiziert.

Weitere Informationen zu den für GKE on Azure erforderlichen API-Rollen und -Berechtigungen finden Sie unter API-Rollen und -Berechtigungen.

Externen Zugriff auf GKE-Cluster gewähren

Es gibt zwei Methoden zum Einrichten der Mitarbeiteridentitätsföderation, damit externe Nutzer oder Gruppen auf Ihre GKE-Cluster zugreifen können.

Für Methode 1 müssen Sie eine RBAC-Datei definieren und auf den Cluster anwenden. Diese Methode bietet eine präzise Steuerung von Berechtigungen. So können Nutzer z. B. nur Lesezugriff auf Ressourcen erhalten, ohne ihnen einen umfassenderen Zugriff zu gewähren.

Bei Methode 2 müssen Sie beim Erstellen oder Aktualisieren eines Clusters den Zugriff für externe Identitäten angeben. Diese Methode gewährt den angegebenen Nutzern oder Gruppen volle Administratorberechtigungen.

Wählen Sie die Methode aus, die am besten zu Ihrer gewünschten Zugriffssteuerungsebene passt: Methode 1 für detailliertere Berechtigungen oder Methode 2 zum Gewähren der vollständigen Clusteradministratorrechte.

Methode 1: RBAC-Datei verwenden

Die erste Methode, um externen Zugriff auf GKE-Cluster zu gewähren, beinhaltet die Verwendung einer RBAC-Datei. Gehen Sie so vor:

  1. Definieren Sie eine RBAC-YAML-Datei, die die Subjekte (Nutzer oder Gruppen) und die Berechtigungen enthält, die Sie ihnen im GKE-Cluster gewähren möchten. Hier sehen Sie Beispiele für RBAC-YAML-Konfigurationen für einzelne Nutzer und Gruppen:

    Nutzer

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: gateway-cluster-admin-user
    subjects:
    - kind: User
      name: principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    

    Ersetzen Sie Folgendes:

    • WORKFORCE_POOL_ID: Die ID, die Ihren Personalidentitätspool in Google Cloud eindeutig identifiziert. Beachten Sie beim Formatieren der ID die empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
    • SUBJECT_VALUE: Die ID, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wie alex@cymbalgroup.com sein.

    Gruppen

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: gateway-cluster-admin-group
    subjects:
    - kind: Group
      name: principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    

    Ersetzen Sie Folgendes:

    • WORKFORCE_POOL_ID: Die ID, die Ihren Personalidentitätspool in Google Cloud eindeutig identifiziert. Beachten Sie beim Formatieren der ID die empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
    • GROUP_ID: eine ID, die eine externe Gruppe eindeutig identifiziert.
  2. Ermitteln Sie den GKE-Cluster, den Sie konfigurieren möchten, und legen Sie ihn mit dem folgenden Befehl als aktiven Kontext fest:

      kubectl config use-context CLUSTER_CONTEXT
    

    Ersetzen Sie CLUSTER_CONTEXT durch den entsprechenden Kontextnamen für Ihren Cluster.

  3. Wenn der gewünschte GKE-Cluster als aktiven Kontext festgelegt ist, wenden Sie die RBAC-Konfiguration mit dem folgenden Befehl auf den Cluster an:

    kubectl apply -f RBAC_PATH
    

    Ersetzen Sie RBAC_PATH durch den Pfad zur RBAC-Datei, die Sie erstellt oder bearbeitet haben.

    Wenn Sie diesen Befehl ausführen, haben die in der RBAC-Konfiguration angegebenen Nutzer oder Gruppen jetzt die Berechtigungen für den Zugriff und die Verwaltung des Ziel-GKE-Cluster, wie in den RBAC-Regeln definiert.

  4. Wenn Sie später Änderungen an den Berechtigungen vornehmen müssen, ändern Sie die RBAC-Datei und wenden Sie sie wieder auf den Cluster an. Wiederholen Sie dazu die vorherigen Schritte.

Methode 2: Zugriff auf externe Identitäten während der Clustererstellung oder ‐aktualisierung gewähren

Methode 2 gewährt beim Erstellen oder Aktualisieren des Clusters Zugriff auf externe Identitäten.

Führen Sie zum Erstellen eines Clusters die Schritte unter Cluster erstellen aus. Informationen zum Aktualisieren eines Clusters finden Sie unter Cluster aktualisieren.

Geben Sie beim Ausführen des Befehls gcloud zum Erstellen oder Aktualisieren eines Clusters die Parameter admin-users und/oder admin-groups so an:

gcloud container azure clusters [create|update] CLUSTER_NAME \
    --location=LOCATION
    --admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
    --admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Clusters.
  • LOCATION: Die Google Cloud-Region, in der Ihr Cluster verwaltet wird.
  • WORKFORCE_POOL_ID: Die ID, die Ihren Personalidentitätspool in Google Cloud eindeutig identifiziert. Beachten Sie beim Formatieren der ID die empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
  • SUBJECT_VALUE: Die ID, die einen externen Nutzer eindeutig identifiziert. Die ID kann beispielsweise eine E-Mail-Adresse wie alex@cymbalgroup.com sein.
  • GROUP_ID: eine ID, die eine externe Gruppe eindeutig identifiziert.

Zusammenfassung der gewährten externen IDs Zugriff auf GKE-Cluster

Nachdem Sie die Methode 1 oder 2 ausgeführt haben, können die angegebenen externen Nutzer oder Gruppen die Google Cloud Console verwenden, um eine Verbindung herzustellen und Clusterdetails anzusehen. Alternativ können sie kubectl mit der Identität aus der gcloud CLI verwenden, um den Cluster zu verwalten, zu bearbeiten und mit ihm zu kommunizieren.

Informationen zum Ausführen von kubectl-Befehlen für GKE-Cluster finden Sie unter kubeconfig-Eintrag generieren.