Accesso ai cluster con GKE Identity Service

GKE Identity Service è un servizio di autenticazione che ti consente di utilizzare i provider di identità esistenti della tua organizzazione per eseguire l'autenticazione sui cluster in più ambienti GKE Enterprise, consentendoti di utilizzare lo stesso ID per accedere ai cluster su Google Cloud, on-premise e su altri cloud pubblici. Questo documento è rivolto agli sviluppatori e ad altri utenti dei cluster GKE che devono accedere ai cluster utilizzando questo servizio. Se devi accedere ai cluster utilizzando il tuo ID Google Cloud tramite Connect Gateway, consulta Using the Connect Gateway.

Se sei un amministratore di cluster o di piattaforma che deve configurare GKE Identity Service per la tua organizzazione o il tuo team, consulta la panoramica di GKE Identity Service per conoscere gli ambienti cluster supportati, altri prerequisiti e le guide alla configurazione pertinenti.

Accedi ai cluster dalla riga di comando

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

Prima di iniziare

  1. Assicurati di aver installato i seguenti strumenti a riga di comando:

    • La versione più recente di Google Cloud CLI, che include gcloud, lo strumento a riga di comando per interagire con Google Cloud. Se devi installare Google Cloud CLI, consulta la guida all'installazione.
    • kubectl per eseguire comandi sui cluster Kubernetes. Se devi installare kubectl, consulta la guida all'installazione
  2. Esegui questi comandi per installare o aggiornare il componente anthos-auth:

    gcloud components update
    gcloud components install anthos-auth
  3. Verifica che lo strumento sia stato installato correttamente eseguendo questo comando:

    gcloud anthos auth version

    Se viene restituita una versione, l'installazione è riuscita.

Recupera il file di configurazione

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 sul tuo computer. Se il file ti è stato fornito manualmente e devi salvarlo sul computer personalmente, utilizza le impostazioni predefinite per semplificare i comandi di autenticazione gcloud.

Utilizza i seguenti comandi per copiare il file di configurazione dell'autenticazione nella posizione 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 il tuo amministratore scegliete di utilizzare un nome o un percorso del file diverso (ad esempio, se l'amministratore fornisce il file a un URL sicuro), puoi specificare questo aspetto utilizzando il flag --login-config per ogni richiesta di autenticazione. Per maggiori dettagli, consulta la sezione che segue.

Autenticazione nel cluster

Esegui i comandi gcloud per autenticarti con i tuoi 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]

    dove:

    • [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 delle credenziali archiviate 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. Esempio: --login-config /path/to/custom/authentication-config.yaml

    • [CA_CERT_PEM_FILE] (facoltativo) specifica il percorso a un file di certificato PEM proveniente dalla tua CA. Se il file di configurazione dell'autenticazione è ospitato in modo sicuro, puoi utilizzare una connessione HTTPS per accedervi. 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 tuo provider OpenID sono archiviati nel file kubeconfig.

      Utilizza questo flag se il file kubeconfig si trova in una posizione diversa da default. 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 su 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 ospitata:

      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. Puoi trovare ulteriori informazioni in merito, incluso un esempio, nella sezione Scegliere un'opzione di autenticazione di seguito.

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

  3. Verifica che l'autenticazione sia riuscita eseguendo uno dei comandi kubectl per accedere a una risorsa sul tuo 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 di 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 verrà chiesto 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 Autentica nel cluster qui sopra.

L'opzione di autenticazione che hai scelto viene salvata fino a quando l'amministratore del cluster non modifica il provider predefinito per questo cluster o non lo 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 come quello 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 un computer remoto

Supponi di volere accedere tramite SSH a una macchina remota e di eseguire l'autenticazione su un cluster dalla macchina remota. Per farlo, il file di configurazione dell'autenticazione deve trovarsi sulla macchina remota e devi poter contattare il tuo provider Open ID dalla macchina locale.

Sulla tua macchina locale, esegui questo comando:

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

dove:

  • [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 configurata per l'URL di reindirizzamento OIDC. Puoi trovare questa opzione 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 a http://localhost:[LOCAL_PORT]/login e completa il flusso di accesso OIDC.

Ora il file kubeconfig sulla tua 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

Accedi ai cluster dalla console Google Cloud (solo provider OIDC)

Segui le istruzioni riportate in Utilizzare i cluster dalla console Google Cloud.