HashiCorp Vault
本文缩写(英文全称与中文含义)
| 缩写 | 英文全称/名称 | 中文含义 |
|---|---|---|
| API | Application Programming Interface | 应用程序编程接口 |
| AWS | Amazon Web Services | 亚马逊云服务 |
| CI | Continuous Integration | 持续集成 |
| CLI | Command-Line Interface | 命令行接口 |
| DR | Disaster Recovery | 灾难恢复 |
| EKS | Elastic Kubernetes Service | AWS 托管 Kubernetes 服务 |
| HA | High Availability | 高可用 |
| HCP | HashiCorp Cloud Platform | HashiCorp 云平台 |
| IAM | Identity and Access Management | 身份与访问管理 |
| IdP | Identity Provider | 身份提供方 |
| JWT | JSON Web Token | 一种携带声明的令牌格式 |
| KMS | Key Management Service | 密钥管理服务 |
| KV | Key-Value | 键值存储模型 |
| MFA | Multi-Factor Authentication | 多因素认证 |
| OIDC | OpenID Connect | 基于 OAuth 2.0 的身份认证协议 |
| PKI | Public Key Infrastructure | 公钥基础设施 |
| SSH | Secure Shell | 安全远程登录协议 |
| SSO | Single Sign-On | 单点登录 |
| TLS | Transport Layer Security | 传输层安全协议 |
| TTL | Time To Live | 存活时间;具体指缓存有效期或记录过期时间 |
1. 定位#
Vault 集中管理密钥、签发短期凭据、提供加密与证书服务,并记录访问审计。应用先证明身份,再按 policy 取得授权,避免在代码、镜像和 CI 中长期保存密码。
| 能力 | 典型用途 |
|---|---|
| KV v2 | 版本化保存第三方 API token、应用配置密钥 |
| Database | 动态签发数据库账号,按 lease 续期与撤销 |
| AWS secrets engine | 签发受限云凭据;AWS auth 则是验证调用者身份,两者不同 |
| PKI / SSH | 签发短期 TLS 证书、SSH 用户证书 |
| Transit | 应用调用加解密、签名等 API,密钥留在 Vault |
| Auth / Policy | OIDC、JWT、Kubernetes、AWS IAM、AppRole 等身份与最小授权 |
| Agent / 应用集成 | 自动登录、续期、渲染文件,让应用消费短期凭据 |
| Audit / Raft | 访问审计、高可用存储与快照恢复 |
Vault 不自动修复业务越权,也不是应用配置数据库或大文件仓库。只需要 AWS 原生密钥托管时,可先比较 Secrets Manager;跨平台身份、动态凭据与统一 PKI 是引入 Vault 的常见理由。
2. 阅读顺序#
- 基础 Hands-on:本机实验、KV、Policy、AppRole、Transit、PKI。
- 生产部署:AWS 三节点 Raft、TLS、KMS 自动解封与初始化。
- PostgreSQL 动态凭据:数据库授权、账号签发、续期、撤销和连接池。
- EKS 与 Vault Agent:ServiceAccount JWT 登录、短期凭据文件注入。
- 企业运维与灾备:SSO、审计、快照、恢复、升级和验收。
示例 CLI / Agent 固定以 Vault 2.1.1 为验证基线;生产安装前核对支持周期、安全公告和升级路径。企业级运维实践不等于必须购买 Enterprise,付费能力按下表区分。官方文档
3. 概念#
| 概念 | 含义 |
|---|---|
| Seal / Unseal | 打开加密屏障;auto-unseal 仍依赖外部 KMS 可用与授权 |
| Recovery keys | 自动解封配置下的恢复授权份额,不是 KMS 解密密钥替代品 |
| Auth method | 验证人或工作负载身份,签发 Vault token |
| Policy | 对 API path 授权,默认拒绝;deny 优先 |
| Token | 访问 Vault 的凭据,有 TTL、策略和撤销语义 |
| Lease | 动态 secret 的有效期与撤销跟踪;KV v2 不是自动轮换引擎 |
| Mount | 启用 secrets engine / auth method 的路径 |
| Raft quorum | 多数投票节点可用才能持续服务;三节点允许一个节点故障 |
KV v2 的 CLI 路径与 API policy 路径不同:vault kv get -mount=kv prod/orders/config 对应 kv/data/prod/orders/config;列举路径使用 kv/metadata/...。
4. 产品边界#
| 能力 | 本文采用方式 |
|---|---|
| Raft HA、手动快照、KMS auto-unseal、KV、Transit、常见动态凭据 | 基础自托管能力;实际版本/插件支持需核对 |
| Namespaces、Performance replication、DR replication、部分自动快照与治理能力 | Enterprise,核对具体许可与版本 |
| HCP Vault Dedicated | 托管方案,责任边界和价格另行评估 |
不要把同一个 Raft 集群跨远距离 Region 拉伸来替代灾备;基础版可建立快照恢复流程,Enterprise 可评估独立集群复制。复制能力
5. 企业场景#
运维人员 -> OIDC + MFA -> Vault policy
EKS Pod -> 短期 ServiceAccount JWT -> Vault Agent
Agent -> KV 配置 + PostgreSQL 动态账号 -> 内存卷文件 -> 订单服务
Vault -> TLS PostgreSQL / Aurora PostgreSQL
Vault 三节点 -> Raft 加密数据;AWS KMS -> 自动解封
审计 -> 独立日志平台;Raft snapshot -> 隔离备份原则:开发/测试/生产分开;每个服务独立身份;应用不用 root token;动态 secret 需要连接池更新;备份必须配套可用 seal key 和恢复演练。
6. 示例验证范围#
2026-09-22:基础实验已在临时 Vault 2.1.1 验证;动态数据库流程已在本机 TLS PostgreSQL 15.2 验证签发、管理密码轮换、只读授权、续期和撤销。AWS 三节点、Aurora、EKS 与企业 IdP 集成需在目标环境完成验收,不能把本地实验结果当作生产高可用验证。