Risolvere i problemi di accesso degli utenti

Questo documento fornisce indicazioni per la risoluzione dei problemi di accesso degli utenti nel servizio di identità GKE.

gcloud anthos create-login-config non riesce a recuperare clientconfig

Questo problema si verifica in uno dei seguenti casi:

  • Il file kubeconfig passato gcloud anthos create-login-config non è corretto.
  • La risorsa personalizzata ClientConfig non è presente nel cluster (GKE Identity Service non è installato nel cluster).

Messaggio di errore

  failed to get clientconfig default in namespace kube-public
  

Soluzione

Per risolvere il problema:

  1. Assicurati di avere il file kubeconfig corretto per il tuo cluster.
  2. Per verificare se la risorsa personalizzata ClientConfig si trova 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 sui cluster di configurazione, vedi Opzioni di configurazione per i cluster.

gcloud anthos create-login-config non riesce a causa di un nome 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 specifichi il valore --output, questi dati di configurazione dell'accesso vengono scritti in un denominato kubectl-anthos-config.yaml nella directory corrente.

gcloud anthos auth login non riesce con proxyconnect tcp

Questo problema si verifica quando si verifica un errore in https_proxy o HTTPS_PROXY configurazioni variabile di ambiente. Se c'è un valore https:// specificato in variabili di ambiente, le librerie client HTTP di GoLang potrebbero generare errori se è configurato per gestire le connessioni HTTPS utilizzando altri protocolli come CALZIO5.

Messaggio di errore

  proxyconnect tcp: tls: first record does not look like a TLS handshake
  

Soluzione

Per risolvere il problema, modifica gli ambienti https_proxy e HTTPS_PROXY per omettere https:// prefix. Su Windows, modifica il sistema variabili di ambiente. Ad esempio, modifica il valore dell'attributo https_proxy variabile di ambiente da https://webproxy.example.com:8000 a webproxy.example.com:8000.

L'accesso al cluster non riesce quando si utilizza kubeconfig generato da gcloud anthos auth login

Questo problema si verifica quando il server API Kubernetes non è in grado di autorizzare utente per uno dei seguenti motivi:

  • Si è verificato 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:

  1. Verifica la configurazione utilizzata per l'accesso.

    Configurazione OIDC

    La sezione authentication.oidc nel file di configurazione del cluster utente ha Campi group e username utilizzati per impostare --oidc-group-claim e --oidc-username-claim nel server API Kubernetes. Quando l'API server riceve il token di identità di un utente, lo inoltra GKE Identity Service, che restituisce gli elementi group-claim e username-claim al server API. Il server API utilizza la risposta a verifica che il gruppo o l'utente corrispondente disponga delle autorizzazioni corrette.

    Verifica che le rivendicazioni impostate per group e user in authentication.oidc del file di configurazione del cluster sono presenti nel token ID.

  2. 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 i gruppi non funzionanti per i provider OIDC

  1. 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 file kubeconfig nel campo id-token. Utilizza jwt.io per decodificare il token ID e verificare se contiene le informazioni sul gruppo dell'utente, come previsto.

  2. Se il token ID non contiene informazioni sul gruppo dell'utente, configura correttamente il provider OIDC in modo da restituire le informazioni sul gruppo in base alla documentazione del provider OIDC. Ad esempio, se utilizzi la configurazione OIDC del provider Okta Identity, segui la documentazione del provider di identità Okta per configurare i gruppi nel token ID.

  3. 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 sezione oidc.

    Ad esempio, se il token ID contiene informazioni sul gruppo nella chiave groups:

    "groups" : ["group1", "group2" ...]
    

    il valore del campo groupsClaim dovrebbe essere groups nella sezione oidc.

    Dopo aver modificato la configurazione nella sezione oidc, assicurati di eseguire di nuovo le istruzioni elencate in Configurare l'accesso degli utenti e Accesso ai cluster.

Risolvere i problemi relativi ai provider di identità

Se hai problemi a utilizzare OIDC o LDAP con il tuo cluster GKE, segui le in questa sezione per risolvere i problemi del servizio di identità GKE e ottenere assistenza determinare se c'è un problema di configurazione del provider di identità.

Abilita il log di debug di GKE Identity Service

Per risolvere i problemi relativi all'identità nel cluster, abilita il Log di debug di GKE Identity Service.

  1. Applica le 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: imposta questo valore per i log con il livello di dettaglio più dettagliato al livello 3 durante la risoluzione dei problemi.

    • KUBECONFIG: il percorso kubeconfig del cluster utente .

Controlla il log dei container di GKE Identity Service

Esamina i contenuti dei log dei container di GKE Identity Service per trovare errori o avvisi.

  1. 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 cluster utente kubeconfig.

riavvia il pod GKE Identity Service

Se i log del container mostrano problemi, riavvia il pod GKE Identity Service.

  1. Per riavviare il pod GKE Identity Service, elimina il pod esistente. Un nuovo un pod viene creato automaticamente in sostituzione.

    kubectl delete pod -l k8s-app=ais \
      -n anthos-identity-service \
      --kubeconfig KUBECONFIG
    

    Sostituisci KUBECONFIG con il percorso del cluster utente kubeconfig.

Risoluzione dei problemi di connettività al provider di identità

Se il pod GKE Identity Service sembra essere in esecuzione correttamente, testa la connettività al provider di identità remoto.

  1. avvia un pod occupato nello stesso spazio dei nomi di GKE Identity Service pod:

    kubectl run curl --image=radial/busyboxplus:curl \
      -n anthos-identity-service -- sleep 3000 \
      --kubeconfig KUBECONFIG
    

    Sostituisci KUBECONFIG con il percorso del cluster utente kubeconfig.

  2. Per verificare se riesci a recuperare l'URL di rilevamento, esegui il pod nella casella occupato 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 kubeconfig del cluster utente .

    Una risposta corretta è un risultato JSON con il provider di identità dettagliato endpoint.

  3. Se il comando precedente non restituisce il risultato previsto, contatta il tuo come amministratore del provider di identità per ulteriore assistenza.

Accesso LDAP non funzionante per il cluster di amministrazione Google Distributed Cloud

LDAP è attualmente supportato solo per il cluster utente Google Distributed Cloud.