OpenBao
约 2 分钟阅读
- openbao/openbaoGitHubopenbao/openbaoopenbao/openbao 是什么? · MPL-2.0, Golang · HashiCorp Vault 的社区 fork,由 Linux Foundation 旗下 OpenSSF 托管 · 功能和架构与 Vault 基本一致:密钥存储、动态密钥、数据加密(Transit)、租约与自动撤销、审计日志笔记:OpenBao 是什么?
- MPL-2.0, Golang
- HashiCorp Vault笔记Vaulthashicorp/vault 是什么? · BSLv1.1, Golang · 提供密钥管理、证书管理、外部授权集成 · 提供角色访问密钥权限控制 · 实现 CA 服务 · Secret as a Service - 密钥即服务 · 例如 阿里云 KMS、AWS KMS打开:/notes/service/security/vault 的社区 fork,由 Linux Foundation 旗下 OpenSSF 托管
- 功能和架构与 Vault 基本一致:密钥存储、动态密钥、数据加密(Transit)、租约与自动撤销、审计日志
- openbao.org链接openbao.orgopenbao/openbao 是什么? · MPL-2.0, Golang · HashiCorp Vault 的社区 fork,由 Linux Foundation 旗下 OpenSSF 托管 · 功能和架构与 Vault 基本一致:密钥存储、动态密钥、数据加密(Transit)、租约与自动撤销、审计日志笔记:OpenBao
- 为什么有这个 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_*前缀的环境变量,升级/迁移时注意核对当前版本行为
# 源码构建
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# 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笔记Vaulthashicorp/vault 是什么? · BSLv1.1, Golang · 提供密钥管理、证书管理、外部授权集成 · 提供角色访问密钥权限控制 · 实现 CA 服务 · Secret as a Service - 密钥即服务 · 例如 阿里云 KMS、AWS KMS打开:/notes/service/security/vault,命令把
vault换成bao即可 - Namespace笔记OpenBao NamespaceNamespaces | OpenBao · namespace CLI | OpenBao · Announcing OpenBao Namespaces - 2025-05-30,随 2.3.0(beta)引入 · Namespace 是 OpenBao 实例内的逻辑分区,用于支持 secure multi-tenancy(SMT)打开:/notes/service/security/openbao/namespace - Vault 没有的多租户隔离特性(社区版即可用),2.3.0 起支持
- Plugin笔记OpenBao PluginOpenBao 支持 4 种插件类型:(认证方式)、(密钥引擎)、(数据库 provider)、(Key Management Service provider) · 把内建和外部插件都当作可替换的构建块,保持 OpenBao core 精简打开:/notes/service/security/openbao/plugin - 内建/外部插件、插件版本管理、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 条
- openbao/openbaogithub.com/openbao/openbao
其他外链2 条
- openbao.orgopenbao.org/
- openssf.orgopenssf.org/