Puoi diagnosticare e risolvere gli errori di autenticazione e autorizzazione in Google Distributed Cloud controllando l'installazione di gcloud anthos auth, i token, le autorizzazioni RBAC, la connessione di rete e la configurazione di GKE Identity Service. Questi controlli ti aiutano a isolare gli errori OpenID Connect (OIDC) e Lightweight Directory Access Protocol (LDAP) e a ripristinare l'accesso degli utenti ai tuoi cluster.
Prima di risolvere i problemi di autenticazione, verifica di aver configurato un provider di identità esterno, ad esempio Google OIDC, Microsoft AD FS, Microsoft Entra ID, Okta o un provider LDAP. Per esaminare i log dettagliati delle richieste e testare la raggiungibilità del provider, consulta la guida alla risoluzione dei problemi del provider di identità GKE Identity Service.
Risoluzione dei problemi generali
I seguenti suggerimenti per la risoluzione dei problemi possono aiutarti a risolvere i problemi generali di autenticazione e autorizzazione con Google Distributed Cloud. Se questi problemi non si applicano o se hai problemi con OIDC o LDAP, vai alla sezione sulla risoluzione dei problemi di GKE Identity Service.
Mantieni gcloud anthos auth aggiornato
Puoi evitare molti problemi comuni verificando che i componenti dell'installazione di gcloud anthos auth siano aggiornati.
Devono essere verificate due parti. Il comando gcloud anthos auth ha una logica nel componente principale di Google Cloud CLI e un componente anthos-auth pacchettizzato separatamente.
Per aggiornare Google Cloud CLI:
gcloud components updatePer aggiornare il componente
anthos-auth:gcloud components install anthos-auth
Configurazione del provider non valida
Se la configurazione del provider di identità non è valida, dopo aver fatto clic su LOGIN, verrà visualizzata una schermata di errore del provider di identità. Segui le istruzioni specifiche del provider per configurare correttamente il provider o il cluster.
Configurazione non valida
Se la console Google Cloud non riesce a leggere la configurazione OIDC dal tuo cluster, il pulsante LOGIN è disattivato. Per risolvere i problemi relativi alla configurazione OIDC del cluster, consulta la sezione Risoluzione dei problemi relativi a OIDC in questo documento.
Autorizzazioni non valide
Se completi il flusso di autenticazione, ma non vedi ancora i dettagli del cluster, assicurati di aver concesso le autorizzazioni RBAC corrette all'account che hai utilizzato con OIDC. Questo potrebbe essere un account diverso da quello che utilizzi per accedere alla console Google Cloud .
Token di aggiornamento mancante
Il seguente problema si verifica quando il server di autorizzazione richiede il consenso, ma non è stato fornito il parametro di autenticazione richiesto.
Error: missing 'RefreshToken' field in 'OAuth2Token' in credentials struct
Per risolvere il problema, nella risorsa ClientConfig, aggiungi prompt=consent al campo authentication.oidc.extraParams. Poi rigenera il file di autenticazione del client.
Token di aggiornamento scaduto
Il seguente problema si verifica quando il token di aggiornamento nel file kubeconfig è scaduto:
Unable to connect to the server: Get {DISCOVERY_ENDPOINT}: x509:
certificate signed by unknown authority
Per risolvere il problema, esegui di nuovo il comando gcloud anthos auth login.
gcloud anthos auth login non riesce con proxyconnect tcp
Questo problema si verifica quando si verifica un errore nelle configurazioni variabile di ambiente https_proxy o HTTPS_PROXY. Se nelle variabili di ambiente è specificato https://, le librerie client HTTP GoLang potrebbero non riuscire se il proxy è configurato per gestire le connessioni HTTPS utilizzando altri protocolli come SOCK5.
Potrebbe essere restituito il seguente messaggio di errore di esempio:
proxyconnect tcp: tls: first record does not look like a TLS handshake
Per risolvere il 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 si utilizza il file kubeconfig generato da gcloud anthos auth login
Questo problema si verifica quando il server API Kubernetes non è in grado di autorizzare l'utente. Questo può accadere se gli RBAC appropriati sono mancanti o errati o se si verifica un errore nella configurazione OIDC del cluster. Potrebbe essere visualizzato il seguente errore di esempio:
Unauthorized
Per risolvere questo problema, completa i seguenti passaggi:
Nel file kubeconfig generato da
gcloud anthos auth login, copia il valore diid-token.kind: Config ... users: - name: ... user: auth-provider: config: id-token: xxxxyyyyInstalla jwt-cli ed esegui:
jwt ID_TOKENVerifica la configurazione OIDC.
La risorsa
ClientConfigha i campigroupeusername. Questi campi vengono utilizzati per impostare i flag--oidc-group-claime--oidc-username-claimnel server API Kubernetes. Quando al server API viene presentato il token, questo lo inoltra a GKE Identity Service, che restituiscegroup-claimeusername-claimestratti 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
groupeusernella risorsaClientConfigsiano presenti nel token ID.Controlla gli RBAC applicati.
Verifica che esista un RBAC con le autorizzazioni corrette per l'utente specificato da
username-claimo per uno dei gruppi elencatigroup-claimnel passaggio precedente. Il nome dell'utente o del gruppo nel RBAC deve essere preceduto dausernameprefixogroupprefixspecificato nella risorsaClientConfig.Se
usernameprefixè vuoto eusernameè un valore diverso daemail, il prefisso predefinito èissuerurl#. Per disattivare i prefissi dei nomi utente, impostausernameprefixsu-.Per ulteriori informazioni sui prefissi di utenti e gruppi, consulta Autenticazione con OIDC.
Risorsa
ClientConfig:oidc: ... username: "unique_name" usernameprefix: "-" group: "group" groupprefix: "oidc:"Token ID:
{ ... "email": "cluster-developer@example.com", "unique_name": "EXAMPLE\cluster-developer", "group": [ "Domain Users", "EXAMPLE\developers" ], ... }Le seguenti associazioni RBAC concedono a questo gruppo e a questo utente il ruolo del cluster
pod-reader. Tieni presente che nel campo del nome è presente una singola barra anziché una doppia barra:ClusterRoleBinding di gruppo:
apiVersion: kind: ClusterRoleBinding metadata: name: example-binding subjects: - kind: Group name: "oidc:EXAMPLE\developers" apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: pod-reader apiGroup: rbac.authorization.k8s.ioClusterRoleBinding utente:
apiVersion: kind: ClusterRoleBinding metadata: name: example-binding subjects: - kind: User name: "EXAMPLE\cluster-developer" apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: pod-reader apiGroup: rbac.authorization.k8s.ioControlla i log del server API Kubernetes.
Se il plug-in OIDC configurato nel server API Kubernetes non si avvia correttamente, il server API restituisce un errore
Unauthorizedquando viene presentato con il token ID. Per verificare se si sono verificati problemi con il plug-in OIDC nel server API, esegui:kubectl logs statefulset/kube-apiserver -n USER_CLUSTER_NAME \ --kubeconfig ADMIN_CLUSTER_KUBECONFIGSostituisci quanto segue:
USER_CLUSTER_NAME: il nome del cluster utente per cui visualizzare i log.ADMIN_CLUSTER_KUBECONFIG: il file kubeconfig del cluster di amministrazione.
Errore durante la convalida della configurazione del cluster
Quando provi a eseguire un comando bmctl, potresti riscontrare il seguente errore:
Error validating cluster config: 3 errors occurred:
* GKEConnect check failed: Get https://gkehub.googleapis.com/v1beta1/projects/project/locations/global/memberships/admin: oauth2: cannot fetch token: 400 Bad Request
Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}
* ClusterOperations check failed: Post https://cloudresourcemanager.googleapis.com/v1/projects/project:testIamPermissions?alt=json&prettyPrint=false: oauth2: cannot fetch token: 400 Bad Request
Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}
* GCR pull permission for bucket: artifacts.anthos-baremetal-release.appspot.com failed: Get https://storage.googleapis.com/storage/v1/b/artifacts.anthos-baremetal-release.appspot.com/iam/testPermissions?alt=json&permissions=storage.objects.get&permissions=storage.objects.list&prettyPrint=false: oauth2: cannot fetch token: 400 Bad Request
Response: {"error":"invalid_grant","error_description":"Invalid JWT Signature."}
Questo errore si verifica probabilmente perché stai utilizzando una chiave account di servizio scaduta. Per generare una nuova chiave del account di servizio, segui le istruzioni riportate in Crea ed elimina le account di servizio account.
Risolvere i problemi relativi a OIDC
Quando l'autenticazione OIDC non funziona per Google Distributed Cloud, in genere la specifica OIDC nella risorsa ClientConfig non è stata configurata correttamente.
La risorsa ClientConfig fornisce istruzioni per esaminare i log e la specifica OIDC per identificare la causa di un problema OIDC.
Consulta la guida alla risoluzione dei problemi del provider di identità di GKE Identity Service per informazioni su come attivare ed esaminare i log delle identità e testare la connettività. Dopo aver verificato che GKE Identity Service funziona come previsto o aver identificato un problema, consulta le seguenti informazioni per la risoluzione dei problemi di OIDC.
Controlla la specifica OIDC nel cluster
Le informazioni OIDC per il tuo cluster sono specificate nella risorsa ClientConfig nello spazio dei nomi kube-public.
Utilizza
kubectl getper stampare la risorsa OIDC per il tuo cluster utente:kubectl --kubeconfig KUBECONFIG -n kube-public get \ clientconfig.authentication.gke.io default -o yamlSostituisci
KUBECONFIGcon il percorso del file kubeconfig del cluster utente.Esamina i valori dei campi per verificare che la specifica sia configurata correttamente per il tuo provider OIDC.
Se identifichi un problema di configurazione nella specifica, riconfigura OIDC.
Se non riesci a diagnosticare e risolvere il problema in autonomia, contatta l'assistenza Google Cloud .
L'assistenza diGoogle Cloud ha bisogno dei log del servizio GKE Identity Service e della specifica OIDC per diagnosticare e risolvere i problemi OIDC.
Verifica che l'autenticazione OIDC sia abilitata
Prima di testare l'autenticazione OIDC, verifica che sia abilitata nel tuo cluster.
Esamina i log di GKE Identity Service:
kubectl logs -l k8s-app=ais -n anthos-identity-serviceL'output di esempio seguente mostra che l'autenticazione OIDC è abilitata correttamente:
... I1011 22:14:21.684580 33 plugin_list.h:139] OIDC_AUTHENTICATION[0] started. ...Se l'autenticazione OIDC non è abilitata correttamente, vengono visualizzati errori simili al seguente esempio:
Failed to start the OIDC_AUTHENTICATION[0] authentication method with error:Esamina gli errori specifici segnalati e prova a correggerli.
Testa l'autenticazione OIDC
Per utilizzare la funzionalità OIDC, utilizza una workstation con l'interfaccia utente e il browser abilitati. Non puoi eseguire questi passaggi da una sessione SSH basata su testo. Per verificare che OIDC funzioni correttamente nel tuo cluster, completa i seguenti passaggi:
- Scarica Google Cloud CLI.
Per generare il file di configurazione di accesso, esegui questo comando
gcloud anthos create-login-config:gcloud anthos create-login-config \ --output user-login-config.yaml \ --kubeconfig KUBECONFIGSostituisci
KUBECONFIGcon il percorso del file kubeconfig del cluster utente.Per autenticare l'utente, esegui questo comando:
gcloud anthos auth login --cluster CLUSTER_NAME \ --login-config user-login-config.yaml \ --kubeconfig AUTH_KUBECONFIGSostituisci quanto segue:
- CLUSTER_NAME con il nome del cluster utente a cui connetterti.
- AUTH_KUBECONFIG con il nuovo file kubeconfig da creare che include le credenziali per accedere al cluster. Per saperne di più, consulta Autenticati nel cluster.
Dovresti visualizzare una pagina di consenso per l'accesso aperta nel browser web predefinito della tua workstation locale. Fornisci informazioni di autenticazione valide per un utente in questo prompt di accesso.
Dopo aver completato il passaggio di accesso precedente, nella directory corrente viene generato un file kubeconfig.
Per testare il nuovo file kubeconfig che include le tue credenziali, elenca i pod nel tuo cluster utente:
kubectl get pods --kubeconfig AUTH_KUBECONFIGSostituisci AUTH_KUBECONFIG con il percorso del nuovo file kubeconfig generato nel passaggio precedente.
Potrebbe essere restituito il seguente messaggio di esempio, che indica che l'autenticazione è andata a buon fine, ma non sono stati assegnati controlli degli accessi basati su ruoli (RBAC) all'account:
Error from server (Forbidden): pods is forbidden: User "XXXX" cannot list resource "pods" in API group "" at the cluster scope
Esamina i log di autenticazione OIDC
Se non riesci a eseguire l'autenticazione con OIDC, i log del servizio GKE Identity Service forniscono le informazioni più pertinenti e utili per il debug del problema.
Utilizza
kubectl logsper stampare i log di GKE Identity Service:kubectl --kubeconfig KUBECONFIG \ -n anthos-identity-service logs \ deployment/ais --all-containers=trueSostituisci
KUBECONFIGcon il percorso del file kubeconfig del cluster utente.Esamina i log per individuare errori che possono aiutarti a diagnosticare i problemi di OIDC.
Ad esempio, la risorsa
ClientConfigpotrebbe contenere un errore di battitura nel campoissuerURL, comehtps://accounts.google.com(manca unatinhttps). I log del servizio GKE Identity Service conterrebbero una voce simile al seguente esempio:OIDC (htps://accounts.google.com) - Unable to fetch JWKs needed to validate OIDC ID token.Se identifichi un problema di configurazione nei log, riconfigura OIDC e correggi i problemi di configurazione.
Se non riesci a diagnosticare e risolvere il problema in autonomia, contatta l'assistenza Google Cloud .
L'assistenza diGoogle Cloud ha bisogno dei log del servizio GKE Identity Service e della specifica OIDC per diagnosticare e risolvere i problemi OIDC.
Problemi comuni relativi a OIDC
Se riscontri problemi con l'autenticazione OIDC, esamina i seguenti problemi comuni. Segui le indicazioni per risolvere il problema.
Nessun endpoint disponibile per il servizio "ais"
Quando salvi la risorsa ClientConfig, viene restituito il seguente messaggio di errore:
Error from server (InternalError): Internal error occurred: failed calling webhook "clientconfigs.validation.com":
failed to call webhook: Post "https://ais.anthos-identity-service.svc:15000/admission?timeout=10s":
no endpoints available for service "ais"
Questo errore è causato dall'endpoint GKE Identity Service non integro. Il pod GKE Identity Service non è in grado di gestire il webhook di convalida.
Per verificare che il pod GKE Identity Service non sia integro, esegui il seguente comando:
kubectl get pods -n anthos-identity-service \ --kubeconfig KUBECONFIGSostituisci
KUBECONFIGcon il percorso del file kubeconfig del cluster utente.L'output di esempio seguente indica che il pod GKE Identity Service ha un arresto anomalo:
NAME READY STATUS RESTARTS AGE ais-5949d879cd-flv9w 0/1 ImagePullBackOff 0 7m14sPer capire perché il pod ha un problema, esamina gli eventi del pod:
kubectl describe pod -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIGSostituisci
KUBECONFIGcon il percorso del file kubeconfig del cluster utente.L'output di esempio seguente segnala un errore di autorizzazione durante il pull dell'immagine:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 10m default-scheduler Successfully assigned anthos-identity-service/ais-5949d879cd-flv9w to pool-1-76bbbb8798-dknz5 Normal Pulling 8m23s (x4 over 10m) kubelet Pulling image "gcr.io/gke-on-prem-staging/ais:hybrid_identity_charon_20220808_2319_RC00" Warning Failed 8m21s (x4 over 10m) kubelet Failed to pull image "gcr.io/gke-on-prem-staging/ais:hybrid_identity_charon_20220808_2319_RC00": rpc error: code = Unknown desc = failed to pull and unpack image "gcr.io/gke-on-prem-staging/ais:hybrid_identity_charon_20220808_2319_RC00": failed to resolve reference "gcr.io/gke-on-prem-staging/ais:hybrid_identity_charon_20220808_2319_RC00": pulling from host gcr.io failed with status code [manifests hybrid_identity_charon_20220808_2319_RC00]: 401 Unauthorized Warning Failed 8m21s (x4 over 10m) kubelet Error: ErrImagePull Warning Failed 8m10s (x6 over 9m59s) kubelet Error: ImagePullBackOff Normal BackOff 4m49s (x21 over 9m59s) kubelet Back-off pulling image "gcr.io/gke-on-prem-staging/ais:hybrid_identity_charon_20220808_2319_RC00"Se gli eventi del pod segnalano un problema, continua la risoluzione dei problemi nelle aree interessate. Se hai bisogno di ulteriore assistenza, contatta l'assistenza Google Cloud .
Impossibile leggere i byte di risposta dal server
Nei log di GKE Identity Service potresti visualizzare i seguenti errori:
E0516 07:24:38.314681 65 oidc_client.cc:207] Failed fetching the Discovery URI
"https://oidc.idp.cloud.example.com/auth/idp/k8sIdp/.well-known/openid-configuration" with error:
Failed reading response bytes from server.
E0516 08:24:38.446504 65 oidc_client.cc:223] Failed to fetch the JWKs URI
"https://oidc.idp.cloud.example.com/auth/idp/k8sIdp/certs" with error:
Failed reading response bytes from server.
Questi errori di rete potrebbero essere visualizzati nei log in uno dei seguenti modi:
Compaiono raramente nel log: è probabile che gli errori isolati non siano il problema principale e che si tratti di problemi di rete intermittenti.
Il plug-in OIDC di GKE Identity Service ha un processo daemon per sincronizzare periodicamente l'URL Discovery OIDC ogni 5 secondi. Se la connessione di rete è instabile, la richiesta in uscita potrebbe non riuscire. Un errore occasionale non influisce sull'autenticazione OIDC. I dati memorizzati nella cache esistenti possono essere riutilizzati.
Se nei log sono presenti errori di riserva, continua con i passaggi aggiuntivi per la risoluzione dei problemi.
Vengono visualizzati costantemente nel log o GKE Identity Service non raggiunge mai l'endpoint noto: questi problemi costanti indicano un problema di connettività tra GKE Identity Service e il tuo provider di identità OIDC.
I seguenti passaggi per la risoluzione dei problemi possono aiutarti a diagnosticare questi problemi di connettività:
- Assicurati che un firewall non blocchi le richieste in uscita da GKE Identity Service.
- Verifica che il server del provider di identità funzioni correttamente.
- Verifica che l'URL dell'emittente OIDC nella risorsa
ClientConfigsia configurato correttamente. - Se hai attivato il campo proxy nella risorsa
ClientConfig, controlla lo stato o il log del server proxy in uscita. - Testa la connettività tra il pod GKE Identity Service e il server del provider di identità OIDC.
Devi aver eseguito l'accesso al server (non autorizzato)
Quando provi ad accedere utilizzando l'autenticazione OIDC, potresti ricevere il seguente messaggio di errore:
You must be logged in to the server (Unauthorized)
Questo errore è un problema di autenticazione Kubernetes generico che non fornisce informazioni aggiuntive. Tuttavia, questo errore indica un problema di configurazione.
Per determinare il problema, consulta le sezioni precedenti per
controllare la specifica OIDC nel cluster
e
configurare la risorsa ClientConfig.
Impossibile effettuare la richiesta di autenticazione del webhook
Nei log di GKE Identity Service, potresti visualizzare il seguente errore:
E0810 09:58:02.820573 1 webhook.go:127] Failed to make webhook authenticator request:
error trying to reach service: net/http: TLS handshake timeout
Questo errore indica che il server API non è in grado di stabilire la connessione con il pod GKE Identity Service.
Per verificare se l'endpoint GKE Identity Service è raggiungibile dall'esterno, esegui il seguente comando
curl:curl -k -s -o /dev/null -w "%{http_code}" -X POST \ https://APISERVER_HOST/api/v1/namespaces/anthos-identity-service/services/https:ais:https/proxy/authenticate -d '{}'Sostituisci
APISERVER_HOSTcon l'indirizzo del tuo server API.La risposta prevista è un codice di stato
HTTP 400. Se la richiesta è scaduta, riavvia il pod GKE Identity Service. Se l'errore persiste, significa che il server HTTP di GKE Identity Service non si avvia. Per ulteriore assistenza, contatta l'assistenza Google Cloud .
URL di accesso non trovato
Il seguente problema si verifica quando la console Google Cloud non riesce a raggiungere il provider di identità. Un tentativo di accesso viene reindirizzato a una pagina con un errore URL not found.
Per risolvere il problema, esamina i seguenti passaggi per la risoluzione dei problemi. Dopo ogni passaggio, prova di nuovo ad accedere:
Se il provider di identità non è raggiungibile tramite internet pubblico, attiva il proxy HTTP OIDC per accedere utilizzando la console Google Cloud . Modifica la risorsa personalizzata
ClientConfige impostauseHTTPProxysutrue:kubectl edit clientconfig default -n kube-public --kubeconfig USER_CLUSTER_KUBECONFIGSostituisci
USER_CLUSTER_KUBECONFIGcon il percorso del file kubeconfig del cluster utente.Se il proxy HTTP è abilitato e continui a riscontrare questo errore, potrebbe esserci un problema con l'avvio del proxy. Visualizza i log del proxy:
kubectl logs deployment/clientconfig-operator -n kube-system --kubeconfig USER_CLUSTER_KUBECONFIGSostituisci
USER_CLUSTER_KUBECONFIGcon il percorso del file kubeconfig del cluster utente.Anche se il tuo provider di identità ha una CA nota, devi fornire un valore per
oidc.caPathnella risorsa personalizzataClientConfigaffinché il proxy HTTP venga avviato correttamente.Se il server di autorizzazione richiede il consenso e non hai incluso i parametri
extraparamprompt=consent, modifica la risorsa personalizzataClientConfige aggiungiprompt=consentai parametriextraparams:kubectl edit clientconfig default -n kube-public --kubeconfig USER_CLUSTER_KUBECONFIGSostituisci
USER_CLUSTER_KUBECONFIGcon il percorso del file kubeconfig del cluster utente.Se le impostazioni di configurazione vengono modificate nel servizio di archiviazione, potresti dover uscire esplicitamente dalle sessioni esistenti. Nella console Google Cloud , vai alla pagina dei dettagli del cluster e seleziona Esci.
Risolvi i problemi relativi a LDAP
Se riscontri problemi con l'autenticazione LDAP, assicurati di aver configurato l'ambiente seguendo uno dei documenti di configurazione appropriati:
Devi anche assicurarti di compilare il secret del account di servizio LDAP e di aver configurato la risorsa ClientConfig per attivare l'autenticazione LDAP.
Consulta la guida alla risoluzione dei problemi del provider di identità di GKE Identity Service per informazioni su come abilitare ed esaminare i log delle identità e testare la connettività. Dopo aver verificato che GKE Identity Service funziona come previsto o aver identificato un problema, consulta le seguenti informazioni per la risoluzione dei problemi LDAP.
Verifica che l'autenticazione LDAP sia abilitata
Prima di testare l'autenticazione LDAP, verifica che sia abilitata nel tuo cluster.
Esamina i log di GKE Identity Service:
kubectl logs -l k8s-app=ais -n anthos-identity-serviceL'output di esempio seguente mostra che l'autenticazione LDAP è abilitata correttamente:
... I1012 00:14:11.282107 34 plugin_list.h:139] LDAP[0] started. ...Se l'autenticazione LDAP non è abilitata correttamente, vengono visualizzati errori simili al seguente esempio:
Failed to start the LDAP_AUTHENTICATION[0] authentication method with error:Esamina gli errori specifici segnalati e prova a correggerli.
Testa l'autenticazione LDAP
Per utilizzare la funzionalità LDAP, utilizza una workstation con l'interfaccia utente e il browser abilitati. Non puoi eseguire questi passaggi da una sessione SSH basata su testo. Per verificare che l'autenticazione LDAP funzioni correttamente nel tuo cluster, completa i seguenti passaggi:
- Scarica Google Cloud CLI.
Per generare il file di configurazione di accesso, esegui questo comando gcloud anthos create-login-config:
gcloud anthos create-login-config \ --output user-login-config.yaml \ --kubeconfig KUBECONFIGSostituisci
KUBECONFIGcon il percorso del file kubeconfig del cluster utente.Per autenticare l'utente, esegui questo comando:
gcloud anthos auth login --cluster CLUSTER_NAME \ --login-config user-login-config.yaml \ --kubeconfig AUTH_KUBECONFIGSostituisci quanto segue:
CLUSTER_NAMEcon il nome del cluster utente a cui connetterti.AUTH_KUBECONFIGcon il nuovo file kubeconfig da creare che include le credenziali per accedere al cluster. Per saperne di più, consulta Autenticati nel cluster.
Dovresti visualizzare una pagina di consenso per l'accesso aperta nel browser web predefinito della tua workstation locale. Fornisci informazioni di autenticazione valide per un utente in questo prompt di accesso.
Dopo aver completato il passaggio di accesso precedente, nella directory corrente viene generato un file kubeconfig.
Per testare il nuovo file kubeconfig che include le tue credenziali, elenca i pod nel tuo cluster utente:
kubectl get pods --kubeconfig AUTH_KUBECONFIGSostituisci AUTH_KUBECONFIG con il percorso del kubeconfig del cluster utente generato nel passaggio precedente.
Error from server (Forbidden): pods is forbidden: User "XXXX" cannot list resource "pods" in API group "" at the cluster scope
Problemi comuni relativi a LDAP
Se riscontri problemi con l'autenticazione LDAP, esamina i seguenti problemi comuni. Segui le indicazioni per risolvere il problema.
Gli utenti non possono eseguire l'autenticazione con virgole nel CN
Quando utilizzi LDAP, potresti riscontrare problemi di autenticazione degli utenti se il loro CN contiene una virgola, ad esempio CN="a,b". Se attivi il log di debug per GKE Identity Service, viene visualizzato il seguente messaggio di errore:
I0207 20:41:32.670377 30 authentication_plugin.cc:977] Unable to query groups from the LDAP server directory.example.com:636, using the LDAP service account
'CN=svc.anthos_dev,OU=ServiceAccount,DC=directory,DC=example,DC=com'.
Encountered the following error: Empty entries.
Questo problema si verifica perché il plug-in LDAP di GKE Identity Service esegue l'escape della virgola due volte. Questo problema si verifica solo nelle versioni 1.13 e precedenti di Google Distributed Cloud.
Per risolvere il problema, completa uno dei seguenti passaggi:
- Esegui l'upgrade del cluster a Google Distributed Cloud 1.13 o versioni successive.
- Scegli un
identifierAttributediverso, ad esempiosAMAccountName, anziché utilizzare il CN. - Rimuovi le virgole all'interno del CN nella directory LDAP.
Errore di autenticazione con Google Cloud CLI 1.4.2
Con Google Cloud CLI anthos-auth 1.4.2, potresti visualizzare il seguente messaggio di errore quando esegui il comando gcloud anthos auth login:
Error: LDAP login failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token":
failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
ERROR: Configuring Anthos authentication failed
Nel log di GKE Identity Service viene visualizzato anche il seguente errore:
I0728 12:43:01.980012 26 authentication_plugin.cc:79] Stopping STS authentication, unable to decrypt the STS token:
Decryption failed, no keys in the current key set could decrypt the payload.
Per risolvere questo errore, completa i seguenti passaggi:
Controlla se utilizzi la versione 1.4.2 di Google Cloud CLI
anthos-auth:gcloud anthos auth versionL'output di esempio seguente mostra che la versione è 1.4.2:
Current Version: v1.4.2Se esegui Google Cloud CLI
anthos-authversione 1.4.2, esegui l'upgrade alla versione 1.4.3 o successive.
Passaggi successivi
Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud. Puoi anche consultare Assistenza per ulteriori informazioni sulle risorse di assistenza, tra cui:
- Requisiti per l'apertura di una richiesta di assistenza.
- Strumenti per aiutarti a risolvere i problemi, ad esempio la configurazione dell'ambiente, i log e le metriche.
- Componenti supportati.