|
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. |
Tokens
|
Deprecation of v3 API tokens
Rancher v2.13 introduced a new token resource in the Starting with Rancher v2.14.1:
|
Recurso de token
Rancher tiene un recurso API imperativo tokens.ext.cattle.io que te permite generar tokens para autenticarte con Rancher.
kubectl api-resources --api-group=ext.cattle.io
Para obtener una descripción de los campos y la estructura del recurso token, ejecuta:
kubectl explain tokens.ext.cattle.io
Creación de un token
|
El valor del token solo se devuelve una vez en el campo |
Solo un usuario de Rancher válido y activo puede crear un token. De lo contrario, al intentar crear un token se mostrará un error (Error from server (Forbidden)…).
kubectl create -o jsonpath='{.status.value}' -f -<<EOF
apiVersion: ext.cattle.io/v1
kind: Token
EOF
Error from server (Forbidden): error when creating "STDIN": tokens.ext.cattle.io is forbidden: user system:admin is not a Rancher user
Un token siempre se crea para el usuario que realiza la solicitud. Intentar crear un token para un usuario diferente, especificando un spec.userID diferente, está prohibido y fallará.
-
El campo
spec.descriptionse puede establecer en una descripción legible por humanos del propósito del token. El valor por defecto está vacío. -
El campo
spec.kindse puede establecer en el tipo de token. El valorsessionindica un token de inicio de sesión. Todos los demás valores, incluido el valor por defecto de cadena vacía, indican un tipo de token derivado. -
Los campos
metadata.nameymetadata.generateNamese ignoran, y el nombre del nuevo token se genera automáticamente utilizando el prefijotoken-.kubectl create -o jsonpath='{.status.value}' -f -<<EOF apiVersion: ext.cattle.io/v1 kind: Token spec: description: My Token EOF -
Si no se especifica
spec.ttl, el token se crea con el tiempo de expiración definido en la configuraciónauth-token-max-ttl-minutes. El tiempo de expiración por defecto es de 90 días. Si se especificaspec.ttl, debe ser mayor que 0 y menor o igual al valor de la configuraciónauth-token-max-ttl-minutesexpresado en milisegundos.kubectl create -o jsonpath='{.status.value}' -f -<<EOF apiVersion: ext.cattle.io/v1 kind: Token spec: ttl: 7200000 # 2 hours EOF
Listado de tokens
Listar los tokens generados anteriormente puede ayudar a limpiar los tokens que ya no son necesarios (por ejemplo, si fueron emitidos temporalmente). Los administradores pueden listar todos los tokens, mientras que los usuarios regulares solo pueden ver los suyos.
kubectl get tokens.ext.cattle.io
NAME KIND TTL AGE
token-chjc9 90d 18s
token-6fzgj 90d 16s
token-8nbrm 90d 14s
Usa -o wide para obtener más detalles:
kubectl get tokens.ext.cattle.io -o wide
NAME USER KIND TTL AGE DESCRIPTION
token-chjc9 user-jtghh 90d 24s example
token-6fzgj user-jtghh 90d 22s box
token-8nbrm user-jtghh 90d 20s jinx
Visualizando un token
Los administradores pueden obtener cualquier token, mientras que los usuarios regulares solo pueden obtener los suyos.
kubectl get tokens.ext.cattle.io token-chjc9
NAME KIND TTL AGE
token-chjc9 90d 18s
Usa -o wide para obtener más detalles:
kubectl get tokens.ext.cattle.io token-chjc9 -o wide
NAME USER KIND TTL AGE DESCRIPTION
token-chjc9 user-jtghh 90d 24s example
Eliminar un token
Los administradores pueden eliminar cualquier token, mientras que los usuarios regulares solo pueden eliminar los suyos.
kubectl delete tokens.ext.cattle.io token-chjc9
token.ext.cattle.io "token-chjc9" deleted
Actualizar un token
Solo se pueden actualizar los campos de metadatos spec.description, spec.ttl y spec.enabled. Todos los demás campos spec son inmutables. Los administradores pueden ampliar el campo spec.ttl, mientras que los usuarios regulares solo pueden reducir el valor.
Un ejemplo de comando kubectl para editar un token:
kubectl edit tokens.ext.cattle.io token-zp786