Saltar a contenido

Usuarios y bots

En «Usuarios» das de alta a personas y bots, repartes el rol de administrador y deshabilitas cuentas. Aquí tienes cada operación y lo que provoca.

Antes de empezar

  • Eres administrador de kubelatch.
  • Las cuentas solo se crean desde aquí o desde la CLI del binario. No hay autorregistro ni envío de correo: tú compartes los enlaces por un canal seguro.
  • Los logins son inmutables y no se reutilizan nunca, ni tras deshabilitar la cuenta. Son la identidad que ven los clusters: user:<login> para personas y bot:<nombre> para bots.

Dar de alta a una persona

  1. En «Usuarios», deja «Tipo» en «Persona».
  2. Rellena «Login» (minúsculas, dígitos, ., _ o -, de 1 a 63 caracteres), «Nombre» y «Correo». Marca «Administrador» si procede.
  3. Pulsa «Crear e invitar».
  4. Copia el enlace del diálogo y compártelo por un canal seguro. No se vuelve a mostrar.

El enlace tiene la forma <KUBELATCH_BASE_URL>/cuenta#kli_… y vale 72 horas. El token va tras #, así que nunca llega a los logs de servidores ni proxies. La página /cuenta lo borra de la barra de direcciones en cuanto lo lee: si la persona recarga, verá «Enlace no válido» aunque el enlace original siga valiendo.

Lo que hace la persona con el enlace depende del modo:

  • Sin GitHub: fija su contraseña (de 12 a 128 caracteres, distinta del login) y entra.
  • Con GitHub: pulsa «Vincular con GitHub y entrar» y autoriza la App. No fija ninguna contraseña. Ver Login con GitHub.

Después, concédele permisos en «Permisos» (Conceder permisos). Ella emite su credencial en «Inicio» (Obtener una credencial).

Si el enlace se pierde o caduca, genera otro: «Enlace de reset» (sin GitHub) o «Enlace de vinculación» (con GitHub). Generar uno nuevo anula los pendientes de esa persona.

Enlaces de reset y de vinculación

Ambos salen del mismo botón de la fila, valen 24 horas y son de un solo uso. Generarlo ya cierra las sesiones de esa persona y anula sus enlaces pendientes; con la cuenta deshabilitada, no se puede generar:

Botón Cuándo aparece Qué hace al usarlo
«Enlace de reset» Sin GitHub, o en cuentas de emergencia Fija una contraseña nueva, desbloquea la cuenta y cierra las sesiones anteriores.
«Enlace de vinculación» Con GitHub, en cuentas normales Vincula la cuenta a la cuenta de GitHub con la que se autoriza y cierra las sesiones anteriores.

Los casos concretos (contraseña olvidada, cuenta bloqueada, GitHub cambiado) están en Cuentas y recuperación.

Deshabilitar y habilitar

«Deshabilitar» (persona o bot), tras confirmar:

  • Revoca todas sus credenciales al instante: la siguiente petición recibe 401 y los exec o watch abiertos se cortan en menos de 10 s.
  • Cierra sus sesiones y anula sus enlaces pendientes.
  • En la siguiente reconciliación, la saca de la lista de sujetos que el proxy puede impersonar en cada cluster.

Sus permisos se conservan, pero no cuentan mientras esté deshabilitada. «Habilitar» la devuelve a los clusters sin volver a conceder nada. No resucita las credenciales ni los enlaces: hay que emitir o generar otros.

La interfaz no te deja deshabilitarte a ti mismo (la API sí, salvo que seas el último administrador que puede entrar). Cuando alguien deja la empresa, deshabilítalo el mismo día. Con GitHub, sacarlo de la organización basta: ver Login con GitHub.

Los sujetos no se borran nunca: deshabilitar es la baja.

Administradores

La columna «Admin» da o quita el rol. Quitarlo pide confirmación. La interfaz no te deja cambiar tu propio rol (la API sí, salvo que seas el último administrador que puede entrar). Un administrador ve las pantallas «Clusters», «Permisos», «Credenciales», «CI», «Auditoría» y «Usuarios».

kubelatch impide quitar el rol, deshabilitar, desvincular de GitHub o desmarcar como emergencia al último administrador que puede entrar, y responde 409. «Puede entrar» significa: con contraseña, o, con GitHub activado, con contraseña de emergencia o con GitHub vinculado.

Cerrar sesiones

«Cerrar sesiones» cierra todas las sesiones web de esa persona al momento. No revoca sus credenciales: para eso, usa «Revocar» en «Credenciales» o deshabilítala.

Desvincular GitHub

Con GitHub activado, «Desvincular GitHub» separa la cuenta de su cuenta de GitHub y cierra sus sesiones. Hasta vincularla de nuevo con un «Enlace de vinculación», solo podrá entrar si es cuenta de emergencia.

Úsalo cuando alguien se equivocó de cuenta de GitHub, o cuando al vincular sale github_taken (esa cuenta de GitHub ya está vinculada a otra persona).

Bots

Un bot es un sujeto sin contraseña ni sesión: solo tiene credenciales. Sirve para CI, Argo CD y cualquier automatización.

  1. En «Usuarios», elige «Tipo» → «Bot (CI, Argo CD…)».
  2. Pon el nombre en «Login» (minúsculas, dígitos y guiones, de 1 a 63 caracteres) y, si quieres, un «Nombre» descriptivo.
  3. Pulsa «Crear bot».
  4. Concédele permisos en «Permisos», como a cualquier sujeto.

Hay dos formas de darle credenciales:

  • Desde GitHub Actions, sin secretos: una trust rule en «CI» (CI: trust rules).
  • A mano: en «Credenciales» → «Emitir para un sujeto», elige el bot, pon «Nombre», «Duración» y, si quieres, un «Cluster», y pulsa «Emitir credencial». El token y el kubeconfig se muestran una sola vez. Toda credencial caduca: para un bot, como mucho a los 90 días (KUBELATCH_MAX_TTL_BOT).

Guarda el kubeconfig en el gestor de secretos de la herramienta que lo use y apunta en tu calendario su caducidad. Emitir una credencial exige que el bot tenga al menos un permiso activo.

Un bot comprometido: revoca sus credenciales en «Credenciales» o deshabilítalo, que las revoca todas y lo saca de los clusters. «Enlace de reset» y «Cerrar sesiones» no se aplican a bots.

Por API

Todo lo anterior existe en la API JSON, por ejemplo POST /api/subjects (con "kind":"bot" para un bot), POST /api/subjects/<id>/disable, /enable, /logout y /reset-link, y DELETE /api/subjects/<id>/github. La lista completa está en API HTTP.