TPTito Pinardo Gutiérrez
← Volver al rack
English
1U · BAOOpenBao · llaves · sello En producción

Posición 20 de 25 en el rack · En producción

Unidad 1U · Secretos

Los secretos, fuera del repositorio y del disco

Secretos en el repositorio: cero

Los secretos de toda la infraestructura vivían cifrados en el repositorio, con una sola contraseña guardada en el disco del nodo de control junto a las credenciales de Terraform. Ahora viven todos en OpenBao, la versión libre de Vault, y en el repositorio solo quedan sus nombres. Cada despliegue los pide con un rol de solo lectura, recibe un token de 15 minutos y los usa en memoria. Tras cada reinicio, OpenBao espera sellado hasta que lo abro yo. Y de paso firma los certificados de los servicios internos.

Qué guarda
Más de 90 secretos de todos los servicios, separados por grupo, las credenciales de Terraform y la autoridad que firma los certificados internos. En el repositorio solo están los nombres.
Quién los pide
Solo el nodo de control, con un rol de solo lectura que no vale desde ningún otro sitio. Yo entro con el mismo inicio de sesión que en el resto. Cada lectura queda auditada.
Tras un reinicio
Sellado hasta que lo abro con una clave que no está en ningún disco del servidor. Los servicios siguen funcionando; lo que se para son los cambios.
  • 0ficheros de secretos en el repositorio
  • 15 minlo que dura cada token
  • 90+secretos sacados del repositorio y comprobados uno a uno por su huella
  • 1clave para desellar, y no está en el servidor

Las llaves por dentro

De dónde salen los secretos de toda la infraestructura, quién puede pedirlos y qué pasa cuando el servidor se reinicia. Elige un recorrido.

Hermesde visita en la unidad

