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 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 ulteriori informazioni sull'accesso ai cluster, consulta Scegliere un metodo di accesso per accedere ai cluster.
Flusso di lavoro di accesso
Di seguito è riportato il flusso di lavoro utilizzato dal servizio di identità GKE per consentirti di 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 GKE Identity Service come applicazione client per il provider di identità e configura ogni cluster. Se necessario, possono aggiungere controllo dell'accesso granulare utilizzando il controllo dell'controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes.
Puoi accedere ai cluster nei seguenti modi:
Accesso da riga di comando
- Autenticazione: esegui il comando
gcloud anthos auth login
e inserisci le tue credenziali di accesso OIDC. Viene recuperato un token di identità dal provider. - Aggiorna Kubeconfig: il token recuperato viene aggiunto automaticamente al file kubeconfig.
- Accedi al cluster: utilizza
kubectl
per interagire con il cluster. Il server API Kubernetes utilizza il servizio GKE Identity per convalidare il token e autorizzare l'accesso.
Accesso alla consoleGoogle Cloud
- Avvia l'accesso: quando accedi dalla console Google Cloud , viene visualizzato un reindirizzamento alla pagina di accesso dell'identity provider.
- Autenticazione: inserisci le tue credenziali e accedi correttamente.
- Accedi al cluster: torna alla console Google Cloud per visualizzare e gestire le risorse del cluster.
Flusso di lavoro LDAP
Con i provider LDAP, un amministratore del cluster configura GKE Identity Service per 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'controllo dell'accesso basato su ruoli (RBAC) di Kubernetes.
Accesso da riga di comando
- Avvia l'accesso: esegui il comando
gcloud anthos auth login
e inserisci le tue credenziali di accesso LDAP. - Generazione di token: il servizio GKE Identity Service esegue query sul server LDAP, recupera i tuoi attributi utente e li pacchettizza in un token di breve durata (STS). Le credenziali LDAP non vengono memorizzate localmente.
- Aggiornamento di kubeconfig: il token STS viene aggiunto automaticamente al file
kubeconfig
. - Accesso al cluster: utilizza
kubectl
per interagire con il cluster. Il server API Kubernetes utilizza il servizio GKE Identity per convalidare il token e autorizzare l'accesso. Per impostazione predefinita, il token scade dopo un'ora e richiede all'utente di accedere di nuovo.
Per autenticarti ai cluster dalla riga di comando, devi eseguire i comandi di autenticazione gcloud
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 per il file di configurazione dell'autenticazione. L'amministratore potrebbe copiare il file per te sulla tua macchina. Se il file ti viene fornito manualmente
e devi salvarlo autonomamente sul tuo computer, utilizza i valori predefiniti 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 file o una posizione diversa (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 ulteriori dettagli, consulta la sezione che segue.
Esegui l'autenticazione nel cluster
Esegui i comandi gcloud
per autenticarti con i tuoi cluster:
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. Esempio:
--login-config /path/to/custom/authentication-config.yaml
[CA_CERT_PEM_FILE] (facoltativo) specifica il percorso di un file del certificato PEM della 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 che vengono restituiti dal provider OpenID vengono archiviati nel filekubeconfig
.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 filekubeconfig
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 di 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. Per ulteriori informazioni, vedi Scegliere un metodo di autenticazione.
Inserisci le tue credenziali nella schermata di 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 comandikubectl
utilizzeranno per autenticarsi con il server API Kubernetes nel cluster.Verifica che l'autenticazione sia andata a buon fine eseguendo uno dei comandi
kubectl
per accedere a una risorsa nel cluster. Ad esempio, se hai accesso alla risorsa "nodes" sul cluster (questo accesso è configurato dall'amministratore del cluster), dovresti essere in grado di eseguire il seguente comando 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, al momento dell'accesso ti viene 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 Eseguire l'autenticazione al cluster sopra.
L'opzione di autenticazione scelta viene salvata finché l'amministratore del cluster non modifica il provider predefinito per il cluster o non la modifichi tu stesso. Per modificare l'opzione di autenticazione che preferisci, 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 e autenticarti in un cluster con SSH, il file di configurazione dell'autenticazione deve trovarsi sulla macchina remota e devi essere in grado di raggiungere il tuo provider OpenID dalla macchina locale.
Sulla tua macchina locale, esegui il seguente 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 il seguente 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.
Nella tua 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 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