Mit externen Identitäten bei GKE on AWS authentifizieren

Die Workforce Identity-Föderation gewährt Nicht-Google-Identitäten Zugriff aufGoogle Cloud -Dienste. Im Kontext von GKE on AWS bedeutet das, dass Sie vorhandene externe Identitäten verwenden können, um einen GKE-Cluster zu erstellen oder darauf zuzugreifen, ohne auf Google-Anmeldedaten angewiesen zu sein.

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

  • Sie müssen keine doppelten Konten auf verschiedenen Plattformen oder bei verschiedenen Anbietern erstellen.
  • Sie legen Berechtigungen nur einmal fest und müssen keine Konfigurationen auf mehreren Plattformen vornehmen.
  • Sie vereinfachen den Nutzerzugriff, da weniger Anmeldungen und Passwörter erforderlich sind.

Hinweise

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

  1. Damit externe Nutzer oder Gruppen die GKE on AWS API verwenden können, konfigurieren Sie die Workforce Identity-Fö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 -Konsole anzusehen.

    Beachten Sie, dass Rollen Sammlungen von Berechtigungen sind. Wenn Sie einer Entität eine Rolle zuweisen (Nutzer, Gruppe oder Dienstkonto), erteilen Sie dieser Entität alle mit ihr verknüpften Berechtigungen.

    Nutzer

    Für einzelne Nutzer 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: die ID Ihres Google Cloud Projekts.
    • WORKFORCE_POOL_ID: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den 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: die ID Ihres Google Cloud Projekts.
    • WORKFORCE_POOL_ID: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den 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. Es ist nicht für den einfachen Zugriff auf einen Cluster erforderlich.

    Nutzer

    Für einzelne Nutzer 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: die ID Ihres Google Cloud Projekts.
    • WORKFORCE_POOL_ID: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den 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: die ID Ihres Google Cloud Projekts.
    • WORKFORCE_POOL_ID: die ID, die Ihren Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den empfohlenen Richtlinien in der IAM-Dokumentation unter Abfrageparameter.
    • GROUP_ID: Eine ID, die eine externe Gruppe eindeutig identifiziert.

Weitere Informationen dazu, welche API-Rollen und -Berechtigungen für GKE on AWS erforderlich sind, finden Sie unter API-Rollen und -Berechtigungen.

Externen Zugriff auf GKE-Cluster gewähren

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

Bei Methode 1 müssen Sie eine RBAC-Datei definieren und auf den Cluster anwenden. Diese Methode bietet eine detaillierte Kontrolle über Berechtigungen, z. B. können Sie Nutzern schreibgeschützten Zugriff auf Ressourcen gewähren, ohne ihnen umfassenderen Zugriff zu gewähren.

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

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

Methode 1: RBAC-Datei verwenden

Bei der ersten Methode zum Gewähren des externen Zugriffs auf GKE-Cluster wird eine RBAC-Datei verwendet. 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 erteilen möchten. Hier sind Beispielkonfigurationen für die rollenbasierte Zugriffssteuerung (RBAC) in YAML für einzelne Nutzer und für 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 Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den 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 Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den 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. Wenden Sie die RBAC-Konfiguration auf den Cluster an, indem Sie den folgenden Befehl ausführen, während der gewünschte GKE-Cluster als aktiver Kontext festgelegt ist:

    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 angegebenen Nutzer oder Gruppen in der RBAC-Konfiguration jetzt die Berechtigungen für den Zugriff auf den Ziel-GKE-Cluster und dessen Verwaltung, wie in den RBAC-Regeln definiert.

  4. Wenn Sie später Änderungen an den Berechtigungen vornehmen müssen, bearbeiten Sie die RBAC-Datei und wenden Sie sie noch einmal auf den Cluster an, indem Sie die vorherigen Schritte wiederholen.

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

Bei Methode 2 wird während der Clustererstellung oder des Clusteraktualisierungsprozesses Zugriff auf externe Identitäten gewährt.

Folgen Sie der Anleitung unter Cluster erstellen, um einen Cluster zu erstellen. Folgen Sie der Anleitung unter Cluster aktualisieren, um einen Cluster zu aktualisieren.

Wenn Sie den Befehl gcloud zum Erstellen oder Aktualisieren eines Clusters ausführen, geben Sie die Parameter admin-users und/oder admin-groups so an:

gcloud container aws 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 Workforce Identity-Pool in Google Cloudeindeutig identifiziert. Folgen Sie beim Formatieren der ID den 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 des Zugriffs auf GKE-Cluster für externe Identitäten

Nachdem Sie Methode 1 oder Methode 2 ausgeführt haben, können die angegebenen externen Nutzer oder Gruppen 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.