Mit GKE Identity Service auf Cluster zugreifen

GKE Identity Service ist ein Authentifizierungsdienst, mit dem Sie sich mit den vorhandenen Identitätsanbietern Ihrer Organisation bei Clustern in mehreren GKE Enterprise-Umgebungen authentifizieren können. So können Sie sich mit derselben ID in Clustern bei Google Cloud, lokal und in anderen öffentlichen Clouds anmelden. Dieses Dokument richtet sich an Entwickler und andere GKE-Clusternutzer, die über diesen Dienst auf Cluster zugreifen müssen. Wenn Sie sich stattdessen mit Ihrer Google Cloud-ID über das Connect Gateway in Clustern anmelden müssen, finden Sie weitere Informationen unter Connect Gateway verwenden.

Wenn Sie ein Cluster- oder Plattformadministrator sind und GKE Identity Service für Ihre Organisation oder Ihr Team einrichten müssen, finden Sie in der Übersicht zu GKE Identity Service Informationen zu unterstützten Clusterumgebungen, anderen Voraussetzungen und den entsprechenden Einrichtungsanleitungen.

Über die Befehlszeile bei Clustern anmelden

Zur Authentifizierung bei Clustern über die Befehlszeile müssen Sie gcloud-Authentifizierungsbefehle mit einer speziellen Anmeldekonfigurationsdatei ausführen, die von Ihrem Clusteradministrator bereitgestellt wird.

Hinweis

  1. Prüfen Sie, ob die folgenden Befehlszeilentools installiert sind:

    • Die neueste Version der Google Cloud CLI, die gcloud, das Befehlszeilentool für die Interaktion mit Google Cloud, enthält. Informationen zur Installation des Google Cloud CLI finden Sie in der Installationsanleitung.
    • kubectl zum Ausführen von Befehlen für Kubernetes-Cluster. Informationen zur Installation von kubectl finden Sie in der Installationsanleitung.
  2. Führen Sie die folgenden Befehle aus, um die Komponente anthos-auth zu installieren oder zu aktualisieren:

    gcloud components update
    gcloud components install anthos-auth
  3. Prüfen Sie mit dem folgenden Befehl, ob das Tool erfolgreich installiert wurde:

    gcloud anthos auth version

    Wenn eine Version zurückgegeben wird, war Ihre Installation erfolgreich.

Konfigurationsdatei abrufen

Die gcloud CLI geht von einem Standarddateinamen und -speicherort auf Ihrem lokalen Computer für die Konfigurationsdatei für die Authentifizierung aus. Ihr Administrator kann die Datei für Sie auf Ihren Computer kopieren. Wenn Ihnen die Datei manuell zur Verfügung gestellt wurde und auf Ihrem Computer gespeichert werden muss, verwenden Sie die Standardeinstellungen, um die gcloud-Authentifizierungsbefehle zu vereinfachen.

Verwenden Sie die im Folgenden aufgeführten Befehle, um die Konfigurationsdatei für die Authentifizierung an den Standardspeicherort zu kopieren:

Linux

mkdir -p  $HOME/.config/google/anthos/
cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml

Dabei ist [AUTH_CONFIG_FILE] der Name Ihrer Konfigurationsdatei für die Authentifizierung. Beispiel: kubectl-anthos-config.yaml.

macOS

mkdir -p  $HOME/Library/Preferences/google/anthos/
cp [AUTH_CONFIG_FILE] $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

Dabei ist [AUTH_CONFIG_FILE] der Name Ihrer Konfigurationsdatei für die Authentifizierung. Beispiel: kubectl-anthos-config.yaml.

Windows

md "%APPDATA%\google\anthos"
copy [AUTH_CONFIG_FILE] "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"

Dabei ist [AUTH_CONFIG_FILE] der Name Ihrer Konfigurationsdatei für die Authentifizierung. Beispiel: kubectl-anthos-config.yaml.

Wenn Sie oder Ihr Administrator einen anderen Dateinamen oder Speicherort verwenden (z. B. wenn Ihr Administrator die Datei unter einer sicheren URL bereitstellt), können Sie diese mit dem Flag --login-config bei jeder Authentifizierungsanfrage angeben. Weitere Informationen finden Sie im folgenden Abschnitt.

