-
Me
The only one who can unseal it.
-
My password manager
Where the unseal key lives, plus an emergency copy of both keys. Off the server.
-
Element
The alerts room: «sealed» and «unsealed again».
-
The repository
It only keeps the names of each group's secrets. The values are in OpenBao.
-
Proxmox API
Terraform gets in with a token that now comes from OpenBao.
-
Backup disk
The container's daily copy, on another disk.
-
Own TLS
Its own certificate, pinned on the client: nobody can pretend to be OpenBao.
- OpenBao · Vault
- Linux / SSH hardening
-
Integrated storage
Data is encrypted on disk: without unsealing it can't be read, not even from the copy.
-
The seal
After every start, OpenBao hands out nothing until someone enters the key.
-
Audit log
Who asked for what and when, every time. Declared in the configuration.
- OpenBao · Vault
- Linux / SSH hardening
-
Deployment AppRole
The identity the control node uses to ask for the keys.
-
Bound to one origin
That role only works from the control node. Copied to another machine, it's useless.
-
Short tokens
Every token expires in 15 minutes. If one leaked, it would be worth little and from one place only.
-
Read-only policy
It can read the two keys and nothing else: no writing, no listing other paths.
- OpenBao · Vault
- Linux / SSH hardening
-
Secrets per group
Each Ansible group reads its own from OpenBao when deploying. There are no encrypted files left, nor a password to open them.
-
Terraform with borrowed keys
A Terraform wrapper that fetches the credentials from OpenBao and passes them in memory.
-
The deploy runner
Asks for the keys before every plan and every apply.
-
Write role
Scripts that create secrets use another role: it can only create and change the groups' ones, and only from the control node. It can't read the Terraform credentials.
-
Seal watcher
Every 10 minutes it checks whether OpenBao is sealed or not answering, and reports changes.
-
Unseal from the browser
Only from home or the VPN, with two-factor. I log in with the same single sign-on as the other panels.
-
Daily copy
The whole container, every night, on the backup server. The data is already encrypted.
-
Certificate authority
Signs the internal services' certificates over ACME, like Let's Encrypt. Its root is installed on every machine.
- OpenBao · Vault
- Linux / SSH hardening