GKE Identity Service te permite iniciar sesión en clústeres configurados desde la línea de comandos con un nombre de usuario y una contraseña de un proveedor de identidades de terceros. Sigue las instrucciones de esta página si el administrador de tu clúster ha decidido compartir un archivo de configuración de inicio de sesión para que lo uses al autenticarte con gcloud CLI. Para obtener más información sobre cómo acceder a los clústeres, consulta Elegir un método de acceso para iniciar sesión en clústeres.
Flujo de trabajo de inicio de sesión
A continuación, se muestra el flujo de trabajo que usa GKE Identity Service para permitirte iniciar sesión en los clústeres configurados mediante un archivo de configuración de inicio de sesión. El flujo exacto depende del tipo de proveedor de identidades que se utilice.
Flujo de trabajo de OIDC
Con los proveedores de OIDC, un administrador de clústeres registra GKE Identity Service como una aplicación cliente del proveedor de identidades y configura cada clúster. Si es necesario, pueden añadir un control de acceso detallado mediante el control de acceso basado en roles (RBAC) de Kubernetes.
Puedes iniciar sesión en clústeres de las siguientes formas:
Acceso a la línea de comandos
- Autentícate: ejecuta el comando
gcloud anthos auth login
e introduce tus credenciales de inicio de sesión de OIDC. De esta forma, se obtiene un token de identidad del proveedor. - Actualizar kubeconfig: el token obtenido se añade automáticamente al archivo kubeconfig.
- Acceder al clúster: usa
kubectl
para interactuar con tu clúster. El servidor de la API de Kubernetes usa el servicio de identidad de GKE para validar tu token y autorizar el acceso.
Acceso a la consola deGoogle Cloud
- Iniciar sesión: cuando inicias sesión desde la Google Cloud consola, se te redirige a la página de inicio de sesión del proveedor de identidades.
- Autenticación: introduce tus credenciales e inicia sesión correctamente.
- Acceder al clúster: vuelve a la consola Google Cloud para ver y gestionar los recursos del clúster.
Flujo de trabajo de LDAP
Con los proveedores de LDAP, un administrador de clúster configura GKE Identity Service para cada clúster, lo que incluye las credenciales del cliente LDAP. Los administradores de clústeres pueden añadir un control de acceso pormenorizado mediante el control de acceso basado en roles (RBAC) de Kubernetes, si es necesario.
Acceso a la línea de comandos
- Inicia sesión: ejecuta el comando
gcloud anthos auth login
e introduce tus credenciales de inicio de sesión de LDAP. - Generación de tokens: GKE Identity Service consulta el servidor LDAP, obtiene los atributos de usuario y los empaqueta en un token de corta duración (STS). Tus credenciales LDAP no se almacenan de forma local.
- Actualización de Kubeconfig: el token STS se añade automáticamente al archivo
kubeconfig
. - Acceso al clúster: usa
kubectl
para interactuar con tu clúster. El servidor de la API de Kubernetes usa el servicio de identidad de GKE para validar tu token y autorizar el acceso. De forma predeterminada, el token caduca al cabo de una hora, por lo que el usuario debe volver a iniciar sesión.
Para autenticarte en clústeres desde la línea de comandos, debes ejecutar gcloud
comandos de autenticación con un archivo de configuración de inicio de sesión proporcionado por el administrador del clúster.
Obtener el archivo de configuración
La CLI de gcloud asume un nombre de archivo y una ubicación predeterminados en tu máquina local para el archivo de configuración de autenticación. Es posible que tu administrador copie el archivo en tu máquina. Si se te proporciona el archivo manualmente y necesitas guardarlo en tu máquina, usa los valores predeterminados para simplificar los comandos de autenticación gcloud
.
Usa los siguientes comandos para copiar el archivo de configuración de autenticación en la ubicación predeterminada:
Linux
mkdir -p $HOME/.config/google/anthos/ cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml
donde [AUTH_CONFIG_FILE] es el nombre del archivo de configuración de autenticación. Por ejemplo, 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
donde [AUTH_CONFIG_FILE] es el nombre del archivo de configuración de autenticación. Por ejemplo, kubectl-anthos-config.yaml
.
Windows
md "%APPDATA%\google\anthos" copy [AUTH_CONFIG_FILE] "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"
donde [AUTH_CONFIG_FILE] es el nombre del archivo de configuración de autenticación. Por ejemplo, kubectl-anthos-config.yaml
.
Si tú o tu administrador decidís usar otro nombre de archivo u otra ubicación (por ejemplo, si tu administrador proporciona el archivo en una URL segura), puedes especificarlo con la marca --login-config
en cada una de tus solicitudes de autenticación. Consulta la siguiente sección para obtener más información.
Autenticarse en el clúster
Ejecuta comandos de gcloud
para autenticarte en tus clústeres:
Ejecuta el comando
gcloud anthos auth login
para iniciar el flujo de autenticación: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]
Haz los cambios siguientes:
[CLUSTER_NAME] (opcional) especifica el nombre de tu clúster. Si se omite esta marca, se te pedirá que elijas entre los clústeres especificados en el archivo de configuración de autenticación.
[USER_NAME] (opcional) especifica el nombre de usuario de las credenciales almacenadas en el archivo
kubeconfig
. El valor predeterminado es[CLUSTER_NAME]-anthos-default-user
.[AUTH_CONFIG_FILE_PATH] (opcional) especifica la ruta o la URL personalizadas a la ubicación donde se almacena o aloja el archivo de configuración de autenticación. Puedes omitir este parámetro si el archivo se encuentra en la ubicación predeterminada. Ejemplo:
--login-config /path/to/custom/authentication-config.yaml
[CA_CERT_PEM_FILE] (opcional) especifica la ruta a un archivo de certificado PEM de tu AC. Si tu archivo de configuración de autenticación está alojado de forma segura, puedes usar una conexión HTTPS para acceder a él. Ejemplo:
--login-config-cert my-cert.pem
[CLUSTER_KUBECONFIG] (opcional) especifica la ruta personalizada al archivo
kubeconfig
de tu clúster. Los tokens de ID de OIDC que devuelve tu proveedor de OpenID se almacenan en el archivokubeconfig
.Usa esta marca si tu archivo
kubeconfig
se encuentra en una ubicación distinta a la predeterminada. Si se omite esta marca, los tokens de autenticación se añadirán al archivokubeconfig
en la ubicación predeterminada. Ejemplo:--kubeconfig /path/to/custom.kubeconfig
Ejemplos:
Autenticarse en un clúster específico:
gcloud anthos auth login --cluster my-production-cluster
Usa una petición para seleccionar el clúster con el que quieres autenticarte:
gcloud anthos auth login
Resultado:
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
Usar un archivo de configuración de autenticación alojada:
gcloud anthos auth login \ --cluster my-production-cluster \ --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \ --login-config-cert my-cert.pem
Usa una petición para seleccionar una opción de autenticación. Para obtener más información, consulta Elegir un método de autenticación.
Introduce tus credenciales en la pantalla de consentimiento basada en el navegador que se abrirá. Si se realiza correctamente, tu archivo
kubeconfig
debería contener ahora un token de ID que los comandos dekubectl
usarán para autenticarse con el servidor de la API de Kubernetes en tu clúster.Verifica que la autenticación se ha realizado correctamente ejecutando uno de los
kubectl
comandos para acceder a un recurso de tu clúster. Por ejemplo, si tienes acceso al recurso "nodos" del clúster (el administrador del clúster configura este acceso), deberías poder ejecutar el siguiente comando y ver los nodos del clúster:kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]
Para obtener información sobre cómo solucionar problemas relacionados con el acceso de los usuarios, consulta el artículo Solucionar problemas de acceso de los usuarios.
Elegir un método de autenticación
Si el administrador de tu clúster ha configurado varios proveedores de identidades para tu clúster (por ejemplo, un proveedor de OIDC y un servidor LDAP) y no ha configurado un proveedor predeterminado para tu clúster, se te pedirá que selecciones una opción de autenticación al iniciar sesión, como en el siguiente ejemplo:
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]
Introduce un número y, a continuación, inicia sesión como se describe en la sección Autenticarse en el clúster de arriba.
La opción de autenticación que elijas se guardará hasta que el administrador del clúster cambie el proveedor predeterminado de este clúster o hasta que la cambies tú. Para cambiar la opción de autenticación que prefieras, usa la marca --set-preferred-authentication
.
gcloud anthos auth login --set-preferred-authentication
Verás un resultado como el del ejemplo siguiente, que te permitirá elegir una nueva opción de autenticación preferida:
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]
Usar SSH para autenticar desde un equipo remoto
Para conectarte a un equipo remoto y autenticarte en un clúster con SSH, tu archivo de configuración de autenticación debe estar en el equipo remoto y debes poder acceder a tu proveedor de OpenID desde tu equipo local.
En tu máquina local, ejecuta el siguiente comando:
ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]
Haz los cambios siguientes:
[USER_NAME] y [REMOTE_MACHINE] son los valores estándar que se usan para iniciar sesión con SSH.
[LOCAL_PORT] es un puerto abierto de tu elección en tu máquina local que usarás para acceder a la máquina remota.
[REMOTE_PORT] es el puerto que has configurado para tu URL de redirección de OIDC. Puedes encontrarlo en el campo
kubectlRedirectURI
de tu archivo de configuración de autenticación.
En tu shell SSH, ejecuta el siguiente comando para iniciar la autenticación:
gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]
donde [AUTH_CONFIG_FILE] es la ruta del archivo de configuración de autenticación en el equipo remoto.
En tu máquina local, en un navegador, ve a http://localhost:[LOCAL_PORT]/login y completa el flujo de inicio de sesión de OIDC.
Ahora, el archivo kubeconfig de tu máquina remota tiene el token que necesitas para acceder al clúster.
En tu shell SSH, comprueba que tienes acceso al clúster:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes