HashiCorp Vault para IA local
Qué cubre este artículo sobre HashiCorp Vault
- Qué es Vault y cuándo conviene usarlo.
- Cómo ejecutar Vault localmente con Docker.
- Almacenar, leer y rotar secrets.
- Cómo funcionan las credenciales dinámicas.
- Integración de Vault con agentes de IA y herramientas de auto-hospedaje.
Introducción: HashiCorp Vault para IA local
HashiCorp Vault es una herramienta empresarial para gestionar secrets, credenciales y claves de cifrado. Ofrece almacenamiento cifrado, credenciales dinámicas, rotación automática y control de acceso granular. Para proyectos locales de IA también resulta útil cuando necesitas administrar muchas claves API, contraseñas de base de datos o certificados.
En homelabs pequeños, Vault suele ser excesivo. Sin embargo, cuando múltiples agentes, herramientas y contenedores requieren secrets, un gestor centralizado cobra sentido. Vault es especialmente valioso si necesitas credenciales dinámicas de base de datos o tokens de acceso con duración limitada.
Conceptos clave
- KV Engine: Almacenamiento de clave-valor para secrets.
- Dynamic Secrets: Credenciales efímeras generadas automáticamente.
- PKI Engine: Emisión y gestión de certificados.
- Transit Engine: Cifrado como servicio.
- Policy: Define quién puede acceder a qué rutas.
- Token: Clave de acceso de corta duración.
- AppRole: Método de autenticación para aplicaciones.
- Unseal: Desbloquear el almacenamiento de Vault.
Por qué Vault para IA local
- Gestión centralizada: Un único lugar para todos los secrets.
- Sin claves codificadas: Las aplicaciones obtienen secrets en tiempo de ejecución.
- Registros de auditoría: Quién accedió a qué secret y cuándo.
- Rotación automática: Cambio de contraseñas de base de datos sin intervención.
- Tokens limitados en tiempo: Reduce riesgos si hay filtraciones.
Instalación con Docker
Un setup simple para pruebas funciona con Docker Compose:
services:
vault:
image: hashicorp/vault:latest
container_name: vault
ports:
- "8200:8200"
environment:
- VAULT_DEV_ROOT_TOKEN_ID=MEIN_DEV_TOKEN
- VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200
volumes:
- vault-data:/vault/file
cap_add:
- IPC_LOCK
command: server -dev -dev-root-token-id="MEIN_DEV_ROOT_TOKEN"
volumes:
vault-data:
Para iniciar:
docker compose up -d
La interfaz web está disponible en http://localhost:8200.
Setup en producción
Para entornos de producción, Vault no debe ejecutarse en modo dev:
- Usa almacenamiento basado en disco.
- Activa TLS.
- Genera múltiples claves Unseal.
- Autentica con AppRole, certificados TLS o LDAP.
- Habilita audit logging.
Almacenar el primer secret
Después de iniciarlo, te conectas:
export VAULT_ADDR='http://localhost:8200'
export VAULT_TOKEN='MEIN_DEV_TOKEN'
Para guardar un secret:
vault kv put secret/ollama-api-key key=MEIN_KEY
Para leerlo:
vault kv get secret/ollama-api-key
Integración en aplicaciones
Las aplicaciones pueden recuperar secrets a través de la API REST o un SDK:
import requests
headers = {"X-Vault-Token": "MEIN_DEV_TOKEN"}
resp = requests.get("http://localhost:8200/v1/secret/data/ollama-api-key", headers=headers)
data = resp.json()
print(data["data"]["data"]["key"])
En producción, en lugar del token raíz, usa AppRole o un camino autenticado por máquina.
Políticas
Vault utiliza rutas y policies para controlar el acceso:
path "secret/data/ollama/*" {
capabilities = ["read"]
}
Las policies se vinculan a tokens o roles.
Credenciales dinámicas de base de datos
Una de las características más poderosas es la generación de usuarios de base de datos efímeros:
vault secrets enable database
vault write database/config/my-postgres \
plugin_name=postgresql-database-plugin \
allowed_roles="readonly" \
connection_url="postgresql://{{username}}:{{password}}@db:5432/postgres" \
username="vaultadmin" \
password="vaultpass"
Crear una rol:
vault write database/roles/readonly \
db_name=my-postgres \
creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; \
GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \
default_ttl="1h" \
max_ttl="24h"
Las aplicaciones solicitan ahora credenciales que expiran después de una hora.
Vault y agentes de IA
Agentes de IA como OpenClaw u OpenHands necesitan frecuentemente claves API. En lugar de almacenarlas en archivos .env, pueden recuperarlas de Vault:
- El agente inicia con un token de Vault.
- Lee claves API antes de usarlas.
- Los tokens son de corta duración.
- La rotación ocurre centralmente.
Esto simplifica la gestión de múltiples proveedores y reduce riesgos.
Errores comunes
- Modo dev en producción: Los datos se pierden al reiniciar.
- Usar el token raíz en todas partes: Riesgo de seguridad.
- Sin TLS: La comunicación no está cifrada.
- Perder claves Unseal: No se puede desbloquear Vault nuevamente.
- Policies demasiado permisivas: Cualquiera puede leer todo.
- Sin backups: Los datos de Vault deben estar respaldados.
Enlaces y referencias útiles
- BotServ.de Secret Management
- BotServ.de Variables de entorno
- BotServ.de Rotación de secrets
- BotServ.de Gestionar claves API de forma segura
FAQ: HashiCorp Vault localmente
¿Es Vault demasiado para un homelab pequeño?
A menudo sí. Para pocos secrets bastan archivos .env o Infisical. Vault vale la pena con múltiples agentes y credenciales dinámicas.
¿Puedo instalar Vault sin Docker? Sí, hay binarios disponibles para Linux, macOS y Windows.
¿Qué sucede si pierdo datos? En modo dev, todos los datos se pierden al reiniciar. En modo producción, debes tener backups y claves Unseal guardadas.
¿Qué tan seguro es Vault? Muy seguro si usas TLS, autenticación fuerte y políticas bien configuradas.
¿Puede Vault rotar secrets automáticamente? Sí, especialmente con credenciales dinámicas de base de datos y algunos proveedores cloud.
Fuentes y lecturas adicionales
- HashiCorp Vault Docs: https://developer.hashicorp.com/vault/docs
- Vault Docker Image: https://hub.docker.com/r/hashicorp/vault/
- Vault Learn: https://developer.hashicorp.com/vault/tutorials
Resumen: HashiCorp Vault para IA local
HashiCorp Vault es un gestor de secrets poderoso que también aporta valor en setups locales de IA. Con Docker puedes probarlo rápidamente, pero para operación permanente necesitas TLS, backups, claves Unseal y políticas bien pensadas. Especialmente con muchas claves API, agentes y bases de datos, Vault justifica su inversión mediante gestión centralizada, registros de auditoría y credenciales dinámicas. Quienes dominen su complejidad obtienen un sistema profesional de gestión de secretos en su propia red.


