搭建 OpenBao 密钥管理

适用场景

需要 Vault 兼容的密钥管理,但希望使用开源治理的替代方案。OpenBao 是 Vault 的社区分支,保留 KV、PKI、Transit、Kubernetes 认证等能力。

前置条件

步骤

  1. 安装 OpenBao:
helm repo add openbao https://openbao.github.io/openbao-helm/
helm install openbao openbao/openbao \
  --namespace openbao --create-namespace \
  --set server.ha.enabled=true \
  --set server.ha.raft.enabled=true \
  --set server.dataStorage.size=20Gi
kubectl -n openbao get pods
  1. 初始化并解封:
kubectl -n openbao exec -it openbao-0 -- bao operator init
kubectl -n openbao exec -it openbao-0 -- bao operator unseal <KEY_1>
kubectl -n openbao exec -it openbao-0 -- bao operator unseal <KEY_2>
kubectl -n openbao exec -it openbao-0 -- bao operator unseal <KEY_3>
  1. 登录并启用 KV:
kubectl -n openbao exec -it openbao-0 -- bao login <ROOT_TOKEN>
kubectl -n openbao exec -it openbao-0 -- bao secrets enable -path=secret kv-v2
kubectl -n openbao exec -it openbao-0 -- bao kv put secret/demo/db username=app password='***'
  1. 配置 Kubernetes 认证:
bao auth enable kubernetes
bao write auth/kubernetes/config kubernetes_host="https://kubernetes.default.svc"
bao write auth/kubernetes/role/demo \
  bound_service_account_names=demo \
  bound_service_account_namespaces=demo \
  policies=demo-read ttl=1h
  1. 配置审计和快照:
bao audit enable file file_path=/openbao/logs/audit.log
bao operator raft snapshot save /openbao/backup/openbao.snap

验证

回滚

常见坑

相关命令