broker de credenciales para Kubernetes

Deja de pelearte con las credenciales de Kubernetes

kubelatch da a cada persona y a cada pipeline de CI su propia credencial para tus clusters, con permisos por niveles, caducidad y registro de cada petición.

Un kubeconfig de admin compartido, sustituido por una credencial por persona: kubectl pasa por kubelatch, cada petición queda auditada y una credencial revocada recibe 401 al instante. Ver el vídeo (24 s, MP4)

// el problema

Nadie sabe quién tiene el kubeconfig de admin.

Lo habitual es un kubeconfig de admin que pasa de mano en mano, o una ServiceAccount creada a mano para cada persona. Nadie sabe quién la usa ni cuándo caduca. kubelatch pone un dueño, una caducidad y un registro detrás de cada credencial.

Sin kubelatch

admin.conf
# compartido en #platform, copiado en cinco portátiles
users:
- name: kubernetes-admin
  user:
    client-certificate-data: LS0tLS1CRUdJTi…
    client-key-data: LS0tLS1CRUdJTiBSU0Eg…
  • Nadie sabe quién tiene una copia.
  • Vale lo que dure su certificado: un año o más.
  • El API server ve kubernetes-admin para todos.
  • Quitarlo obliga a rotar credenciales en todo el cluster.

Con kubelatch

credenciales
dueño          nombre          cluster   caduca     último uso
ana            portátil        prod-eu   en 12 d    hace 2 min
luis           k9s             todos     en 27 d    hace 1 h
bot:shop-api   github-actions  prod-eu   en 58 min  ahora
  • Cada credencial tiene dueño y nombre.
  • Caduca sola, en días, no en años.
  • Cada petición queda registrada a nombre de esa persona.
  • Revócala y el siguiente kubectl recibe 401.

// qué obtienes

Accesos que puedes explicar en una auditoría.

Una credencial propia

Un token klt_ con su kubeconfig para cada persona o pipeline, con caducidad y revocable al instante. Los workflows de GitHub Actions obtienen el suyo sin guardar ningún secreto en GitHub.

kubeconfig · klt_3fQ9… · caduca en 30 d

Permisos por niveles

Seis niveles fijos sobre un namespace o un cluster entero. kubelatch mantiene el RBAC de cada cluster, así que nadie escribe un RoleBinding a mano.

viewer · developer · debugger · secrets-reader · admin · cluster-admin

Inventario

De quién es cada credencial, a qué clusters llega, hasta cuándo vale y cuándo se usó por última vez.

ana · portátil · quedan 12 d · usada hace 2 min

Auditoría por petición

Cada petición al API server con quién, qué, dónde y el resultado, incluidos exec y port-forward.

ana exec web-7f9c (shop) 101

Cualquier cluster

Gestionado o autogestionado, funciona igual: kubelatch solo usa la API estándar de Kubernetes.

EKS · GKE · AKS · kubeadm · k3s · RKE2 · Talos

Un binario y Postgres

Una interfaz web, una API, el proxy y el reconciliador de RBAC en un solo binario de Go. Se entra con GitHub o con cuentas locales.

kubelatch + postgres

// cómo funciona

kubectl habla con kubelatch. kubelatch habla con tu cluster como tú.

  1. Un admin concede un nivel

    Por ejemplo developer en el namespace shop de prod-eu, con caducidad si debe terminar.

  2. Entras y obtienes un kubeconfig

    Emite una credencial en la interfaz web y úsala con kubectl, k9s, Lens o Helm. No hay nada que instalar.

  3. Cada petición pasa por kubelatch

    Comprueba el token, reenvía la petición al cluster suplantándote y la registra.

funciona con EKSGKEAKSkubeadmk3sRKE2Talos

Deja de pelearte con las credenciales de Kubernetes.