Uso do Vault#

Inicialização do Vault e migração de segredos#

1. Verifique se os serviços estão em execução#

# O Vault na configuração é iniciado por meio do perfil opcional vault

# Copie a configuração do vault (os arquivos são substituídos pelos novos)
cp -af ./vault/config/default/. ./vault/config

# Inicie os serviços com o perfil de BD selecionado + perfil vault
# Opção 1: MariaDB + Vault
docker compose --profile mariadb --profile vault up -d

# Opção 2: PostgreSQL + Vault
docker compose --profile pg --profile vault up -d

2. Execute a inicialização e o unseal do Vault#

# Abra um shell no contêiner do Vault
docker compose exec orchestrator-vault sh

# Dentro do contêiner:
vault operator init
# salve todas as chaves após o comando
vault operator unseal
exit

Após o unseal, é necessário habilitar kv/ como KV v1.

# Abra um shell no contêiner do Vault (caso tenha saído)
docker compose exec orchestrator-vault sh

# Dentro do contêiner:
# exporte o root token
export VAULT_TOKEN='seu-root-token'

# Verificar mounts:
vault secrets list -detailed

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

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

exit
💡 Notas sobre a inicialização do Vault

vault operator init - inicializa o Vault e exibe:

  • Unseal Key
  • Initial Root Token

vault operator unseal - remove o seal (insira o Unseal Key 3 vezes a partir do passo init)

3. Defina o token no .env#

# Configure a variável de ambiente com o root-token
sed -i 's/^VAULT_TOKEN=.*/VAULT_TOKEN=root-token/' .env

4. Reinicie o orchestrator#

# Aplique o novo valor de VAULT_TOKEN
docker compose restart orchestrator

5. Execute a migração de segredos para o Vault#

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

(OPCIONAL) Migração inversa do Vault para o BD (rollback)#

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

O script restaura as senhas de robôs e assets do Vault de volta para o BD e as criptografa usando ORCHESTRATOR_ENCRYPTION_KEY.

💡 Verificação do resultado do rollback
  • a saída do comando deve conter as linhas [OK] Robots: ... restored, ... failed e [OK] Assets: ... restored, ... failed
  • nas tabelas robots e assets, os valores VAULT_MIGRATED devem ser substituídos por senhas criptografadas
  • docker compose logs -f orchestrator não deve conter erros Vault is not available
💡 Verificação do resultado
  • docker compose ps - os contêineres orchestrator e orchestrator-vault devem estar Up
  • docker compose logs -f orchestrator-vault - verificação dos logs do Vault
  • docker compose logs -f orchestrator - verificar que o backend iniciou após a reinicialização sem erros do Vault