跳至正文
Wener Notes

OpenBao

约 2 分钟阅读
  • 是什么?
    • MPL-2.0, Golang
    • 的社区 fork,由 Linux Foundation 旗下 OpenSSF 托管
    • 功能和架构与 Vault 基本一致:密钥存储、动态密钥、数据加密(Transit)、租约与自动撤销、审计日志
  • 为什么有这个 fork
    • HashiCorp 2023-08 把 Vault(及 Terraform 等其他项目)从 MPL-2.0 改为 BUSL-1.1
    • OpenBao fork 自 Vault 最后一个 MPL-2.0 版本(v1.14.8 附近),此后独立演进
    • 定位是 Vault 的开源替代,CLI/HTTP API 大体兼容,迁移成本低
  • CLI 二进制名为 bao(区别于 Vault 的 vault),多数子命令和参数与 Vault 一致
  • 默认服务端口仍是 8200
  • 环境变量
    • BAO_ADDR 服务端地址(对应 Vault 的 VAULT_ADDR)
    • BAO_TOKEN 请求的 Token(对应 Vault 的 VAULT_TOKEN)
    • 部分版本仍兼容读取 VAULT_* 前缀的环境变量,升级/迁移时注意核对当前版本行为
bash
# 源码构建
mkdir -p bin
go build -o bin/bao .

# 启动开发模式服务 - 仅用于本地实验,数据不持久化
go run . server -dev
# 或使用编译好的二进制
bao server -dev

export BAO_ADDR='http://127.0.0.1:8200'
bao status
bash
# Docker 启动 - 开发模式
docker run --rm -it \
  -p 8200:8200 \
  --cap-add=IPC_LOCK \
  --name openbao openbao/openbao server -dev

# 生产运行 - 挂载持久化目录,首次访问 UI 会进行初始化
docker run --rm -it \
  -p 8200:8200 \
  -v $PWD/openbao/logs:/openbao/logs \
  -v $PWD/openbao/file:/openbao/file \
  -v $PWD/openbao/config:/openbao/config \
  --cap-add=IPC_LOCK \
  --name openbao openbao/openbao server
  • 基础操作、approle、KV、动态密钥、密钥引擎等概念与用法参考 ,命令把 vault 换成 bao 即可
  • - Vault 没有的多租户隔离特性(社区版即可用),2.3.0 起支持
  • - 内建/外部插件、插件版本管理、plugin catalog、自行开发插件
  • 配置文件格式(HCL/JSON)、存储后端(file、raft、postgresql、consul 等)与 Vault 基本一致,详见官方文档

FAQ

vs Vault

  • 功能和命令基本一一对应,vault → bao,VAULT_* → BAO_*
  • 许可证:OpenBao 保持 MPL-2.0(开源),Vault 新版本为 BUSL-1.1(受限的源码可见许可)
  • 新特性(如 namespace 支持、PKCS#11 集成)在两个项目中可能不同步,升级/迁移前以官方 Changelog 为准

关联信息

反向链接、本文链接的其他页面和外部资料。

站内链接

  • OpenBao Namespace
    笔记 · Namespace

    Namespaces | OpenBao · namespace CLI | OpenBao · Announcing OpenBao Namespaces - 2025-05-30,随 2.3.0(beta)引入 · Namespace 是 OpenBao 实例内的逻辑分区,用于支持 secure multi-tenancy(SMT)

  • OpenBao Plugin
    笔记 · Plugin

    OpenBao 支持 4 种插件类型:(认证方式)、(密钥引擎)、(数据库 provider)、(Key Management Service provider) · 把内建和外部插件都当作可替换的构建块,保持 OpenBao core 精简

  • Vault
    笔记 · HashiCorp Vault

    hashicorp/vault 是什么? · BSLv1.1, Golang · 提供密钥管理、证书管理、外部授权集成 · 提供角色访问密钥权限控制 · 实现 CA 服务 · Secret as a Service - 密钥即服务 · 例如 阿里云 KMS、AWS KMS

参考资料

GitHub1 条
其他外链2 条
最近更新commit 346d308编辑