OpenBao – centrálna správa, uchovávanie a distribúcia citlivých dát

OpenBao alebo Hashicorp Vault? OpenBao je open-source fork HashiCorp Vault-u, ktorý vznikol v roku 2023, keď HashiCorp zmenil licenciu Vault-u z MPL 2.0 na BSL.

Znamená to, že Vault už nie je plne open-source projekt. OpenBao si vzala pod krídla Linux Foundation (ktorú podporujú Red Hat, SUSE, Futurewei a ďalší) a má za cieľ zachovať si 100 % kompatibilitu s Vault API a rozvíjať projekt komunitne ako dlhodobo otvorený a bez vendor lock-inu.

Secrets management

OpenBao (a teda aj Vault) rieši centrálne ukladanie a správu secrets. V praxi to znamená, že namiesto toho, aby sme mali heslá v GitLabe, configoch alebo v poznámkach, všetko uložíme v jednom managemente, vydávame krátkodobé tokeny a aplikačné kódy nikdy nemusia vidieť samotné heslá.

Čo všetko teda s OpenBaom vieme zabezpečiť?

  1. Bezpečné uchovávanie
    • hesiel, API kľúčov, certifikátov, tokenov, SSH kľúčov … a to všetko šifrované, auditované a kontrolované.
  2. Dynamické secrets
    • OpenBao/Vault vie na požiadanie vygenerovať napr. databázové konto, ktoré platí len pár minút. Znižuje sa tak riziko úniku hesiel.
  3. Politiky a prístupové práva
    • Vieme presne nastaviť, kto a na čo má právo (napr. aplikácia dostane iba token na čítanie konkrétnej databázy).
  4. Integrácie
    • Integrácia je možná s Kubernetes, OpenShift, Terraform, CI/CD pipeline, VMware, cloudovými službami (AWS, Azure, GCP), …
    • Vie byť Root CA alebo Intermediate CA.
  5. Audit a compliance
    • Každý prístup je logovaný a teda vieme dokázať, kto a kedy pristupoval ku ktorým secrets.

Inštalácia a prvé spustenie

  1. Stiahneme si OpenBao z oficiálnych stránok. Vyberieme si OS na ktorom budeme OpenBao prevádzkovať. V mojom prípade je to Windows.
  2. Obsah stiahnutého .zip súboru, rozbalíme do cieľového adresára. Ja preferujem cestu: C:\Program Files\OpenBao.
  3. Pridáme cestu k adresáru do sytémových “Environment Variables” pomocou powershellu:
    [System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\OpenBao", [System.EnvironmentVariableTarget]::Machine)
  4. Ak nemáme zašifrovaný disk, je dobré šifrovať aspoň swap/paging file operačného systému.
    • Citlivé dáta v RAM (heslá, šifrovacie kľúče, dokumenty, obsah e-mailov, cache prehliadača a pod.) sa môžu dostať do pagefile.sys. Ak nie je šifrovaný, niekto, kto má prístup k disku (napr. cez offline analýzu disku, forenzné nástroje alebo v prípade krádeže notebooku), si tieto dáta môže vyčítať. Keď je zapnutý Encrypt paging file, Windows pred vypnutím/reštartom súbor automaticky zmaže a pri štarte ho znova vytvorí – tým sa predchádza zneužitiu starého obsahu swapu.
    • Kontrola, či je šifrovanie paging file zapnuté:
      fsutil behavior query encryptpagingfile
    • Ak nie je, šifrovanie zapneme:
      fsutil behavior set encryptpagingfile 1

bao server -dev

Po predchádzajúcich krokoch, máme “inštaláciu” dokončenú a OpenBao pripravené na použitie. Ak sa chceme rýchlo zoznámiť s OpenBaom a zároveň nám nebude vadiť, že všetky nastavenia a secrets sa budú ukladať do RAMky, môžeme spustiť OpenBao server v dev režime.

bao server -dev

Príklad výstupu:

WARNING! dev mode is enabled! In this mode, OpenBao runs entirely in-memory
and starts unsealed with a single unseal key. The root token is already
authenticated to the CLI, so you can immediately begin using OpenBao.

You may need to set the following environment variables:

PowerShell:
    $env:BAO_ADDR="http://127.0.0.1:8200"
cmd.exe:
    set BAO_ADDR=http://127.0.0.1:8200

The unseal key and root token are displayed below in case you want to
seal/unseal the Vault or re-authenticate.

Unseal Key: H2XIQJkcPwxN7pVvyZW6RXRQQgtLVrNIScYOCO75DzM=
Root Token: s.HeKvDg9AShcrXeeAOCNGO1Gx

Development mode should NOT be used in production installations!

Otvorme si druhé powershell okno a nastavme premennú $env:BAO_ADDR:

$env:BAO_ADDR="http://127.0.0.1:8200"

Teraz sa už môžeme prihlásiť:

bao login <root_token_z_predchádzajúceho_výstupu>

Pre vytvorenie prvého “secretu”, v našom prípade mena a hesla do vCenter servera, spustíme nasledujúci príkaz:

bao kv put -mount=secret vCenter username='psguy@vsphere.local' password='oms#D2@$29,sa2jel;8'

Mount point (-mount) (alebo kv-v2 engine) s názvom “secret” sa vytvára automaticky pri spustení servera -dev, preto ho nie je potrebné explicitne vytvárať.

Ak si chceme zobraziť uložené meno a heslo pre vCenter, urobíme tak príkazom:

bao kv get -mount=secret vCenter

Príklad výstupu:

=== Secret Path ===
secret/data/vCenter

======= Metadata =======
Key                Value
---                -----
created_time       2025-08-31T09:47:03Z
custom_metadata    <nil>
deletion_time      n/a
destroyed          false
version            1

====== Data ======
Key         Value
---         -----
password    oms#D2@$29,sa2jel;8
username    psguy@vsphere.local

Ak chceme zobraziť iba heslo na vCenter:

bao kv get -mount=secret -field=password vCenter

Niekedy je jednoduchšie konfigurovať OpenBao a pridávať/čítať secrets cez GUI. Otvoríme si teda webový prehliadač, stránku http://127.0.0.1:8200/ a prihlásime sa root tokenom, ktorý sme už použili vyššie.

Zobrazenie vCenter username, potom môže vyzerať aj takto.

Záver

V tomto článku sme si predstavili OpenBao, vysvetlili sme si inštaláciu a pridali prvý secret. Najbližšie si povieme, ako nainštalovať OpenBao tak, aby sa secrets ukladali na disk a zároveň ako ich aplikovať v kóde.

Súvisiace články:

OpenBao – vytvorenie configu a základné nastavenie

OpenBao – politiky, tokeny a reálne použitie

OpenBao – HA cluster

OpenBao – PKI

 

Author: Martin

Infrastructure engineer | virtualization & cloud enthusiast | vSphere specialist | blogger | Veeam Vanguard 2021,2022,2023 | VMware vExpert 2017 - 2025 | VMCE | VCP-VCF Architect, VCP-DCV, NV, TKO, VCAP-DCV, CompTIA Security+ | Slovak VMUG Leader | Slovak VUG Leader | husband&father