Authentifizieren Sie sich beim Cluster

Zum Authentifizieren bei Ihren Clustern verwenden Sie gcloud-Befehle.

  1. Führen Sie den Befehl gcloud anthos auth login aus, um den Authentifizierungsvorgang zu starten:

    gcloud anthos auth login \
     --cluster [CLUSTER_NAME] \
     --user [USER_NAME] \
     --login-config [AUTH_CONFIG_FILE_PATH] \
     --login-config-cert [CA_CERT_PEM_FILE] \
     --kubeconfig [CLUSTER_KUBECONFIG]

    Dabei gilt:

    • [CLUSTER_NAME] (optional) den Namen des Clusters angibt. Wenn dieses Flag weggelassen wird, werden Sie aufgefordert, einen der Cluster auszuwählen, die in Ihrer Konfigurationsdatei für die Authentifizierung angegeben sind.

    • [USER_NAME] ist optional und gibt den Nutzernamen für die in der kubeconfig-Datei gespeicherten Anmeldedaten an. Der Standardwert ist [CLUSTER_NAME]-anthos-default-user.

    • [AUTH_CONFIG_FILE_PATH] ist optional und gibt den benutzerdefinierten Pfad oder die URL an, unter dem bzw. unter der die Konfigurationsdatei für die Authentifizierung gespeichert ist oder gehostet wird. Sie können diesen Parameter weglassen, wenn sich die Datei am Standardspeicherort befindet. Beispiel: --login-config /path/to/custom/authentication-config.yaml.

    • [CA_CERT_PEM_FILE] ist optional und gibt den Pfad zu einer PEM-Zertifikatsdatei von Ihrer Zertifizierungsstelle an. Wenn Ihre Konfigurationsdatei für die Authentifizierung sicher gehostet wird, können Sie über eine HTTPS-Verbindung auf die Datei zugreifen. Beispiel: --login-config-cert my-cert.pem

    • [CLUSTER_KUBECONFIG] ist optional und gibt den benutzerdefinierten Pfad zur kubeconfig-Datei Ihres Clusters an. Die OIDC-ID-Tokens, die von Ihrem OpenID-Anbieter zurückgegeben werden, sind in der kubeconfig-Datei gespeichert.

      Verwenden Sie dieses Flag, wenn sich die kubeconfig-Datei nicht am Standardspeicherort befindet. Wenn dieses Flag weggelassen wird, werden am Standardspeicherort Authentifizierungstokens zur Datei kubeconfig hinzugefügt. Beispiel: --kubeconfig /path/to/custom.kubeconfig

    Beispiele:

    • Bei einem bestimmten Cluster authentifizieren:

      gcloud anthos auth login --cluster my-production-cluster
      
    • Mithilfe einer Eingabeaufforderung den Cluster für die Authentifizierung auswählen:

      gcloud anthos auth login
      

      Ergebnis:

      Please use the --cluster flag to specify a cluster from the list below:
      Source: $HOME/.config/google/anthos/kubectl-anthos-config.yaml
      1. Cluster: projects/1000000000000/locations/global/memberships/gke-gcp-cluster ServerIP: https://104.198.180.50:440
      2. Cluster: projects/1000000000000/locations/global/memberships/gke-baremetal-cluster ServerIP: https://104.198.180.51:440
      3. Cluster: projects/1000000000000/locations/global/memberships/gke-onprem-cluster ServerIP: https://104.198.180.52:440
      4. Cluster: projects/1000000000000/locations/global/memberships/gke-aws-cluster ServerIP: https://104.198.180.53:440
      
    • Gehostete Konfigurationsdatei für die Authentifizierung verwenden:

      gcloud anthos auth login \
       --cluster my-production-cluster \
       --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \
       --login-config-cert my-cert.pem
      
    • Wählen Sie bei der Auswahl einer Authentifizierungsoption eine Aufforderung aus. Weitere Informationen, einschließlich eines Beispiels, finden Sie unten im Abschnitt Authentifizierungsoption auswählen.

  2. Geben Sie im browserbasierten Zustimmungsbildschirm Ihre Anmeldedaten ein. Wenn der Vorgang erfolgreich war, sollte die Datei kubeconfig jetzt ein ID-Token enthalten, das von Ihren kubectl-Befehlen zur Authentifizierung beim Kubernetes API-Server auf Ihrem Cluster verwendet wird.

  3. Überprüfen Sie, ob die Authentifizierung erfolgreich war, indem Sie einen der kubectl-Befehle ausführen, um auf eine Ressource in Ihrem Cluster zuzugreifen. Wenn Sie beispielsweise Zugriff auf die Ressource "nodes" im Cluster haben (dieser Zugriff wird von Ihrem Clusteradministrator konfiguriert), sollten Sie in der Lage sein, den folgenden Befehl auszuführen und die Knoten des Clusters anzusehen:

    kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]

