如何实现Vault密钥自动同步至Consul并查看?求相关文档
Vault密钥创建并自动同步到Consul的实现步骤
1. 在Vault中创建密钥
首先启用KV密钥引擎(以KV v2为例,若使用v1可替换为kv):
vault secrets enable -path=my-secrets kv-v2
写入密钥到指定路径:
vault kv put my-secrets/database username=admin password=supersecret
验证密钥创建成功:
vault kv get my-secrets/database
2. 配置Vault自动同步密钥到Consul
步骤2.1 准备Consul权限
先在Consul中创建允许写入KV的策略(保存为vault-sync-policy.hcl):
policy "vault-sync" { rule { path = "kv/*" policy = "write" } }
加载策略并创建专用同步Token:
consul acl policy create -name vault-sync -rules @vault-sync-policy.hcl consul acl token create -description "Vault sync token" -policy-name vault-sync
步骤2.2 在Vault中配置Consul同步目标
添加Consul作为Vault的密钥同步目标:
vault write sys/sync/destinations/consul/my-consul-dest \ address=http://<consul-server-ip>:8500 \ token=<your-consul-sync-token>
步骤2.3 创建密钥同步规则
将Vault指定路径下的密钥同步到Consul的目标KV路径:
vault write sys/sync/rules/my-sync-rule \ source=kv-v2/my-secrets \ destination=consul/my-consul-dest \ destination_path=kv/vault-secrets
验证同步规则:
vault read sys/sync/rules/my-sync-rule
3. 在Consul中查看来自Vault的密钥
查看单个同步密钥:
consul kv get kv/vault-secrets/database
递归查看所有同步到Consul的Vault密钥:
consul kv get -recurse kv/vault-secrets
关键注意事项
- 确保Vault与Consul节点网络连通,Consul默认8500端口需开放
- Consul同步Token需拥有目标KV路径的写入权限,若需读取同步后的密钥还需添加
read策略 - Vault同步规则支持配置过滤条件、版本保留等,可通过
vault write sys/sync/rules/my-sync-rule filter=...调整 - 若使用KV v1引擎,同步规则的
source需改为kv/my-secrets,写入密钥命令为vault write my-secrets/database username=admin password=supersecret
内容的提问来源于stack exchange,提问作者Al-Tamir
相关产品推荐
相关产品推荐

