Accede con un archivo de configuración

GKE Identity Service te permite acceder a los clústeres configurados desde la línea de comandos con un nombre de usuario y una contraseña de un proveedor de identidad de terceros. Sigue las instrucciones de esta página si el administrador de tu clúster eligió compartir un archivo de configuración de acceso para que lo uses cuando autentiques con gcloud CLI. Si deseas obtener más información sobre el acceso a los clústeres, consulta Elige un método de acceso para acceder a los clústeres.

Flujo de trabajo de acceso

El siguiente es el flujo de trabajo que usa GKE Identity Service para que puedas acceder a clústeres configurados con un archivo de configuración de acceso. El flujo exacto depende del tipo de proveedor de identidad que se use.

Flujo de trabajo de OIDC

Con los proveedores de OIDC, un administrador de clústeres registra GKE Identity Service como una aplicación cliente para el proveedor de identidad y configura cada clúster. Si es necesario, pueden agregar un control de acceso detallado mediante el control de acceso basado en roles (RBAC) de Kubernetes.

Puedes acceder a los clústeres de las siguientes maneras:

Acceso a la línea de comandos

  1. Autentica: Ejecuta el comando gcloud anthos auth login y, luego, ingresa tus credenciales de acceso OIDC. Esto recupera un token de identidad del proveedor.
  2. Actualiza Kubeconfig: El token recuperado se agrega automáticamente a tu archivo kubeconfig.
  3. Clúster de acceso: Usa kubectl para interactuar con tu clúster. El servidor de la API de Kubernetes usa GKE Identity Service para validar el token y autorizar el acceso.

Acceso a la consola de Google Cloud

  1. Inicia el acceso: cuando accedes desde la consola de Google Cloud, se te redirecciona a la página de acceso del proveedor de identidad.
  2. Autenticación: Ingresa tus credenciales y accede correctamente.
  3. Clúster de acceso: Regresa a la consola de Google Cloud para ver y administrar los recursos del clúster.

Flujo de trabajo de LDAP

Con los proveedores de LDAP, un administrador de clústeres configura GKE Identity Service para cada clúster, que incluye las credenciales de cliente de LDAP. Si es necesario, los administradores de clústeres pueden agregar un control de acceso bien detallado mediante el control de acceso basado en roles (RBAC) de Kubernetes.

Acceso a la línea de comandos

  1. Inicia el acceso: Ejecuta el comando gcloud anthos auth login y, luego, ingresa tus credenciales de acceso de LDAP.
  2. Generación de tokens: GKE Identity Service consulta el servidor LDAP, recupera tus atributos de usuario y empaqueta estos atributos en un token de corta duración (STS). Tus credenciales de LDAP no se almacenan de forma local.
  3. Actualización de Kubeconfig: El token del STS se agrega automáticamente a tu archivo kubeconfig.
  4. Acceso al clúster: Usa kubectl para interactuar con tu clúster. El servidor de la API de Kubernetes usa GKE Identity Service para validar el token y autorizar el acceso. De forma predeterminada, el token vence después de una hora, lo que requiere que el usuario vuelva a acceder.

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 que proporciona el administrador de tu clúster.

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]

    Reemplaza lo siguiente:

    • [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. Para obtener más información, consulta Elige un método de autenticació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

Para conectarte a una máquina remota y autenticarte en un clúster con SSH, tu archivo de configuración de autenticación debe estar en la máquina remota y debes poder alcanzar tu proveedor de OpenID desde tu máquina local.

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

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

Reemplaza lo siguiente:

  • [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