Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Usando tokens de API

Deprecation of v3 API tokens

Rancher v2.13 introduced a new token resource in the ext.cattle.io API group to serve as the public API for tokens, which was only accessible through kubectl.

Starting with Rancher v2.14.1:

  • Legacy v3 API tokens (tokens.management.cattle.io) are being phased out and scheduled for removal in a future release. If you currently rely on legacy tokens for automation or API access, transition to the new tokens.ext.cattle.io tokens to ensure continued compatibility.

  • The Rancher dashboard provides basic support for tokens.ext.cattle.io (create, view or list, and delete).

Rancher v2.8.0 introdujo el API de Kubernetes de Rancher que se puede usar para gestionar recursos de Rancher a través de kubectl. Esta página cubre información sobre los tokens de API utilizados con el Rancher CLI, archivos kubeconfig, Terraform y el navegador de API v3.

Por defecto, algunos tokens de API a nivel de clúster se generan con un tiempo de vida infinito (ttl=0). En otras palabras, los tokens de API con ttl=0 nunca expiran a menos que los invalides. Los tokens no se invalidan al cambiar una contraseña.

Puedes desactivar los tokens de API eliminándolos o desactivando la cuenta de usuario.

Eliminando tokens

Para eliminar un token:

  1. Ve a la lista de todos los tokens en la vista de API de Rancher en https://<Rancher-Server-IP>/v3/tokens.

  2. Accede al token que deseas eliminar por su ID. Por ejemplo, https://<Rancher-Server-IP>/v3/tokens/kubectl-shell-user-vqkqt

  3. Haz clic en Eliminar.

La siguiente es una lista completa de tokens generados con ttl=0:

Testigo Descripción

kubectl-shell-*

Acceso a la shell kubectl en el navegador

agent-*

Token para el despliegue de agentes

compose-token-*

Token para Compose

helm-token-*

Token para el despliegue del gráfico de Helm

drain-node-*

Token para drenar (Rancher utiliza kubectl para drenar porque no hay una API nativa de Kubernetes).

Configurando TTL en Tokens de Kubeconfig

Los administradores pueden establecer un tiempo de vida global (TTL) en los tokens de Kubeconfig. Cambiar el TTL predeterminado de kubeconfig se puede hacer navegando a la configuración global y estableciendo kubeconfig-default-token-ttl-minutes a la duración deseada en minutos. A partir de Rancher v2.8, el valor predeterminado de kubeconfig-default-token-ttl-minutes es 43200, lo que significa que los tokens expiran en 30 días.

Esta configuración es utilizada por todos los tokens de kubeconfig excepto aquellos creados por la CLI para generar tokens de kubeconfig.

Desactivar Tokens en Kubeconfigs Generados

Establece la configuración kubeconfig-generate-token a false. Esta configuración instruye a Rancher a no generar automáticamente un token cuando un usuario hace clic en descargar un archivo kubeconfig. Cuando esta configuración está desactivada, un kubeconfig generado hace referencia a Rancher CLI para recuperar un token de corta duración para el clúster. Cuando este kubeconfig se utiliza en un cliente, como kubectl, se necesita tener instalado el Rancher CLI para completar la solicitud de inicio de sesión.

Hashing de Token

Puede habilitar el hashing de tokens, donde los tokens pasan por un hash unidireccional utilizando el algoritmo SHA256. Este es un proceso no reversible: una vez habilitado, esta función no se puede desactivar. Primero deberías evaluar esta configuración en un entorno de prueba y/o hacer copias de seguridad antes de habilitarla.

Esta función afecta a todos los tokens que incluyen, pero no se limitan a, los siguientes:

  • Tokens de Kubeconfig

  • Tokens Bearer, claves/llamadas de API

  • Tokens utilizados por operaciones internas

Configuraciones de Token

Estas configuraciones globales afectan el comportamiento de los tokens de Rancher.

Valor Descripción

auth-user-session-ttl-minutes

TTL en minutos en un token de sesión de autenticación de usuario.

auth-user-session-idle-ttl-minutes

TTL en minutos en un token de sesión de autenticación de usuario, sin actividad del usuario.

kubeconfig-default-token-ttl-minutes

TTL por defecto aplicado a todos los tokens de kubeconfig, excepto a los tokens generados por Rancher CLI.

auth-token-max-ttl-minutes

TTL máximo para todos los tokens, excepto aquellos controlados por auth-user-session-ttl-minutes.

kubeconfig-generate-token

Si es verdadero, genera automáticamente tokens cuando un usuario descarga un kubeconfig.

auth-user-session-ttl-minutes

Duración del tiempo de vida (TTL) en minutos, utilizada para determinar cuándo expira un token de sesión de autenticación de usuario. Cuando expira, el usuario debe iniciar sesión y obtener un nuevo token. Esta configuración no se ve afectada por auth-token-max-ttl-minutes. Los tokens de sesión se crean cuando un usuario inicia sesión en Rancher.

auth-user-session-idle-ttl-minutes

Tiempo de vida (TTL) sin actividad del usuario para los tokens de sesión de inicio de sesión, en minutos. Por defecto, auth-user-session-idle-ttl-minutes se establece en el mismo valor que auth-user-session-ttl-minutes (por compatibilidad hacia atrás). Nunca debe exceder el valor de auth-user-session-ttl-minutes.

kubeconfig-default-token-ttl-minutes

Duración del tiempo de vida (TTL) en minutos, utilizada para determinar cuándo expira un token de kubeconfig. Cuando el token ha expirado, la API rechaza el token. Esta configuración no puede ser mayor que auth-token-max-ttl-minutes. Esta configuración se aplica a los tokens generados en un archivo kubeconfig solicitado, excepto para los tokens generados por Rancher CLI. A partir de Rancher v2.8, la duración por defecto es 43200, lo que significa que los tokens expiran en 30 días.

auth-token-max-ttl-minutes

Tiempo de vida (TTL) máximo en minutos permitido para los tokens de autenticación. Si un usuario intenta crear un token con un TTL mayor que auth-token-max-ttl-minutes, Rancher establece el TTL del token al valor de auth-token-max-ttl-minutes. Se aplica a todos los tokens de kubeconfig y tokens de API. A partir de Rancher v2.8, la duración por defecto es 129600, lo que significa que los tokens expiran en 90 días.

kubeconfig-generar-token

Cuando es verdadero, los kubeconfigs solicitados a través de la interfaz de usuario contienen un token válido. Cuando es falso, los kubeconfigs contienen un comando que utiliza el Rancher CLI para solicitar al usuario que inicie sesión. El CLI luego recupera y almacena en caché un token para el usuario.
cli/kubectl.adoc#_autenticación_con_kubectl_y_tokens_de_kubeconfig_con_ttl[El CLI luego recupera y almacena en caché un token para el usuario].