搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

hashicorp/vault

安全

集中管理密钥:按需生成、租约续期与撤销,并提供加密即服务和审计日志。

36,506
4,818
Go
NOASSERTION
创建于 11 年前

项目介绍

Vault 是用于管理密钥的系统,统一控制 API Key、密码、证书、数据库凭据等敏感信息的访问,并提供细粒度权限和详细审计日志。现代分布式系统要对接大量外部服务,谁在访问哪个密钥、密钥如何轮换、如何加密存储和留下审计记录,往往需要各团队自己拼凑方案;Vault 把这些能力集中到一个服务里。

核心机制包括:

  • 加密存储:Vault 在写入持久存储前加密数据,因此拿到原始磁盘或后端存储也读不到明文。支持的存储包括本地磁盘和 Consul。
  • 动态密钥:向 AWS、SQL 数据库等系统按需申请短期凭据,租约到期后自动撤销。
  • 加密即服务:应用把数据交给 Vault 加解密,Vault 不保存明文,加密策略集中管理,数据仍留在应用自己的数据库中。
  • 租约与撤销:每个密钥都带租约,客户端可以续期;发生入侵或轮换密钥时,可以按单个密钥或整棵密钥树撤销。

它适合需要集中管理密钥访问、短期凭据和审计控制的安全团队与后端开发者。HashiCorp 另外提供商业版 Vault Enterprise。

从源码构建

Vault 用 Go 编写。参与开发前先安装 Go,并配置 GOPATH、GOBIN,确保 $GOPATH/bin 在 PATH 中。项目使用 Go Modules,仓库应克隆在 GOPATH 之外。

先初始化构建工具,再编译开发版二进制:

make bootstrap
make dev
bin/vault

make dev 会把二进制放到 bin 和 $GOPATH/bin。如果还需要 Web UI,运行 make static-dist dev-ui,产物位置相同 构建说明。

运行测试

单元测试用 make test,需要安装 Docker。只测某个包时通过 TEST 指定路径,例如 make test TEST=./vault。验收测试使用 make testacc TEST=./builtin/logical/consul;这类测试会创建、修改和销毁真实的外部资源,可能产生真实费用,README 建议使用独立账号 验收测试说明。

仓库还提供实验性的 Docker 测试集群,位于 github.com/hashicorp/vault/sdk/helper/testcluster/docker,用于在测试中启动 Vault 节点。

使用与集成

新用户可以从官方的入门指南和 Vault 文档开始。多语言客户端示例放在 vault-examples,另有一个可直接运行的 Go 示例应用。

仓库对外发布两个可导入的库:github.com/hashicorp/vault/api(HTTP 客户端)和 github.com/hashicorp/vault/sdk(插件与辅助 SDK)。直接把主模块 github.com/hashicorp/vault 当作依赖导入不是受支持的使用方式 导入说明。

使用约束

  • 从源码构建和测试需要 Go,运行测试还需要 Docker。
  • 验收测试会操作真实后端,出现 bug 时可能留下残留资源,README 建议使用独立账号。
  • 包括性能复制和灾难恢复复制测试辅助在内的部分能力属于 Enterprise 版,需要企业版二进制和许可证。
  • GitHub 上的许可证状态为 NOASSERTION,二次分发或商业使用前应先确认仓库的许可条款。

HotRepo 点评

在 2026-11-13 的 Go 日榜中,Vault 以当日新增 5 Star、总计 36,505 Star 和 4,818 Fork 排在第 9 位。对一个 2015 年创建的项目来说,这更像是稳定存量带来的排名,而不是增长峰值。代码规模和成熟度也意味着源码层面的贡献更多集中在配置、插件和后端测试基础设施;应用侧的集成通常通过已发布的 api 和 sdk 包完成。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Vault: tool for secrets management, encryption as a service
▲ 6 · 0 条评论 · 2019年1月22日
Hashicorp Vault: Secrets management, encryption as a service
▲ 2 · 0 条评论 · 2019年3月20日

相关推荐

  1. openbao/openbao面向需要自托管密钥管理与短期凭证、又不想被厂商许可证约束的团队,是 Vault 的社区治理分叉。Go8,686
  2. betterleaks/betterleaks扫描文件、Git 历史、容器镜像和托管平台中的泄露密钥,并可选验证与分析。Go2,691
  3. dreamers-laboratory/good-door用命令行加密磁盘上的密钥,并在命令或 Agent 运行时注入而不暴露明文。Python110