📌 项目地址:openbao/openbao | ⭐ 7,627 颗星 | 🔧 Go | 📜 未标注
先说背景
2023 年 HashiCorp 把 Vault 的许可证从 MPL 2.0 换成了 BSL(商业源码许可证),BSL 不被 OSI 认可为开源协议。社区不买账,于是 fork 出了 OpenBao,现在挂在 OpenSSF(开放安全基金会)下面,按开放治理原则运作。7,627 颗星,主力语言 Go。
一句话定位:OpenBao 用来管理、存储和分发敏感数据,包括密钥、证书和密钥对。
它管的是什么烂摊子
一个现代系统里到处都是敏感数据:数据库账号密码、调用外部服务的 API key、服务之间通信用的凭证。这些东西散落在配置文件、环境变量、代码仓库里,谁在什么时候读了哪个密钥,基本查不清。再叠加密钥定期轮换、落盘加密、完整审计日志,自己造一套几乎不现实。OpenBao 就是干这个的。
两个核心能力
加密存储。任意键值对都能存进去。OpenBao 在写入持久层之前先加密,所以就算有人拿到了原始存储,也读不出明文。后端不限于磁盘,还支持 PostgreSQL 等数据库。
动态密钥。对 AWS、SQL 数据库这类系统,OpenBao 能按需生成凭证。README 举的例子:应用要访问 S3 bucket 时,找 OpenBao 要一个临时凭证,而不是用一个长期固定的 key。凭证短期有效,泄露了影响也有限。
(README 在动态密钥的说明处被截断了,租约、自动撤销这些机制我没在原文里看到,不敢乱写,具体以 openbao.org 文档为准。)
README 没写怎么装
这点要说明白:README 侧重项目定位和社区入口,没有安装命令和 CLI 用法,我也不编。想上手直接看官方文档:https://www.openbao.org
从工作组看社区在做什么
Zulip 上的工作组频道能看出当前的投入方向:
- Namespaces:多租户隔离
- PKCS#11:硬件安全模块(HSM)支持
- Scalability:大规模部署性能
- UI:Web 界面
- Supply Chain:供应链安全
想参与贡献,对应频道就是入口。另外还有三个常设频道:#openssf-openbao-discussion(讨论)、#openssf-openbao-support(支持)、#openssf-openbao-tsc(技术监督委员会)。
几个实际考量
安全漏洞别开公开 issue。项目方明确要求通过 openbao-security@lists.openssf.org 负责任披露。
许可证。OpenBao 承诺使用 OSI 认可的开源许可证,这是它和 BSL 协议下的 Vault 之间最核心的差异。具体条款以仓库 LICENSE 文件为准。
成熟度。有 OpenSSF 背书,也接入了 Scorecard 和 CII Best Practices 评估。但作为社区项目,商业化支持比不上 Vault 官方,企业采用前先想清楚支持渠道从哪来。
谁该看这个项目
正在用 Vault 但被 BSL 卡住、想要纯开源方案的团队;需要在私有环境里发动态数据库/AWS 凭证的平台团队;对许可证合规有硬性要求的组织。个人项目存几个 API key 的话,用不上这个量级的东西。
用过 Vault 的人迁移成本不高,API 和使用习惯基本延续,这是 fork 的天然好处。