Accede a clústeres con GKE Identity Service

GKE Identity Service es un servicio de autenticación que te permite usar los proveedores de identidad existentes de tu organización para autenticarte en clústeres en varios entornos de GKE Enterprise, lo que te permite usar el mismo ID para acceder a clústeres de Google Cloud, de forma local y en otras nubes públicas. Este documento está dirigido a desarrolladores y otros usuarios de clúster de GKE que necesitan acceder a clústeres con este servicio. Si necesitas acceder a clústeres mediante tu ID de Google Cloud a través de la puerta de enlace de Connect, consulta Usa la puerta de enlace de Connect.

Si eres administrador de clústeres o plataformas y necesitas configurar GKE Identity Service para tu organización o equipo, consulta la descripción general de GKE Identity Service para conocer los entornos de clústeres compatibles, otros requisitos previos y las guías de configuración relevantes.

Accede a los clústeres desde la línea de comandos

Para autenticarte en clústeres desde la línea de comandos, debes ejecutar comandos de autenticación de gcloud, con un archivo de configuración de acceso especial que proporciona el administrador de tu clúster.

Antes de comenzar

  1. Asegúrate de tener instaladas las siguientes herramientas de línea de comandos:

    • La versión más reciente de Google Cloud CLI, que incluye gcloud, la herramienta de línea de comandos para interactuar con Google Cloud. Si necesitas instalar Google Cloud CLI, consulta la Guía de instalación.
    • kubectl para ejecutar comandos en clústeres de Kubernetes. Si necesitas instalar kubectl, consulta la guía de instalación.
  2. Ejecuta los siguientes comandos para instalar o actualizar el componente anthos-auth:

    gcloud components update
    gcloud components install anthos-auth
  3. Ejecuta el siguiente comando para verificar que la herramienta se haya instalado de forma adecuada:

    gcloud anthos auth version

    Si se muestra una versión, la instalación se realizó de forma correcta.

Obtén el archivo de configuración

La CLI de gcloud supone un nombre de archivo y una ubicación predeterminados en la 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 proporcionó el archivo de forma manual y necesitas guardarlo en tu máquina, usa los valores predeterminados para simplificar los comandos de autenticación de 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

En el ejemplo anterior, [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

En el ejemplo anterior, [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"

En el ejemplo anterior, [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 eligen usar un nombre de archivo o una ubicación diferentes (por ejemplo, si el administrador proporciona el archivo en una URL segura), puedes especificar la marca con la marca --login-config en cada una de las solicitudes de autenticación. Si deseas obtener más información, consulta la siguiente sección.

Realiza la autenticación en el clúster

Ejecuta los comandos de gcloud para realizar la autenticación con los clústeres:

  1. 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]

    Donde:

    • [CLUSTER_NAME] (opcional) especifica el nombre de tu clúster. Si se omite esta marca, se te solicitará que elijas entre los clústeres que se especifican 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 de acceso o la URL personalizada hacia la ubicación en la que se almacena o se 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 de acceso a un archivo de certificado de PEM de la CA. Si el archivo de configuración de autenticación se encuentra alojado de forma segura, puedes usar una conexión HTTPS para acceder a este. Ejemplo: --login-config-cert my-cert.pem

    • [CLUSTER_KUBECONFIG] (opcional) especifica la ruta de acceso personalizada al archivo kubeconfig del clúster. Los tokens de ID de OIDC que muestra el proveedor de OpenID se almacenan en el archivo kubeconfig

      Usa esta marca si el archivo kubeconfig se encuentra en una ubicación que no sea la predeterminada. Si se omite esta marca, los tokens de autenticación se agregan al archivo kubeconfig en la ubicación predeterminada. Ejemplo: --kubeconfig /path/to/custom.kubeconfig

    Ejemplos:

    • Realiza la autenticación en un clúster específico:

      gcloud anthos auth login --cluster my-production-cluster
      
    • Usa una solicitud para seleccionar con qué clúster realizar la autenticación:

      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
      
    • Usa un archivo de configuración de autenticación alojado:

      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 un mensaje para seleccionar una opción de autenticación. Puedes obtener más información sobre este tema, incluido un ejemplo, en Elige una opción de autenticación a continuación.

  2. Ingresa las credenciales en la pantalla de consentimiento basada en el navegador que se abre. Si esto se realiza de forma correcta, tu archivo kubeconfig ahora debe contener un token de ID que los comandos de kubectl usarán para realizar la autenticación con el servidor de la API de Kubernetes en el clúster.

  3. Verifica que la autenticación se haya realizado de forma adecuada mediante la ejecución de uno de los comandos de kubectl para acceder a un recurso en el clúster. Por ejemplo, si tienes acceso al recurso “nodos” en el 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 la solución de problemas relacionados con el acceso de los usuarios, consulta Soluciona problemas de acceso de los usuarios.

Elige un método de autenticación

Si el administrador de tu clúster configuró varios proveedores de identidad para tu clúster (por ejemplo, un proveedor de OIDC y un servidor LDAP) y no configuraste un proveedor predeterminado para el clúster, se le solicitará que accedas para seleccionar una opción de autenticación, como se indica en ejemplo siguiente:

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]

Ingresa una opción numérica y, luego, accede como se describe en Autentícate en el clúster anterior.

La opción de autenticación que elegiste se guarda hasta que el administrador del clúster cambia el proveedor predeterminado de este clúster o lo cambias. Para cambiar tu opción de autenticación preferida, usa la marca --set-preferred-authentication.

gcloud anthos auth login --set-preferred-authentication

Deberías ver un resultado como el siguiente, que te permite 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]

Usa SSH para realizar la autenticación desde una máquina remota

Supongamos que deseas establecer una conexión SSH con una máquina remota y autenticarte en un clúster de usuario desde esta máquina. Para ello, el archivo de configuración de autenticación debe estar en la máquina remota y debes poder acceder al proveedor de Open ID desde la máquina local.

En la máquina local, ejecuta el siguiente comando:

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

Donde:

  • [USER_NAME] y [REMOTE_MACHINE] son los valores estándar que se usan para acceder con SSH.

  • [LOCAL_PORT] es un puerto abierto de tu elección que se encuentra en la máquina local y que usarás para acceder a la máquina remota.

  • [REMOTE_PORT] es el puerto que configuraste para la URL de redireccionamiento de OIDC. Puedes encontrarlo en el campo kubectlRedirectURI del archivo de configuración de autenticación.

En la shell con SSH, ejecuta el siguiente comando para iniciar la autenticación:

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

En el ejemplo anterior, [AUTH_CONFIG_FILE] es la ruta de acceso del archivo de configuración de autenticación en la máquina remota.

En un navegador de la máquina local, ve a http://localhost:[LOCAL_PORT]/login y completa el flujo de acceso de OIDC.

Ahora, el archivo kubeconfig en la máquina remota tiene el token que necesitas para acceder al clúster de usuario.

En tu shell de SSH, verifica que tengas acceso al clúster:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes

Accede a los clústeres desde la consola de Google Cloud (solo proveedores de OIDC)

Sigue las instrucciones en Trabaja con clústeres en la consola de Google Cloud.