Mit einer Konfigurationsdatei anmelden
Mit GKE Identity Service können Sie sich über die Befehlszeile mit einem Nutzernamen und einem Passwort eines externen Identitätsanbieters in konfigurierten Clustern anmelden. Folgen Sie der Anleitung auf dieser Seite, wenn Ihr Clusteradministrator eine Anmeldekonfigurationsdatei freigegeben hat, die Sie bei der Authentifizierung mit der gcloud CLI verwenden können. Weitere Informationen zum Zugriff auf Cluster finden Sie unter Zugriffsmethode für die Anmeldung bei Clustern auswählen.
Anmelde-Workflow
Im Folgenden wird der Workflow dargestellt, mit dem GKE Identity Service sich mit einer Konfigurationsdatei für die Anmeldung bei konfigurierten Clustern anmelden kann. Der genaue Ablauf hängt vom Typ des verwendeten Identitätsanbieters ab.
OIDC-Workflow
Bei OIDC-Anbietern registriert ein Clusteradministrator GKE Identity Service als Clientanwendung für den Identitätsanbieter und richtet jeden Cluster ein. Bei Bedarf können sie mithilfe der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes eine differenzierte Zugriffssteuerung hinzufügen.
So können Sie sich bei Clustern anmelden:
Befehlszeilenzugriff
- Authentifizieren: Führen Sie den Befehl
gcloud anthos auth login
aus und geben Sie Ihre OIDC-Anmeldedaten ein. Damit wird ein Identitätstoken vom Anbieter abgerufen. - Kubeconfig aktualisieren: Das abgerufene Token wird der kubeconfig-Datei automatisch hinzugefügt.
- Auf Cluster zugreifen: Verwenden Sie
kubectl
, um mit Ihrem Cluster zu interagieren. Der Kubernetes API-Server verwendet GKE Identity Service, um Ihr Token zu validieren und den Zugriff zu autorisieren.
Zugriff auf die Google Cloud Console
- Anmeldung initiieren: Wenn Sie sich über die Google Cloud Console anmelden, werden Sie zur Anmeldeseite des Identitätsanbieters weitergeleitet.
- Authentifizieren: Geben Sie Ihre Anmeldedaten ein und melden Sie sich erfolgreich an.
- Auf Cluster zugreifen: Kehren Sie zur Google Cloud Console zurück, um Ihre Clusterressourcen aufzurufen und zu verwalten.
LDAP-Workflow
Bei LDAP-Anbietern richtet ein Clusteradministrator GKE Identity Service für jeden Cluster ein, der die Anmeldedaten des LDAP-Clients enthält. Clusteradministratoren können bei Bedarf eine präzise Zugriffssteuerung mithilfe der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes hinzufügen.
Befehlszeilenzugriff
- Anmeldung initiieren: Führen Sie den Befehl
gcloud anthos auth login
aus und geben Sie Ihre LDAP-Anmeldedaten ein. - Tokengenerierung: GKE Identity Service fragt den LDAP-Server ab, ruft Ihre Nutzerattribute ab und verpackt diese Attribute in einem kurzlebigen Token (STS). Ihre LDAP-Anmeldedaten werden nicht lokal gespeichert.
- Kubeconfig-Aktualisierung: Das STS-Token wird Ihrer
kubeconfig
-Datei automatisch hinzugefügt. - Clusterzugriff: Verwenden Sie
kubectl
, um mit Ihrem Cluster zu interagieren. Der Kubernetes API-Server verwendet GKE Identity Service, um Ihr Token zu validieren und den Zugriff zu autorisieren. Standardmäßig läuft das Token nach einer Stunde ab, sodass sich der Nutzer neu anmelden muss.
Zur Authentifizierung bei Clustern über die Befehlszeile müssen Sie gcloud
-Authentifizierungsbefehle mit einer Anmeldekonfigurationsdatei ausführen, die von Ihrem Clusteradministrator bereitgestellt wird.
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.
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]
Ersetzen Sie dabei Folgendes:
[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 derkubeconfig
-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 Dateikubeconfig
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 finden Sie unter Authentifizierungsmethode auswählen.
Geben Sie im browserbasierten Zustimmungsbildschirm Ihre Anmeldedaten ein. Wenn der Vorgang erfolgreich war, sollte die Datei
kubeconfig
jetzt ein ID-Token enthalten, das von Ihrenkubectl
-Befehlen zur Authentifizierung beim Kubernetes API-Server auf Ihrem Cluster verwendet wird.Ü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
Um eine Verbindung zu einem Remote-Computer herzustellen und sich bei einem Cluster mit SSH zu authentifizieren, muss sich Ihre Konfigurationsdatei für die Authentifizierung auf dem Remote-Computer befinden und Sie müssen Ihren OpenID-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]
Ersetzen Sie dabei Folgendes:
[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