Accedere utilizzando un file di configurazione

Puoi 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 riportate in questa pagina se l'amministratore del cluster ha scelto di condividere un file di configurazione dell'accesso da utilizzare per l'autenticazione con gcloud CLI. Per saperne di più sull'accesso ai cluster, consulta Scegliere un metodo di accesso per accedere ai cluster. Questo documento si applica solo ai tipi di cluster supportati.

Login flow

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

OIDC workflow

Con i provider OIDC, un amministratore del cluster registra un'applicazione client per il provider di identità e configura ogni cluster. Se necessario, può aggiungere un controllo dell'accesso granulare utilizzando il controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes.

Puoi accedere ai cluster nei seguenti modi:

Accesso da riga di comando

  1. Autenticazione: esegui il comando gcloud anthos auth login e inserisci le credenziali di accesso OIDC. In questo modo viene recuperato un token di identità dal provider.
  2. Aggiornamento di Kubeconfig: il token recuperato viene aggiunto automaticamente al file kubeconfig.
  3. Accesso al cluster: utilizza kubectl per interagire con il cluster. Il cluster convalida il token e autorizza l'accesso.

Google Cloud Accesso alla console

  1. Avvia l'accesso: quando accedi dalla Google Cloud console, vieni reindirizzato alla pagina di accesso del provider di identità.
  2. Autenticazione: inserisci le credenziali ed esegui l'accesso.
  3. Accesso al cluster: torna alla Google Cloud console per visualizzare e gestire le risorse del cluster.

LDAP workflow

Con i provider LDAP, un amministratore del cluster configura ogni cluster, incluse le credenziali del client LDAP. Se necessario, gli amministratori del cluster possono aggiungere un controllo dell'accesso granulare utilizzando il controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes.

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 cluster esegue una query sul server LDAP, recupera gli attributi utente e li inserisce 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 cluster convalida il token e autorizza l'accesso. Per impostazione predefinita, il token scade dopo un'ora, quindi l'utente deve accedere di nuovo.

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

Get the configuration file

gcloud CLI presuppone un nome file e una posizione predefiniti sulla macchina locale per il file di configurazione dell'autenticazione. L'amministratore potrebbe copiare il file sulla tua macchina. Se il file ti viene fornito manualmente e devi salvarlo sulla tua macchina, utilizza i valori predefiniti per semplificare i tuoi gcloud comandi di autenticazione.

Utilizza i seguenti comandi per copiare il file di configurazione dell'autenticazione nella 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 del file di configurazione dell'autenticazione. 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 del file di configurazione dell'autenticazione. 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 del file di configurazione dell'autenticazione. Ad esempio kubectl-anthos-config.yaml.

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

Authenticate to the cluster

Esegui i comandi gcloud per autenticarti con i cluster:

  1. Esegui il comando gcloud anthos auth login per avviare il flusso di 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 cluster. Se questo flag viene omesso, ti viene chiesto di scegliere tra i cluster specificati nel file di configurazione dell'autenticazione.

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

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

    • [CA_CERT_PEM_FILE] (facoltativo) specifica il percorso di un file di certificato PEM della tua CA. 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 del file kubeconfig del cluster. I token ID OIDC restituiti dal provider OpenID vengono memorizzati nel file kubeconfig.

      Utilizza questo flag se il file kubeconfig si trova in una posizione diversa da quella predefinita. Se questo flag viene omesso, i token di autenticazione vengono aggiunti al file kubeconfig nella località 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 saperne di più, consulta Scegliere un metodo di autenticazione.

  2. Inserisci le credenziali nella schermata per il consenso basata sul browser che si apre. Se l'operazione va a buon fine, il file kubeconfig dovrebbe ora contenere un token ID che i comandi kubectl utilizzeranno per l'autenticazione con il server API Kubernetes sul cluster.

  3. Verifica che l'autenticazione sia andata a buon fine eseguendo uno dei comandi kubectl per accedere a una risorsa sul cluster. Ad esempio, se hai accesso alla risorsa "nodi" sul cluster (questo 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, consulta Risolvere i problemi di accesso degli utenti.

Scegliere 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, ti viene chiesto di selezionare un'opzione di autenticazione al momento dell'accesso, 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 Eseguire l'autenticazione nel cluster sopra.

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

gcloud anthos auth login --set-preferred-authentication

Dovresti vedere un risultato simile all'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]

Utilizzare SSH per 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 sulla macchina remota e devi essere in grado di raggiungere il provider OpenID dalla macchina locale.

Sulla macchina 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 macchina locale che utilizzerai per accedere alla macchina remota.

  • [REMOTE_PORT] è la porta che hai configurato per l'URL di reindirizzamento OIDC. Puoi trovarlo nel campo kubectlRedirectURI del file 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 del file di configurazione dell'autenticazione sulla macchina remota.

Sulla macchina locale, in un browser, vai alla pagina http://localhost:[LOCAL_PORT]/login e completa il flusso di accesso OIDC.

Ora il file kubeconfig sulla macchina remota contiene il token necessario per accedere al cluster.

Nella shell SSH, verifica di avere accesso al cluster:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes