这个项目能做什么
Vault 是 HashiCorp 出品的机密管理工具。机密是指任何你希望严格控制访问权限的内容,例如 API 密钥、密码、证书以及类似的凭据。Vault 为所有机密提供统一接口,同时提供严格的访问控制和详细的审计日志。
README 中描述的主要功能:
- 安全机密存储:Vault 存储任意的键/值对,并在写入持久化存储之前对数据进行加密,因此仅访问原始存储并不足以读取机密。它可以写入磁盘、Consul 及其他后端。
- 动态机密:Vault 可以按需为 AWS 或 SQL 数据库等系统生成机密。例如,应用程序可以请求 S3 存储桶的凭据,Vault 会按需生成具有有效权限的 AWS 密钥对,并在租约到期后自动撤销。
- 数据加密:Vault 可以加密和解密数据而无需存储数据,让安全团队定义加密参数,而开发人员可以将加密数据存储在 SQL 数据库等位置,而无需自行设计加密方案。
- 租约与续期:每个机密都与一个租约关联;租约到期时,Vault 会自动撤销该机密,客户端可以通过内置的续期 API 续租。
- 撤销:Vault 支持撤销单个机密或机密树,例如特定用户读取的所有机密或特定类型的所有机密,这有助于密钥轮换和在入侵后锁定系统。
README 中还提供了文档、入门指南、教程以及 HashiCorp 学习平台上的认证考试链接,此外还有从不同语言应用程序与 Vault 交互的示例仓库和一个示例应用。
在开发方面,Vault 使用 Go 编写。README 描述了如何安装 Go、设置 GOPATH/GOBIN、在 GOPATH 之外克隆仓库,以及使用 `make bootstrap` 进行引导。开发构建通过 `make` 或 `make dev` 生成,UI 构建使用 `make static-dist dev-ui`。测试通过 `make test` 运行(需要 Docker),也可以使用 TEST 变量运行特定包的测试。验收测试通过 `make testacc` 运行,可能会创建、修改或销毁真实资源,因此应谨慎运行。仓库还记录了一种基于 Docker 的实验性测试机制,使用 `sdk/helper/testcluster/docker` 包,包括自定义二进制文件和 Enterprise 许可证的选项。
该仓库发布两个可导入的库:`github.com/hashicorp/vault/api` 和 `github.com/hashicorp/vault/sdk`。README 指出,将 Vault 主产品作为依赖导入不是受支持的用例。安全问题应负责任地披露至 security@hashicorp.com。
评论
0 评分人数达到10人后显示
登录后参与讨论。