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 KeyInitial 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, ... failede[OK] Assets: ... restored, ... failed - nas tabelas
robotseassets, os valoresVAULT_MIGRATEDdevem ser substituídos por senhas criptografadas docker compose logs -f orchestratornão deve conter errosVault is not available
💡 Verificação do resultado
docker compose ps- os contêineresorchestratoreorchestrator-vaultdevem estarUpdocker compose logs -f orchestrator-vault- verificação dos logs do Vaultdocker compose logs -f orchestrator- verificar que o backend iniciou após a reinicialização sem erros do Vault