Informationen zur Fehlerbehebung im Zusammenhang mit dem Nutzerzugriff finden Sie unter Probleme mit dem Nutzerzugriff beheben.

Authentifizierungsmethode auswählen

Wenn der Clusteradministrator mehrere Identitätsanbieter für den Cluster konfiguriert hat (z. B. einen OIDC-Anbieter und einen LDAP-Server), aber keinen Standardanbieter für den Cluster konfiguriert hat, werden Sie bei der Anmeldung aufgefordert, eine Authentifizierungsoption auszuwählen, wie im folgenden Beispiel:

gcloud anthos auth login

Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel

Please enter your numeric choice:

1

Setting Preferred Authentication option to [LDAP Server]

Geben Sie eine numerische Option ein und melden Sie sich wie oben unter Bei dem Cluster authentifizieren beschrieben an.

Die ausgewählte Authentifizierungsoption wird gespeichert, bis entweder der Clusteradministrator den Standardanbieter für diesen Cluster ändert oder Sie ihn selbst ändern. Mit dem Flag --set-preferred-authentication können Sie Ihre bevorzugte Authentifizierungsoption ändern.

gcloud anthos auth login --set-preferred-authentication

Sie sollten ein Ergebnis wie das folgende Beispiel sehen, das Sie eine neue bevorzugte Authentifizierungsoption wählen lässt:

Your current authentication method is [1] AD Server. Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel

Please enter your numeric choice:

2

Setting Preferred Authentication option to [OIDC]

SSH zur Authentifizierung über einen Remote-Computer verwenden

Angenommen, Sie möchten eine SSH-Verbindung zu einem Remote-Computer herstellen und sich bei einem Cluster vom Remote-Computer authentifizieren. Dazu muss sich Ihre Konfigurationsdatei für die Authentifizierung auf dem Remote-Computer befinden und Sie müssen Ihren Open-ID-Anbieter von Ihrem lokalen Computer aus erreichen können.

Führen Sie auf Ihrem lokalen Computer den folgenden Befehl aus:

ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]

Dabei gilt:

  • [USER_NAME] und [REMOTE_MACHINE] sind die Standardwerte, die für die Anmeldung mit SSH verwendet werden.

  • [LOCAL_PORT] ist ein offener Port Ihrer Wahl auf Ihrem lokalen Computer, über den Sie auf den Remote-Computer zugreifen.

  • [REMOTE_PORT] ist der Port, den Sie für Ihre OIDC-Weiterleitungs-URL konfiguriert haben. Diesen Port finden Sie im Feld kubectlRedirectURI Ihrer Konfigurationsdatei für die Authentifizierung.

Führen Sie in Ihrer SSH-Shell den folgenden Befehl aus, um die Authentifizierung zu starten:

gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]

Dabei ist [AUTH_CONFIG_FILE] der Pfad Ihrer Konfigurationsdatei für die Authentifizierung auf dem Remote-Computer.

Geben Sie auf Ihrem lokalen Computer in einem Browser http://localhost:[LOCAL_PORT]/login ein und schließen Sie den OIDC-Anmeldevorgang ab.

Die Datei „kubeconfig“ enthält jetzt das Token, das Sie für den Zugriff auf den Cluster benötigen.

Prüfen Sie in der SSH-Shell, ob Sie Zugriff auf den Cluster haben:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes

Über die Google Cloud Console bei Clustern anmelden

Informationen zur Anmeldung bei Clustern über die Google Cloud Console finden Sie unter Über die Google Cloud Console mit Clustern arbeiten.