Risolvere i problemi di accesso degli utenti
Questo documento fornisce indicazioni per la risoluzione dei problemi di accesso degli utenti nel servizio GKE Identity.
gcloud anthos create-login-config
non è in grado di recuperare clientconfig
Questo problema si verifica in uno dei seguenti casi:
- Il file kubeconfig passato a
gcloud anthos create-login-config
non è corretto. - La risorsa personalizzata ClientConfig non è presente nel cluster (GKE Identity Service non è installato sul cluster).
Messaggio di errore
failed to get clientconfig default in namespace kube-public
Soluzione
Per risolvere il problema:
- Assicurati di disporre del file kubeconfig corretto per il tuo cluster.
Per verificare se la risorsa personalizzata ClientConfig è nel cluster, esegui questo comando:
kubectl --kubeconfig KUBECONFIG get clientconfig default -n kube-public
Se ClientConfig non è presente nel cluster, installa e configura GKE Identity Service sul cluster. Per ulteriori informazioni sulle opzioni di configurazione dei cluster, consulta Opzioni di configurazione per i cluster.
gcloud anthos create-login-config
non riuscito a causa di un nome del cluster duplicato
Questo problema si verifica se tenti di creare una configurazione di accesso per un cluster in un file che contiene già una configurazione di accesso per questo cluster.
Messaggio di errore
error merging with file FILENAME because FILENAME contains a cluster with the same name as the one read from KUBECONFIG.
Soluzione
Per risolvere il problema, utilizza il flag --output
per specificare un nuovo file di destinazione.
Se non fornisci --output
, questi dati di configurazione dell'accesso vengono scritti in un file denominato kubectl-anthos-config.yaml
nella directory attuale.
gcloud anthos auth login
non va a buon fine con proxyconnect tcp
Questo problema si verifica in caso di errore nelle configurazioni variabile di ambiente https_proxy
o HTTPS_PROXY
. Se nelle variabili di ambiente è specificato un https://
, le librerie client HTTP di GoLang potrebbero non funzionare se il proxy è configurato per gestire le connessioni HTTPS utilizzando altri protocolli come SOCK5.
Messaggio di errore
proxyconnect tcp: tls: first record does not look like a TLS handshake
Soluzione
Per risolvere questo problema, modifica le variabili di ambiente https_proxy
e HTTPS_PROXY
in modo da omettere https:// prefix
. Su Windows, modifica le
variabili di ambiente di sistema.
Ad esempio, modifica il valore della variabile di ambiente https_proxy
da https://webproxy.example.com:8000
a webproxy.example.com:8000
.
L'accesso al cluster non riesce quando viene utilizzato un kubeconfig generato da gcloud anthos auth login
Questo problema si verifica quando il server API Kubernetes non è in grado di autorizzare l'utente per uno dei seguenti motivi:
- È presente un errore nella configurazione utilizzata per accedere con il comando
gcloud anthos auth login
. - I criteri RBAC necessari sono errati o mancanti per l'utente.
Messaggio di errore
Unauthorized
Soluzione
Per risolvere il problema:
Verifica la configurazione utilizzata per accedere.
Configurazione OIDC
La sezione
authentication.oidc
nel file di configurazione del cluster utente contiene i campigroup
eusername
utilizzati per impostare i flag--oidc-group-claim
e--oidc-username-claim
nel server API Kubernetes. Quando al server API viene presentato il token di identità di un utente, lo inoltra a GKE Identity Service, che restituisce igroup-claim
eusername-claim
estratti al server API. Il server API utilizza la risposta per verificare che il gruppo o l'utente corrispondente disponga delle autorizzazioni corrette.Verifica che le attestazioni impostate per
group
euser
nella sezioneauthentication.oidc
del file di configurazione del cluster siano presenti nel token ID.Verifica i criteri RBAC applicati.
Per scoprire come configurare i criteri RBAC corretti per GKE Identity Service, consulta Configurare il controllo dell'accesso basato sui ruoli (RBAC).
RBAC per gruppi non funzionanti per i provider OIDC
Verifica che il token ID contenga le informazioni sul gruppo
Dopo aver eseguito il comando
gcloud anthos auth login
per avviare il flusso di autenticazione OIDC, il token ID viene archiviato nel filekubeconfig
nel campoid-token
. Utilizza jwt.io per decodificare il token ID e verificare se contiene le informazioni sul gruppo dell'utente come previsto.Se il token ID non dispone di informazioni sul gruppo dell'utente, configura correttamente il provider OIDC in modo che restituisca le informazioni sul gruppo in base alla documentazione del provider OIDC. Ad esempio, se utilizzi la configurazione OIDC del provider di identità Okta, segui la documentazione del provider di identità Okta per configurare i gruppi nel token ID.
Se il token ID contiene informazioni sul gruppo, verifica che la chiave delle informazioni sul gruppo nel token ID corrisponda al campo
groupsClaim
configurato nella sezioneoidc
.Ad esempio, se il token ID contiene informazioni sul gruppo nella chiave
groups
:"groups" : ["group1", "group2" ...]
il valore del campo
groupsClaim
deve esseregroups
nella sezioneoidc
.Dopo aver modificato la configurazione nella sezione
oidc
, assicurati di eseguire di nuovo le istruzioni elencate in Configurare l'accesso utente e Accedere ai cluster.
Risoluzione dei problemi relativi ai provider di identità
In caso di problemi con l'utilizzo di OIDC o LDAP con il tuo cluster GKE, segui i passaggi riportati in questa sezione per risolvere i problemi di GKE Identity Service e determinare se si è verificato un problema di configurazione del provider di identità.
Abilita il log di debug del servizio identità GKE
Per contribuire a risolvere i problemi relativi all'identità nel cluster, abilita il log di debug di GKE Identity Service.
Applica la patch al cluster esistente con
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
Sostituisci quanto segue:
LOG_LEVEL
: per i log più dettagliati, imposta questo valore sul livello3
durante la risoluzione dei problemi.KUBECONFIG
: il percorso del file kubeconfig del tuo cluster utente.
Controlla il log del container di GKE Identity Service
Esamina il contenuto dei log dei container di GKE Identity Service per verificare la presenza di eventuali errori o avvisi.
Per esaminare i log, utilizza
kubectl logs
:kubectl logs -f -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIG
Sostituisci
KUBECONFIG
con il percorso del file kubeconfig del cluster utente.
Riavvia il pod GKE Identity Service
Se i log dei container mostrano problemi, riavvia il pod GKE Identity Service.
Per riavviare il pod GKE Identity Service, elimina il pod esistente. In sostituzione, viene creato automaticamente un nuovo pod in sostituzione.
kubectl delete pod -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIG
Sostituisci
KUBECONFIG
con il percorso del file kubeconfig del cluster utente.
Risolvi i problemi di connettività al provider di identità
Se il pod GKE Identity Service sembra essere in esecuzione correttamente, verifica la connettività al provider di identità remoto.
Avvia un pod occupato nello stesso spazio dei nomi del pod del servizio GKE Identity:
kubectl run curl --image=radial/busyboxplus:curl \ -n anthos-identity-service -- sleep 3000 \ --kubeconfig KUBECONFIG
Sostituisci
KUBECONFIG
con il percorso del file kubeconfig del cluster utente.Per verificare se riesci a recuperare l'URL di rilevamento, eseguilo nel pod emptybox ed esegui il comando
curl
:kubectl exec pod/curl -n anthos-identity-service -- \ curl ISSUER_URL \ --kubeconfig KUBECONFIG
Sostituisci quanto segue:
ISSUER_URL
: l'URL dell'emittente del tuo provider di identità.KUBECONFIG
: il percorso del file kubeconfig del tuo cluster utente.
Una risposta riuscita è un risultato JSON con gli endpoint dettagliati del provider di identità.
Se il comando precedente non restituisce il risultato previsto, contatta l'amministratore del provider di identità per ulteriore assistenza.
Accesso LDAP non funzionante per il cluster di amministrazione di GKE su VMware
Attualmente LDAP è supportato solo per il cluster utente GKE su VMware.