Accedere utilizzando un file di configurazione

GKE Identity Service ti consente di accedere ai cluster configurati dalla riga di comando utilizzando un nome utente e una password di un provider di identità di terze parti. Segui le istruzioni in questa pagina se l'amministratore del cluster ha scelto di condividere un file di configurazione di accesso da utilizzare per l'autenticazione con gcloud CLI. Per ulteriori informazioni sull'accesso ai cluster, consulta Scegliere un metodo di accesso per accedere ai cluster.

Flusso di lavoro dell'accesso

Di seguito è riportato il flusso di lavoro utilizzato da GKE Identity Service per accedere ai cluster configurati utilizzando un file di configurazione dell'accesso. Il flusso esatto dipende dal tipo di provider di identità utilizzato.

Flusso di lavoro OIDC

Con i provider OIDC, un amministratore del cluster registra il servizio di identità GKE come applicazione client per il provider di identità e configura ogni cluster. Se necessario, possono aggiungere un controllo dell'accesso granulare mediante il controllo degli accessi basato su ruoli (RBAC) di Kubernetes.

Puoi accedere ai cluster nei seguenti modi:

Accesso da riga di comando

  1. Autentica: esegui il comando gcloud anthos auth login e inserisci il tuo accesso OIDC e credenziali. Questa operazione consente di recuperare un token di identità dal provider.
  2. Aggiorna kubeconfig: il token recuperato viene aggiunto automaticamente al file kubeconfig.
  3. Accedi al cluster: utilizza kubectl per interagire con il cluster. Il server API Kubernetes utilizza il servizio di identità GKE per convalidare il token e autorizzare l'accesso.

Accesso alla console Google Cloud

  1. Avvio dell'accesso: quando accedi dalla console Google Cloud, il sistema ti reindirizzerà alla pagina di accesso del provider di identità.
  2. Autentica: inserisci le tue credenziali e accedi.
  3. Cluster di accesso: torna alla console Google Cloud per visualizzare e gestire le risorse del cluster.

Flusso di lavoro LDAP

Con i provider LDAP, un amministratore di cluster configura il servizio di identità GKE per ciascun cluster, incluse le credenziali del client LDAP. Gli amministratori del cluster possono aggiungere un controllo dell'accesso granulare utilizzando il controllo degli accessi basato su ruoli (RBAC) di Kubernetes, se necessario.

Accesso da riga di comando

  1. Avvia l'accesso: esegui il comando gcloud anthos auth login e inserisci le credenziali di accesso LDAP.
  2. Generazione di token: il servizio di identità GKE esegue una query sul server LDAP, recupera gli attributi utente e li pacchettizza in un token di breve durata (STS). Le credenziali LDAP non vengono archiviate localmente.
  3. Aggiornamento di kubeconfig: il token STS viene aggiunto automaticamente al file kubeconfig.
  4. Accesso al cluster: utilizza kubectl per interagire con il cluster. Il server API Kubernetes utilizza il servizio di identità GKE per convalidare il token e autorizzare l'accesso. Per impostazione predefinita, il token scade dopo un'ora e richiede all'utente di eseguire nuovamente l'accesso.

Per eseguire l'autenticazione nei cluster dalla riga di comando, devi eseguire gcloud di autenticazione, utilizzando un file di configurazione di accesso fornito dall'amministratore del cluster.

Recupera il file di configurazione

gcloud CLI presuppone un nome file e una posizione predefiniti sulla tua macchina locale il file di configurazione dell'autenticazione. L'amministratore potrebbe copiare il file sul tuo computer. Se ti viene fornito manualmente il file e salvarli personalmente sul computer, usa i valori predefiniti per semplificare Comandi di autenticazione gcloud.

Utilizza i comandi seguenti per copiare il file di configurazione dell'autenticazione nel località predefinita:

Linux

mkdir -p  $HOME/.config/google/anthos/
cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml

dove [AUTH_CONFIG_FILE] è il nome dell'autenticazione di configurazione del deployment. Ad esempio 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

dove [AUTH_CONFIG_FILE] è il nome dell'autenticazione di configurazione del deployment. Ad esempio kubectl-anthos-config.yaml.

Windows

md "%APPDATA%\google\anthos"
copy [AUTH_CONFIG_FILE] "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"

dove [AUTH_CONFIG_FILE] è il nome dell'autenticazione di configurazione del deployment. Ad esempio kubectl-anthos-config.yaml.

