Installazione
Deploy
Componenti
Utenti / Dev
|
| HTTPS
v
Caddy esistente
|
| reverse_proxy
v
OpenBao container
|
v
Volume Docker persistente / directory bind mount
sudo mkdir -p /opt/openbao/{config,data,logs}
sudo chown -R 100:1000 /opt/openbao
cd /opt/openbao
/opt/openbao/
├── docker-compose.yml
├── config/
│ └── openbao.hcl
├── data/
└── logs/
sudo nano /opt/openbao/config/openbao.hcl
Contenuto:
ui = true
disable_mlock = true
storage "raft" {
path = "/openbao/data"
node_id = "openbao-01"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = true
}
api_addr = "https://bao.example.com"
cluster_addr = "http://openbao:8201"
log_level = "info"
sudo nano /opt/openbao/docker-compose.yml
Contenuto:
services:
openbao:
image: ghcr.io/openbao/openbao:latest
container_name: openbao
restart: unless-stopped
command: server -config=/openbao/config/openbao.hcl
cap_add:
- IPC_LOCK
volumes:
- /opt/openbao/config:/openbao/config:ro
- /opt/openbao/data:/openbao/data
- /opt/openbao/logs:/openbao/logs
ports:
- "127.0.0.1:8200:8200"
environment:
BAO_ADDR: "http://127.0.0.1:8200"
networks:
- openbao-net
security_opt:
- no-new-privileges:true
mem_swappiness: 0
networks:
openbao-net:
name: openbao-net
Primo avvio
Questa schermata è la fase di inizializzazione di OpenBao.
Qui OpenBao ti chiede di creare le root keys / unseal keys, cioè le chiavi necessarie per sbloccare il vault in caso di riavvio, manutenzione o emergenza.
Valori consigliati per il tuo scenario
Per un deployment aziendale semplice, single-node, senza HA e senza auto-unseal, ti consiglio:
| Campo | Valore consigliato |
|---|---|
| Key shares | 5 |
| Key threshold | 3 |
Quindi:
Key shares: 5
Key threshold: 3
Significa:
- OpenBao genererà 5 key shares.
- Ne serviranno almeno 3 per fare unseal.
- Nessuna singola persona potrà sbloccare OpenBao da sola, se distribuite correttamente.
Cosa significa in pratica
Con 5 / 3:
Totale chiavi generate: 5
Chiavi necessarie per unseal: 3
Esempio di distribuzione:
| Chiave | Custode |
|---|---|
| Key 1 | Responsabile IT |
| Key 2 | DevOps Lead |
| Key 3 | Security Officer |
| Key 4 | CTO / IT Manager |
| Key 5 | Cassaforte digitale aziendale / emergenza |
Per sbloccare OpenBao dopo un riavvio serviranno 3 di queste 5 chiavi.
Posso usare valori più semplici?
Sì, ma valuta il rischio.
Opzione più semplice
Key shares: 3
Key threshold: 2
Pro:
- Più semplice da gestire.
- Bastano 2 persone per fare unseal.
Contro:
- Meno resilienza organizzativa.
- Se perdi 2 chiavi su 3, non puoi più sbloccare OpenBao.
Opzione ultra-semplice, non consigliata in azienda
Key shares: 1
Key threshold: 1
Pro:
- Facilissima.
Contro:
- Una sola persona/chiave può sbloccare tutto.
- Se perdi quella chiave, sei bloccato.
- Non adatta a un contesto aziendale.
Cosa fare con PGP?
Nella schermata vedo due sezioni:
- Encrypt output with PGP
- Encrypt root token with PGP
Per il setup iniziale ti consiglio:
Non usare PGP, a meno che abbiate già una procedura PGP aziendale consolidata.
Quindi puoi lasciare chiuse/non configurate queste sezioni.
Il motivo è pratico: PGP aumenta la sicurezza dell’output, ma se non avete già gestione chiavi PGP, custodi, revoca, backup delle private key e procedure documentate, rischia di complicare il recovery.
Cosa succede dopo aver cliccato Initialize
Dopo Initialize, OpenBao mostrerà qualcosa tipo:
Unseal Key 1: ...
Unseal Key 2: ...
Unseal Key 3: ...
Unseal Key 4: ...
Unseal Key 5: ...
Initial Root Token: ...
Questi dati sono estremamente sensibili.
Cosa devi salvare subito
Devi salvare:
- Le 5 unseal keys.
- L’initial root token.
Non salvarle in:
- chat;
- email;
- file di testo sul desktop;
- repository Git;
- ticket Jira;
- documenti condivisi senza cifratura.
Salvale invece in:
- password manager aziendale;
- cassaforte digitale;
- vault separato;
- supporto offline cifrato;
- procedura cartacea sigillata, se usate policy di emergenza.
Procedura consigliata
Subito dopo: unseal
Dopo l’inizializzazione OpenBao sarà ancora sealed.
Dovrai inserire 3 delle 5 chiavi per sbloccarlo.
Puoi farlo dalla UI oppure da CLI:
docker exec -it openbao bao operator unseal
docker exec -it openbao bao operator unseal
docker exec -it openbao bao operator unseal
Ogni comando richiederà una chiave diversa.
Raccomandazione finale
Per il tuo caso aziendale scegli:
Key shares: 5
Key threshold: 3
e lascia PGP disattivato, salvo che abbiate già una gestione PGP interna ben definita.