Skip to main content

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:

  1. Le 5 unseal keys.
  2. 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

  1. Inserisci:

    Key shares: 5
    Key threshold: 3
    
  2. Lascia non configurate le sezioni PGP, salvo policy aziendale esistente.

  3. Clicca:

    Initialize
    
  4. Salva immediatamente le 5 unseal keys.

  5. Salva immediatamente l’initial root token.

  6. Distribuisci le unseal keys a custodi diversi.

  7. Usa il root token solo per:

    • configurazione iniziale;
    • creazione utenti admin;
    • recovery.
  8. Dopo aver creato un utente admin dedicato, conserva il root token e non usarlo nel lavoro quotidiano.


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.