Implantação
OpenBao auto-unseal · Chave estática
Auto-unseal do OpenBao do diagnos com uma chave estática de 32 bytes guardada por você, e por que é a opção de selo mais fraca.
Nesta página
English · Português (Brasil)
Envolve a master key do OpenBao com uma chave crua de 32 bytes AES-256-GCM-96 que você gera e guarda por conta
própria — sem KMS de nuvem, sem um segundo OpenBao/Vault. Verificado contra
openbao.org/docs/configuration/seal/static (docs da v2.6.x)
— veja seal.hcl para o stanza exato que este overlay traz.
Aviso
A própria documentação do OpenBao é direta sobre este: "avalie com cuidado o uso do Static Key Auto Unseal para
ver se atende às propriedades de segurança desejadas." Um Secret do Kubernetes só está tão protegido quanto a
cifragem do etcd e o RBAC do seu cluster — diferente de todo outro overlay aqui, este não soma nenhuma
fronteira de confiança separada (nenhuma chamada a KMS de nuvem, nenhum segundo OpenBao) entre "ler este Secret" e
"ler a sessão salva de todo workspace." Use só onde já existe um gerenciador de segredos externo e confiável para
entregar esta chave, ou para um ambiente genuinamente descartável — nunca como escolha padrão sobre
aws/gcp/azure/transit.
1. Gerar a chave#
openssl rand -base64 32
2. Aplicar#
kubectl create secret generic openbao-static-seal \
--from-literal=OPENBAO_STATIC_SEAL_CURRENT_KEY=<output of step 1> -n openbao
kubectl apply -k deploy/k8s/autounseal/static
O current_key_id de seal.hcl traz imgexam-static-v1 — mantenha o id da chave como está; ele é registrado pelo
OpenBao junto de cada segredo que sela, então renomeá-lo (mesmo com os pacotes tendo migrado de imgexam para
diagnos) quebraria o unseal de um OpenBao que já selou dado sob ele. Trate-o como um rótulo estável, não como um
nome de produto.
Rotação#
Defina previous_key_id/previous_key em seal.hcl (mesmo padrão env://, uma segunda chave no Secret) junto de
um current_key_id/current_key novos — o OpenBao volta a envolver com a chave nova daí em diante, mas continua
lendo o que foi selado sob a anterior. Remova o par previous_* só quando tiver certeza de que nada mais precisa
dele.
Reaproveitado pelo Compose#
Defina OPENBAO_SEAL=static no deploy/compose/.env e OPENBAO_STATIC_SEAL_CURRENT_KEY com o mesmo valor do
passo 1.