Se tu o il tuo amministratore scegliete di utilizzare un nome file o una posizione diversi (ad esempio, se l'amministratore fornisce il file a un URL sicuro), puoi specificarlo utilizzando il flag --login-config per ogni richiesta di autenticazione. Per ulteriori dettagli, consulta la sezione che segue.

Autenticazione nel cluster

Esegui i comandi gcloud per l'autenticazione con i cluster:

  1. Esegui il comando gcloud anthos auth login per avviare l'autenticazione :

    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]

    Sostituisci quanto segue:

    • [CLUSTER_NAME] (facoltativo) specifica il nome del tuo in un cluster Kubernetes. Se questo flag viene omesso, ti viene chiesto di scegliere tra specificati nel file di configurazione dell'autenticazione.

    • [USER_NAME] (facoltativo) specifica il nome utente per le credenziali archiviate nel file kubeconfig. Il valore predefinito è [CLUSTER_NAME]-anthos-default-user.

    • [AUTH_CONFIG_FILE_PATH] (facoltativo) specifica il percorso personalizzato o URL in cui è archiviato o ospitato il file di configurazione dell'autenticazione. Puoi omettere questo parametro, se il file si trova nel percorso posizione predefinita. Esempio: --login-config /path/to/custom/authentication-config.yaml

    • [CA_CERT_PEM_FILE] (facoltativo) specifica il percorso di un file PEM del certificato di proprietà dell'autorità di certificazione. Se il file di configurazione dell'autenticazione è ospitato in modo sicuro, puoi utilizzare una connessione HTTPS per accedere al file. Esempio: --login-config-cert my-cert.pem

    • [CLUSTER_KUBECONFIG] (facoltativo) specifica il percorso personalizzato al file kubeconfig del cluster. I token ID OIDC restituiti dal provider OpenID vengono archiviati nel file kubeconfig.

      Utilizza questo flag se il tuo file kubeconfig si trova in una posizione diversa da il predefinita. Se questo flag viene omesso, i token di autenticazione vengono aggiunti al file kubeconfig nella posizione predefinita. Esempio: --kubeconfig /path/to/custom.kubeconfig

    Esempi:

    • Esegui l'autenticazione in un cluster specifico:

      gcloud anthos auth login --cluster my-production-cluster
      
    • Utilizza un prompt per selezionare il cluster con cui eseguire l'autenticazione:

      gcloud anthos auth login
      

      Risultato:

      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
      
    • Utilizza un file di configurazione dell'autenticazione ospitato:

      gcloud anthos auth login \
       --cluster my-production-cluster \
       --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \
       --login-config-cert my-cert.pem
      
    • Utilizza un prompt per selezionare un'opzione di autenticazione. Per ulteriori informazioni, vedi Scegliere un metodo di autenticazione.

  2. Inserisci le tue credenziali nella schermata per il consenso basata sul browser che si apre. Se questa operazione riesce, il tuo file kubeconfig ora dovrebbe contenere un token ID che il tuo kubectl per l'autenticazione con il server API Kubernetes sul cluster.

  3. Verifica che l'autenticazione sia riuscita eseguendo una delle kubectl per accedere a una risorsa sul tuo cluster. Per Ad esempio, se hai accesso ai "nodi" risorsa sul cluster (questo l'accesso è configurato dall'amministratore del cluster), dovresti essere in grado di eseguire il comando seguente e visualizzare i nodi del cluster:

    kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]

Per informazioni sulla risoluzione dei problemi relativi all'accesso degli utenti, vedi Risolvere i problemi di accesso degli utenti.

Scegli un metodo di autenticazione

Se l'amministratore del cluster ha configurato più provider di identità per il cluster (ad esempio, un provider OIDC e un server LDAP) e non ha configurato un provider predefinito per il cluster, al momento dell'accesso ti viene richiesto di selezionare un'opzione di autenticazione, come nell'esempio seguente:

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]

Inserisci una scelta numerica, quindi continua ad accedere come descritto in Autenticarsi nel cluster sopra.

L'opzione di autenticazione scelta viene salvata finché l'amministratore del cluster non cambia il provider predefinito per questo cluster o non lo cambi tu. Per modificare l'opzione di autenticazione preferita, usa il flag --set-preferred-authentication.

gcloud anthos auth login --set-preferred-authentication

Dovresti vedere un risultato come nell'esempio seguente, che ti consente di scegliere una nuova opzione di autenticazione preferita:

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]

Utilizza SSH per eseguire l'autenticazione da una macchina remota

Per connetterti a una macchina remota ed eseguire l'autenticazione in un cluster con SSH, il file di configurazione dell'autenticazione deve trovarsi sul computer remoto deve poter raggiungere il provider OpenID dalla macchina locale.

Sul computer locale, esegui questo comando:

ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]

Sostituisci quanto segue:

  • [USER_NAME] e [REMOTE_MACHINE] sono i valori standard utilizzati per accedere con SSH.

  • [LOCAL_PORT] è una porta aperta a tua scelta sulla tua macchina locale che utilizzerai per accedere alla macchina remota.

  • [REMOTE_PORT] è la porta configurata per il reindirizzamento OIDC URL. Puoi trovarlo nel campo kubectlRedirectURI del tuo di configurazione dell'autenticazione.

Nella shell SSH, esegui questo comando per avviare l'autenticazione:

gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]

dove [AUTH_CONFIG_FILE] è il percorso di configurazione dell'autenticazione sul computer remoto.

Sul computer locale, in un browser, vai a http://localhost:[LOCAL_PORT]/login e completa Flusso di accesso OIDC.

Ora il file kubeconfig sulla macchina remota include il token che ti serve per accedere al cluster.

Nella shell SSH, verifica di avere accesso al cluster:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes