¿Qué es HashiCorp Vault? Vault es una plataforma de gestión de secretos y cifrado que permite almacenar, generar y controlar el acceso a datos sensibles como claves API, credenciales de bases de datos, certificados TLS y tokens. Con Vault puedes centralizar secretos, emitir credenciales efímeras bajo demanda y aplicar el principio de mínimo privilegio en aplicaciones, CI CD e infraestructura.
Instalación rápida de Vault en Kubernetes en modo de desarrollo sin almacenamiento persistente. 1 Crea el namespace vault y establece el contexto. 2 Añade el repositorio Helm de HashiCorp y actualiza. 3 Instala el chart con server dev habilitado, dataStorage deshabilitado y la interfaz UI habilitada. Este despliegue es útil para pruebas porque no persiste datos y no requiere TLS, pero no es apropiado para producción.
Instalación estándar con almacenamiento Raft sin TLS para simplificar. Configura el modo standalone, habilita la UI, listener TCP en el puerto 8200 y 8201 con TLS deshabilitado, y usa storage raft con ruta interna en vault data. Activa un volumen persistente con tamaño 1Gi y expón la UI como ClusterIP para acceder con port forward. Instala el chart de Helm con un values de estos parámetros. En producción activa TLS, planifica almacenamiento y alta disponibilidad, y considera múltiples réplicas con Raft para resiliencia.
Conceptos clave Seal y Unseal. Cuando Vault arranca, está sellado. Puede leer el backend de almacenamiento físico pero no puede descifrar los datos. Los datos se cifran con una clave de cifrado protegida por una clave raíz. Para operar, Vault necesita descifrar esa clave raíz. El proceso de unseal aporta material criptográfico para reconstruir la clave maestra en memoria y, con ella, descifrar la clave de datos. Vault nunca escribe la clave maestra en disco y solo almacena datos cifrados.
Sellado de tipo Shamir. Por defecto, Vault divide la clave de desellado en varias participaciones usando Shamir Secret Sharing. Se define un número total de shares y un umbral. Los operadores introducen shares en cualquier orden hasta alcanzar el umbral, momento en el que Vault se desella y puede atender peticiones. Resumen práctico mínimo privilegio, datos cifrados siempre, clave maestra solo en memoria tras el unseal y necesidad de quórum para operar.
Estado del pod y proceso de inicialización. Tras desplegar, el pod principal de Vault suele aparecer como 0 1 Ready porque está sellado. Ejecuta la inicialización para generar shares de desellado y el token raíz. Introduce el número de shares requerido para alcanzar el umbral y verifica que el estado cambia a 1 1 Running. Luego inicia sesión con el token raíz para realizar configuraciones iniciales y crea un usuario o método de autenticación menos privilegiado para uso diario.
Autenticación de Kubernetes. Habilita el método auth kubernetes en Vault, crea un namespace para tus apps por ejemplo webapps y una service account por ejemplo vault-auth. Configura en Vault el token reviewer que usará para hablar con el API de Kubernetes, la URL del API del cluster y el certificado CA del cluster. ¿Por qué? Así Vault puede validar tokens de service account de los pods contra el API de Kubernetes y comprobar namespace y cuenta de servicio de origen.
Parámetros esenciales de la configuración. token_reviewer_jwt Token de una service account con permiso para usar la API TokenReview. kubernetes_host Dirección del API del cluster accesible desde el propio Vault. kubernetes_ca_cert CA del cluster para verificar TLS y evitar ataques de intermediario. Flujo de autenticación 1 El pod envía su token de service account a Vault. 2 Vault consulta al API de Kubernetes usando el token reviewer para validar. 3 Kubernetes confirma identidad namespace y service account. 4 Vault emite un token de Vault con las políticas asignadas.
Políticas en Vault. Crea una política por ejemplo myapp-policy que otorgue permisos mínimos necesarios sobre rutas de KV v2. Ejemplo conceptual permitir create update read delete list sobre secret data mysql y secret data frontend, y list sobre secret metadata mysql y secret metadata frontend. Recuerda que Vault es deny by default y todo acceso debe concederse explícitamente mediante políticas.
Asignación de pods a políticas. Crea un rol de Kubernetes en Vault, por ejemplo auth kubernetes role vault-role, que vincule bound_service_account_names vault-auth, bound_service_account_namespaces webapps, asigne la política myapp-policy y defina un ttl razonable. Con esto, cualquier pod que use esa service account en ese namespace podrá autenticarse y obtener un token con esa política.
Motor de secretos KV V2 y carga de datos. Habilita el motor de secretos kv en la ruta secret con version 2 y escribe las claves necesarias, por ejemplo secret mysql con variables MYSQL_DATABASE y MYSQL_ROOT_PASSWORD y secret frontend con referencias de configuración. KV v2 mantiene versionado, metadatos y control de borrado suave, lo que facilita auditoría y recuperación.
Inyección de secretos en pods con Vault Agent Injector. Añade anotaciones al pod o deployment para activar la inyección. Usa vault.hashicorp.com agent-inject true para encender el agente. Define vault.hashicorp.com role con el rol creado en Vault. Para cada secreto, usa vault.hashicorp.com agent-inject-secret-NOMBRE para indicar la ruta a leer por ejemplo secret mysql y, si lo deseas, una plantilla con vault.hashicorp.com agent-inject-template-NOMBRE para controlar el contenido exacto del archivo inyectado, por ejemplo una línea export MYSQL_ROOT_PASSWORD=valor. El sidecar autenticará con el token de service account, obtendrá los secretos y los escribirá en vault secrets dentro del contenedor, rotándolos si procede.
Acceso a la UI. Consulta el servicio de Vault en el namespace y realiza un port forward del servicio al puerto 8200 para acceder al panel desde tu equipo. En entornos productivos usa Ingress o un balanceador con TLS activo y políticas de acceso estrictas.
Eliminación del despliegue. Desinstala el release de Helm y elimina pods y persistent volume claims asociados si deseas limpiar completamente el entorno. Antes de borrar, exporta snapshots de Raft si necesitas conservar datos de producción.
Buenas prácticas de producción. Activa TLS extremo a extremo, emplea auto unseal con un KMS como AWS KMS o Azure Key Vault, aplica políticas de rotación y caducidad cortas, separa espacios de nombres lógicos por equipos y entornos, habilita auditoría, gestiona copias de seguridad y pruebas de restauración, y utiliza plantillas y controladores para inyección segura. Para clusters multi zona, dimensiona Raft con quórum suficiente y monitoriza latencia y estado de liderazgo.
En Q2BSTUDIO ayudamos a implantar Vault con Kubernetes de forma segura y escalable, integrándolo con pipelines, microservicios, mensajería y data platforms. Somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad y servicios cloud. Si necesitas reforzar la protección de tus secretos, cumplimiento normativo y gobierno de accesos, consulta nuestros servicios de ciberseguridad y pentesting. Si tu estrategia requiere infraestructuras elásticas, landing zones y observabilidad gestionada, explora nuestros servicios cloud AWS y Azure.
Palabras clave de nuestro valor para tu negocio aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Integramos Vault con pipelines de datos y cuadros de mando, habilitando gobernanza de secretos desde orígenes hasta consumo, y alineándolo con modelos de amenazas reales para minimizar riesgo y tiempo medio de remediación.