Pulsa una pieza o elige un recorrido. Si vienes de una habilidad, ya están encendidas las piezas donde la uso.

      Un despliegue con las llaves fuera del disco
      1. El runner de despliegue — Toca desplegar.
      2. AppRole del despliegue — El runner se identifica con su AppRole.
      3. Ligado a un origen — OpenBao comprueba que la petición viene del nodo de control.
      4. Política de solo lectura — Y que solo pide lo que su política permite: leer las dos llaves.
      5. Tokens cortos — Le da un token de 15 minutos.
      6. Secretos por grupo — Ansible pide con ese token los secretos de cada grupo.
      7. El repositorio — Del repositorio solo saca sus nombres.
      8. Terraform con llaves prestadas — Terraform recibe sus credenciales en memoria.
      9. API de Proxmox — Y habla con la API de Proxmox.
      10. Registro de auditoría — Cada lectura queda en la auditoría.
      Tras un reinicio
      1. El sello — El servidor arranca y OpenBao se queda sellado.
      2. Vigilancia del sello — La vigilancia lo ve en menos de 10 minutos.
      3. Element — Avisa en Element: «OpenBao está sellado».
      4. Yo — Lo veo.
      5. Mi gestor de contraseñas — Saco la clave de mi gestor de contraseñas.
      6. Desellar desde el navegador — La pego en la web, detrás de la puerta con doble factor.
      7. El sello — Desellado. Llega «vuelve a estar desellado».
      8. El runner de despliegue — Y los despliegues siguen donde estaban.
      Cambiar un secreto
      1. Yo — Tengo que cambiar una contraseña de un servicio.
      2. Desellar desde el navegador — Entro en OpenBao con mi inicio de sesión de siempre, con doble factor.
      3. Almacenamiento integrado — Creo una versión nueva del secreto en su grupo. La anterior queda guardada por si hay que volver.
      4. Registro de auditoría — El cambio queda en la auditoría.
      5. El runner de despliegue — El siguiente despliegue de ese servicio ya usa la nueva.
      6. El repositorio — En el repositorio no cambia nada: solo tiene el nombre.
      Certificados para lo que no da a internet
      1. El runner de despliegue — Ansible instala la raíz de la autoridad de casa en todos los equipos.
      2. Autoridad de certificados — La autoridad vive en OpenBao y habla ACME, el mismo protocolo que Let's Encrypt, solo para nombres internos y solo desde casa.
      3. Desellar desde el navegador — La puerta interna le pide los certificados de cada panel y los renueva sola, cada 90 días como mucho.
      4. Yo — Y mis navegadores confían en ellos sin avisos.
      Recuperar el acceso de administrador
      1. Yo — No hay token root guardado en ningún sitio, a propósito.
      2. Mi gestor de contraseñas — Cuando hace falta, se genera uno temporal con la clave de desellado.
      3. El sello — OpenBao trae ese camino cerrado: se abre un momento en la configuración y se reinicia, lo que lo sella otra vez.
      4. Política de solo lectura — Con el token temporal hago el cambio, y nada más.
      5. Registro de auditoría — Lo revoco: queda constancia en la auditoría.
      6. El sello — Y vuelvo a cerrar el camino. Lo compruebo: tiene que volver a responder que no.
      Si OpenBao se pierde del todo
      1. Disco de copias — El contenedor se rompe sin arreglo.
      2. Copia diaria — Se restaura de la copia diaria.
      3. Almacenamiento integrado — Sus datos siguen cifrados.
      4. El sello — Se desellan con la misma clave de siempre.
      5. Mi gestor de contraseñas — Y si se perdieran la copia y la clave, las dos llaves tienen su copia de emergencia en el gestor de contraseñas: se vuelve a montar desde cero.
      1. Yo

        El único que puede desellarlo.

      2. Mi gestor de contraseñas

        Donde está la clave de desellado, y una copia de emergencia de las dos llaves. Fuera del servidor.

      3. Element

        La sala de alertas: «sellado» y «vuelve a estar desellado».

      4. El repositorio

        Solo guarda los nombres de los secretos de cada grupo. Los valores están en OpenBao.

        • Git
        • Ansible
      5. API de Proxmox

        Terraform entra con un token que ahora sale de OpenBao.

        • Proxmox VE
      6. Disco de copias

        La copia diaria del contenedor, en otro disco.

      7. TLS propio

        Certificado propio, fijado en el cliente: nadie puede hacerse pasar por OpenBao.

        • OpenBao · Vault
        • Linux / SSH hardening
      8. Almacenamiento integrado

        Los datos van cifrados en disco: sin desellar no se pueden leer, ni siquiera desde la copia.

        • OpenBao · Vault
      9. El sello

        Tras cada arranque, OpenBao no entrega nada hasta que alguien pone la clave.

        • OpenBao · Vault
      10. Registro de auditoría

        Quién pidió qué y cuándo, cada vez. Declarado en la configuración.

        • OpenBao · Vault
        • Linux / SSH hardening
      11. AppRole del despliegue

        La identidad con la que el nodo de control pide las llaves.

        • OpenBao · Vault
      12. Ligado a un origen

        Ese rol solo vale desde el nodo de control. Copiado a otra máquina, no sirve.

        • Linux / SSH hardening
      13. Tokens cortos

        Cada token caduca en 15 minutos. Si se filtrara uno, valdría poco y desde un solo sitio.

        • OpenBao · Vault
      14. Política de solo lectura

        Puede leer las dos llaves y nada más: ni escribir, ni listar otras rutas.

        • OpenBao · Vault
        • Linux / SSH hardening
      15. Secretos por grupo

        Cada grupo de Ansible lee los suyos de OpenBao al desplegar. Ya no hay ficheros cifrados ni contraseña que los abra.

        • Ansible
      16. Terraform con llaves prestadas

        Un envoltorio de Terraform que saca las credenciales de OpenBao y se las pasa en memoria.

        • Terraform
      17. El runner de despliegue

        Pide las llaves antes de cada plan y de cada aplicación.

        • Terraform
        • Ansible
      18. Rol de escritura

        Los scripts que crean secretos usan otro rol: solo puede crear y cambiar los de los grupos, y solo desde el nodo de control. No lee las credenciales de Terraform.

        • OpenBao · Vault
      19. Vigilancia del sello

        Cada 10 minutos mira si OpenBao está sellado o no responde, y avisa al cambiar.

      20. Desellar desde el navegador

        Solo desde casa o la VPN, con doble factor. Entro con el mismo inicio de sesión que en el resto de paneles.

        • Linux / SSH hardening
      21. Copia diaria

        El contenedor entero, cada noche, en el servidor de copias. Los datos ya van cifrados.

        • LXC
      22. Autoridad de certificados

        Firma los certificados de los servicios internos por ACME, como Let's Encrypt. Su raíz está instalada en todos los equipos.

        • OpenBao · Vault
        • Linux / SSH hardening

      Lo que uso de mi árbol

      Pulsa una habilidad: se encienden en el mapa las piezas donde la uso y te cuento para qué.

      Terraform
      Un envoltorio que le pasa las credenciales de OpenBao en memoria, también en el despliegue por PR.
      Ansible
      Cada grupo lee sus secretos de OpenBao al desplegar; en el inventario solo están sus nombres.
      Proxmox VE
      El token de su API sale de OpenBao en cada plan.
      LXC
      Un contenedor sin privilegios solo para esto, con copia diaria a otro disco.
      Git
      En el repositorio solo están los nombres de los secretos: ni valores ni ficheros cifrados.
      Linux (Debian, Alpine, Arch)
      Debian con el paquete oficial y su suma comprobada.
      Linux / SSH hardening
      Cortafuegos que lo cierra todo salvo lo justo, certificado fijado en el cliente, web solo detrás de doble factor y ningún token root guardado.
      OpenBao · Vault
      Llaves maestras con AppRole de solo lectura ligado a su origen, tokens de 15 minutos, auditoría, TLS propio y desellado a mano.

      Bitácora de incidencias

      Averías reales. Lee el síntoma, elige la causa que creas y mira cómo se arregló.

      1. #1

        La auditoría que no se dejaba activar

        15-10-2026 · OpenBao

        El script de configuración inicial activaba la auditoría por la API, como dice media documentación de Vault. OpenBao lo rechazaba.

        ¿Qué crees que pasaba?

        Ver la solución
        Causa
        OpenBao 2.x ya no deja activar la auditoría por la API: es una medida de seguridad de esa rama, y se declara en el fichero de configuración.
        Solución
        El registro de auditoría va en el fichero de configuración que gestiona Ansible, y sale del script de puesta en marcha.
        Lección
        Un fork no es un clon: lo que vale para Vault hay que comprobarlo en OpenBao. Y lo que va en la configuración queda versionado con el resto.
      2. #2

        Sin token root, ¿cómo se cambia una contraseña?

        15-10-2026 · OpenBao

        Tocaba cambiar la contraseña de mi usuario de administrador. El token root se había revocado al terminar la instalación y el procedimiento de siempre para generar otro respondía «no permitido».

        ¿Qué crees que pasaba?

        Ver la solución
        Causa
        OpenBao 2.x trae cerrados por defecto los caminos sin autenticar para generar un token root. Así nadie puede intentarlo desde la red.
        Solución
        Abrirlo un momento en la configuración, generar el token con la clave de desellado, hacer el cambio, revocarlo y volver a cerrar. Comprobar que vuelve a negarse. Quedó escrito paso a paso.
        Lección
        Que lo peligroso venga cerrado está bien siempre que el camino para abrirlo esté escrito antes de necesitarlo.

      Cómo se construyó

      1. 15-10-2026

        Las llaves salen del disco

        • Contenedor propio con el paquete oficial y su suma fijada, TLS propio, cortafuegos que lo cierra todo salvo lo justo y copia diaria.
        • Las dos llaves dentro, comprobadas idénticas a las de antes; después, los ficheros en claro borrados y el token root revocado.
        • El nodo de control pide con un rol de solo lectura y tokens de 15 minutos.
      2. 15-10-2026

        El sello a mano

        • Vigilancia del sello con aviso en Element.
        • Desellar desde el navegador, detrás de la puerta interna con doble factor.
        • Monitorización y seguridad, como el resto de la flota.
      3. 15 al 18-10-2026

        Todos los secretos dentro

        • Más de 90 secretos de todos los grupos pasan del repositorio a OpenBao, comprobados uno a uno por su huella. En el repositorio quedan sus nombres.
        • Ya no hay ficheros cifrados ni contraseña que los abra.
        • Entrar con el inicio de sesión de casa y un rol de escritura solo para crear secretos.
        • Una autoridad de certificados propia, con ACME, para los servicios internos.
      4. 15-10-2026

        Primer rekey

        • Contraseña nueva para todos los secretos cifrados, con el contenido comprobado.
        • Recuperar el acceso de administrador, escrito paso a paso.

      Decisiones (y por qué)

      • Desellar

        A mano, siempre

        Desellar solo, sin servicios de fuera, implica guardar la clave en el propio servidor, y entonces OpenBao no protege de nada que tenga acceso al disco. El precio: tras un corte de luz no hay despliegues hasta que lo abro. Los servicios siguen funcionando.

      • Qué entra primero

        Las llaves maestras, y luego todo

        Con ellas se abre todo lo demás. Mover cada secreto de cada servicio a la vez habría sido un cambio enorme: primero un grupo de prueba y después el resto, comprobando que cada valor leído de OpenBao era idéntico al de antes.

      • Cómo se piden

        Solo lectura, desde un sitio y por 15 minutos

        Si algo se filtrara del nodo de control, un token caducado o copiado a otra máquina no sirve, y la auditoría dice qué se leyó.

      • El token root

        Ninguno guardado

        Se genera cuando hace falta, con la clave de desellado, y se revoca al terminar. Un root guardado es la llave de todas las llaves.

      • OpenBao o Vault

        OpenBao

        Es la versión libre de Vault, con licencia abierta y mantenida por la Linux Foundation. Para lo que uso, es lo mismo.

      Lo que aprendí

      • Una llave en el disco de la máquina que la usa no es una llave guardada.
      • Lo que se para con el sello son los cambios, no los servicios: es un buen precio.
      • El procedimiento de emergencia se escribe antes de la emergencia.

      Lo siguiente

      • Un kit de recuperación fuera del servidor con las claves que no pueden perderse.
      • Entrar con passkeys, sin contraseña.

      ¿Hablamos?

      Puedo contar cualquiera de estas decisiones en detalle en una entrevista.

      Descargar CV Contactar ← Volver al rack

      Reconstrucción a partir de mi documentación: sin direcciones, rutas ni nombres internos, y por supuesto sin ningún secreto.