Uso de Vault#

Inicialización de Vault y migración de secretos#

1. Asegúrese de que los servicios están en ejecución#

# Vault en la configuración se inicia mediante el perfil opcional vault

# Copie la configuración de vault (los archivos son reemplazados por nuevos)
cp -af ./vault/config/default/. ./vault/config

# Inicie los servicios con el perfil de BD seleccionado + perfil vault
# Opción 1: MariaDB + Vault
docker compose --profile mariadb --profile vault up -d

# Opción 2: PostgreSQL + Vault
docker compose --profile pg --profile vault up -d

2. Realice la inicialización y unseal de Vault#

# Abra un shell en el contenedor de Vault
docker compose exec orchestrator-vault sh

# Dentro del contenedor:
vault operator init
# guarde todas las claves tras el comando
vault operator unseal
exit

Tras el unseal, es necesario habilitar kv/ como KV v1.

# Abra un shell en el contenedor de Vault (si salió de él)
docker compose exec orchestrator-vault sh

# Dentro del contenedor:
# exporte el token root
export VAULT_TOKEN='su-root-token'

# Verificar mounts:
vault secrets list -detailed

# Habilitar KV v1 en el mount kv/
vault secrets enable -path=kv -version=1 kv

# Verificar que aparece kv/ con map[version:1]
vault secrets list -detailed

exit
💡 Notas sobre la inicialización de Vault

vault operator init - inicializa Vault y muestra:

  • Unseal Key
  • Initial Root Token

vault operator unseal - quita el seal (ingrese el Unseal Key 3 veces del paso init)

3. Establezca el token en .env#

# Configure la variable de entorno con el root-token
sed -i 's/^VAULT_TOKEN=.*/VAULT_TOKEN=root-token/' .env

4. Reinicie el orchestrator#

# Aplique el nuevo valor de VAULT_TOKEN
docker compose restart orchestrator

5. Realice la migración de secretos a Vault#

docker compose exec orchestrator php backend/bin/vault-migrate.php

(OPCIONAL) Migración inversa desde Vault a la BD (rollback)#

docker compose exec orchestrator php backend/bin/vault-rollback.php

El script restaura las contraseñas de robots y assets desde Vault de vuelta a la BD y las cifra utilizando ORCHESTRATOR_ENCRYPTION_KEY.

💡 Verificación del resultado del rollback
  • la salida del comando debe contener las líneas [OK] Robots: ... restored, ... failed y [OK] Assets: ... restored, ... failed
  • en las tablas robots y assets, los valores VAULT_MIGRATED deben ser reemplazados por contraseñas cifradas
  • docker compose logs -f orchestrator no debe contener errores Vault is not available
💡 Verificación del resultado
  • docker compose ps - los contenedores orchestrator y orchestrator-vault deben estar Up
  • docker compose logs -f orchestrator-vault - verificación de los logs de Vault
  • docker compose logs -f orchestrator - verificar que el backend se inició tras el reinicio sin errores de Vault