使用方法
当您 配置 并执行 剧本 部署 VAULT 后,可以参考本页开始使用它。 VAULT 部署完成后默认启用了以下引擎与认证方式,可以直接供业务使用:
| 路径 | 类型 | 用途 |
|---|---|---|
secret/ | KV v2 机密引擎 | 保存密码、API 密钥、证书等静态机密,支持多版本 |
transit/ | Transit 机密引擎 | 加密即服务:应用把明文交给 VAULT 加解密,密钥永不离开 VAULT |
auth/approle/ | AppRole 认证方式 | 为应用与自动化程序发放机器凭据 |
auth/token/ | Token 认证方式 | 内置,最长租期已调整为 10 年 |
OpenBao 的 API 与 HashiCorp Vault 基本兼容,常见的 Vault 客户端库与工具通常也可以直接使用。完整用法请参考 OpenBao 文档。
接入地址
所有客户端都应通过服务域名与 HTTPS 访问 VAULT,并使用 Pigsty CA 校验服务端证书:
| 项目 | 取值 |
|---|---|
| 地址 | https://vault.pigsty:8200 |
| CA 证书 | Pigsty CA,在纳管节点上位于 /etc/pki/ca.crt,在管理节点上位于 files/pki/ca/ca.crt |
| TLS 版本 | 最低 TLS 1.3 |
在三节点集群上,vault.pigsty 指向 VIP,HAProxy 会把请求转发给当前的 active 成员。直接访问 standby 成员也可以,它会把请求转发给 active 成员。
bao 命令行随 openbao 软件包安装在 VAULT 成员上;其他节点可以直接使用 curl 调用 HTTP API,或者安装 openbao 软件包以获得 bao 命令。
管理员登录
下面的示例在 VAULT 成员上以 root 身份执行,并使用管理员令牌(root token),获取方式参见 管理员凭据:
root token 只应用于管理操作。应用访问 VAULT 时,请为其 发放最小权限的凭据。
KV 机密存储
secret/ 是 KV v2 引擎,每次写入都会保存一个新版本:
请注意,在 KV v2 的 policy 与 HTTP API 中,读写机密的实际路径是 secret/data/<path>,元数据路径是 secret/metadata/<path>。
Transit 加密服务
transit/ 提供加密即服务:应用不接触密钥,只把数据交给 VAULT 加密或解密,适合在应用层加密数据库中的敏感字段。
明文需要先进行 Base64 编码。轮换密钥后,新数据使用新版本加密,旧版本的密文依然可以解密,也可以用 transit/rewrap/app 将旧密文重新封装到新版本。
为应用发放凭据
为每个应用创建一个只包含必要权限的 policy,并用 AppRole 发放机器凭据:
role_id 相当于用户名,secret_id 相当于密码。应用用它们登录,换取一个短期令牌,再用令牌访问机密:
请通过安全的渠道把 secret_id 交给应用,并根据需要设置 secret_id_ttl、secret_id_num_uses、token_bound_cidrs 等参数进一步收紧凭据的使用范围。
HTTP API
不安装 bao 命令的客户端,可以直接调用 HTTP API。以 AppRole 登录并读取机密为例:
无需认证的接口可以用于健康检查与监控:
保留路径
以下路径与名称由 Pigsty 使用或为后续功能预留,业务请勿占用:
| 路径 / 名称 | 用途 |
|---|---|
tde/<pg_cluster> | 预留给 PGSQL pg_tde 透明加密的密钥(KV v2,每个 PG 集群一个) |
kes/<minio_cluster> | 预留给 MINIO KES 服务端加密的密钥(KV v2,每个对象存储集群一个) |
tde-*、kes-* policy | 预留给上述消费者 |
vault-backup policy | 快照备份令牌使用,只能读取 sys/storage/raft/snapshot |
移除整个 VAULT 集群时,vault-rm.yml 会列出现存的 tde/* 与 kes/* mount,提示哪些消费者将永久失去密钥。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)