Probleme mit dem Nutzerzugriff beheben
Dieses Dokument enthält Hinweise zur Fehlerbehebung bei Problemen mit dem Nutzerzugriff in GKE Identity Service.
gcloud anthos create-login-config
kann clientconfig nicht abrufen
Dieses Problem tritt in einem der folgenden Fälle auf:
- Die an
gcloud anthos create-login-config
übergebene kubeconfig-Datei ist falsch. - Die benutzerdefinierte ClientConfig-Ressource ist im Cluster nicht vorhanden (GKE Identity Service ist nicht auf dem Cluster installiert).
Fehlermeldung
failed to get clientconfig default in namespace kube-public
Lösung
So beheben Sie das Problem:
- Prüfen Sie, ob Sie die richtige kubeconfig-Datei für Ihren Cluster haben.
Führen Sie den folgenden Befehl aus, um zu prüfen, ob sich die benutzerdefinierte ClientConfig-Ressource im Cluster befindet:
kubectl --kubeconfig KUBECONFIG get clientconfig default -n kube-public
Wenn die ClientConfig nicht im Cluster vorhanden ist, installieren und konfigurieren Sie den GKE Identity Service im Cluster. Weitere Informationen zu den Optionen für die Clustereinrichtung finden Sie unter Einrichtungsoptionen für Cluster.
gcloud anthos create-login-config
schlägt aufgrund eines doppelten Clusternamens fehl
Dieses Problem tritt auf, wenn Sie versuchen, die Anmeldekonfiguration für einen Cluster in einer Datei zu erstellen, die bereits eine Anmeldekonfiguration für diesen Cluster enthält.
Fehlermeldung
error merging with file FILENAME because FILENAME contains a cluster with the same name as the one read from KUBECONFIG.
Lösung
Verwenden Sie zum Beheben dieses Problems das Flag --output
, um eine neue Zieldatei anzugeben.
Wenn Sie --output
nicht angeben, werden die Konfigurationsdaten für die Anmeldung in eine Datei mit dem Namen kubectl-anthos-config.yaml
im aktuellen Verzeichnis geschrieben.
gcloud anthos auth login
schlägt mit proxyconnect tcp
fehl
Dieses Problem tritt auf, wenn die Konfiguration der Umgebungsvariablen https_proxy
oder HTTPS_PROXY
fehlerhaft ist. Wenn in den Umgebungsvariablen https://
angegeben ist, können die GoLang-HTTP-Clientbibliotheken fehlschlagen, wenn der Proxy für die Verarbeitung von HTTPS-Verbindungen mit anderen Protokollen konfiguriert wird, wie etwa SOCK5.
Fehlermeldung
proxyconnect tcp: tls: first record does not look like a TLS handshake
Lösung
Um dieses Problem zu beheben, ändern Sie die Umgebungsvariablen https_proxy
und HTTPS_PROXY
so, dass das https:// prefix
weggelassen wird. Wenn Sie Windows verwenden, ändern Sie die Systemumgebungsvariablen.
Ändern Sie beispielsweise den Wert der Umgebungsvariablen https_proxy
von https://webproxy.example.com:8000
in webproxy.example.com:8000
.
Clusterzugriff schlägt fehl, wenn von gcloud anthos auth login
generierte kubeconfig verwendet wird
Dieses Problem tritt auf, wenn der Kubernetes API-Server den Nutzer aus einem der folgenden Gründe nicht autorisieren kann:
- In der Konfiguration, die zur Anmeldung mit dem Befehl
gcloud anthos auth login
verwendet wird, ist ein Fehler aufgetreten. - Die erforderlichen RBAC-Richtlinien sind falsch oder fehlen für den Nutzer.
Fehlermeldung
Unauthorized
Lösung
So beheben Sie das Problem:
Prüfen Sie die Konfiguration, die für die Anmeldung verwendet wird.
OIDC-Konfiguration
Der Abschnitt
authentication.oidc
in der Konfigurationsdatei des Nutzerclusters enthält die Feldergroup
undusername
, die verwendet werden, um die Flags--oidc-group-claim
und--oidc-username-claim
auf dem Kubernetes API-Server festzulegen. Wenn der API-Server das Identitätstoken eines Nutzers erhält, leitet er das Token an den GKE Identity Service weiter, der die extrahiertengroup-claim
undusername-claim
an den API-Server zurückgibt. Der API-Server prüft anhand der Antwort, ob die entsprechende Gruppe oder der Nutzer über die erforderlichen Berechtigungen verfügt.Prüfen Sie, ob die für
group
unduser
im Abschnittauthentication.oidc
der Clusterkonfigurationsdatei festgelegten Anforderungen im ID-Token vorhanden sind.Angewendete RBAC-Richtlinien prüfen.
Informationen zum Einrichten der korrekten RBAC-Richtlinien für GKE Identity Service finden Sie unter Rollenbasierte Zugriffssteuerung (RBAC) einrichten.
RBACs für Gruppen, die nicht für OIDC-Anbieter funktionieren
Prüfen, ob das ID-Token die Gruppeninformationen enthält
Nachdem Sie den Befehl
gcloud anthos auth login
ausgeführt haben, um den OIDC-Authentifizierungsablauf zu initiieren, wird das ID-Token in der Dateikubeconfig
im Feldid-token
gespeichert. Decodieren Sie das ID-Token mit jwt.io und prüfen Sie, ob es wie erwartet die Gruppeninformationen des Nutzers enthält.Wenn das ID-Token keine Gruppeninformationen des Nutzers enthält, konfigurieren Sie den OIDC-Anbieter so, dass die Gruppeninformationen gemäß der Dokumentation Ihres OIDC-Anbieters zurückgegeben werden. Wenn Sie beispielsweise die OIDC-Konfiguration des Okta Identity-Anbieters verwenden, folgen Sie der Dokumentation des Okta Identity-Anbieters, um Gruppen im ID-Token zu konfigurieren.
Wenn das ID-Token Gruppeninformationen enthält, prüfen Sie, ob der Gruppeninformationsschlüssel im ID-Token mit dem im Abschnitt
oidc
konfigurierten FeldgroupsClaim
übereinstimmt.Wenn das ID-Token beispielsweise Gruppeninformationen im Schlüssel
groups
enthält:"groups" : ["group1", "group2" ...]
Dann sollte der Wert des
groupsClaim
-Felds im Abschnittoidc
groups
lauten.Nachdem Sie die Konfiguration im Abschnitt
oidc
geändert haben, müssen Sie die Anleitungen unter Nutzerzugriff einrichten und Auf Cluster zugreifen noch einmal ausführen.
Fehlerbehebung bei Identitätsanbietern
Wenn Sie Probleme bei der Verwendung von OIDC oder LDAP mit Ihrem GKE-Cluster haben, führen Sie die Schritte in diesem Abschnitt aus, um Probleme mit dem GKE Identity Service zu beheben und zu ermitteln, ob ein Problem mit der Konfiguration Ihres Identitätsanbieters vorliegt.
Debug-Log für GKE Identity Service aktivieren
Um identitätsbezogene Probleme in Ihrem Cluster zu beheben, aktivieren Sie das Debug-Log des GKE Identity Service.
Patchen Sie Ihren vorhandenen Cluster mit
kubectl patch
:kubectl patch deployment ais \ -n anthos-identity-service --type=json \ -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--vmodule=cloud/identity/hybrid/charon/*=LOG_LEVEL"}]' \ --kubeconfig KUBECONFIG
Ersetzen Sie Folgendes:
LOG_LEVEL
: Für sehr ausführliche Logs legen Sie für diesen Wert bei der Fehlerbehebung auf3
fest.KUBECONFIG
: Der Pfad zur Kubeconfig-Datei des Nutzerclusters.
Containerlog des GKE Identity Service prüfen
Prüfen Sie den Inhalt der Containerlogs des GKE Identity Service auf Fehler oder Warnungen.
Prüfen Sie die Logs mit
kubectl logs
:kubectl logs -f -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIG
Ersetzen Sie
KUBECONFIG
durch den Pfad der kubeconfig-Datei des Nutzerclusters.
GKE Identity Service-Pod neu starten
Wenn die Containerlogs Probleme anzeigen, starten Sie den GKE Identity Service-Pod neu.
Löschen Sie den vorhandenen Pod, um den GKE Identity Service-Pod neu zu starten. Als Ersatz wird automatisch ein neuer Pod erstellt.
kubectl delete pod -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIG
Ersetzen Sie
KUBECONFIG
durch den Pfad der kubeconfig-Datei des Nutzerclusters.
Fehler bei der Verbindung zum Identitätsanbieter beheben
Wenn der GKE Identity Service-Pod scheinbar ordnungsgemäß ausgeführt wird, testen Sie die Verbindung zum Remote-Identitätsanbieter.
Starten Sie einen busybox-Pod im selben Namespace wie den GKE Identity Service-Pod:
kubectl run curl --image=radial/busyboxplus:curl \ -n anthos-identity-service -- sleep 3000 \ --kubeconfig KUBECONFIG
Ersetzen Sie
KUBECONFIG
durch den Pfad der kubeconfig-Datei des Nutzerclusters.Wenn Sie prüfen möchten, ob Sie die Erkennungs-URL abrufen können, führen Sie den busybox-Pod und den
curl
-Befehl aus:kubectl exec pod/curl -n anthos-identity-service -- \ curl ISSUER_URL \ --kubeconfig KUBECONFIG
Ersetzen Sie Folgendes:
ISSUER_URL
: Aussteller-URL Ihres Identitätsanbieters.KUBECONFIG
: Der Pfad zur Kubeconfig-Datei des Nutzerclusters.
Eine erfolgreiche Antwort ist ein JSON-Ergebnis mit den detaillierten Identitätsanbietern.
Wenn der vorherige Befehl nicht das erwartete Ergebnis zurückgibt, wenden Sie sich an den Administrator Ihres Identitätsanbieters.
LDAP-Anmeldung funktioniert nicht für Anthos on VMware-Administratorcluster
LDAP wird derzeit nur für den Anthos auf VMware-Nutzercluster unterstützt.