使用Vault UI获取密钥失败,CLI可正常获取,求解决方案
如何通过Vault UI正确访问已配置策略的KV密钥?
问题背景
已配置以下Vault策略:
path "/kv/dev/*" { capabilities = ["read","list", "update"] } path "/kv/data/dev/*" { capabilities = ["read","list", "update"] }
通过CLI执行 vault kv get -mount=kv dev/db 可正常获取密钥,但使用UI操作时遇到两个错误:
- 输入
dev/db,报错:Ember Data Request POST /v1/sys/capabilities-self returned a 400 Payload (application/json) [object Object] - 输入
/data/dev/db,报错:undefined is not an object (evaluating 'n.data')
解决方法
1. 正确的UI路径输入方式
Vault UI针对KV v2引擎做了路径自动处理,不需要手动添加/data/前缀。正确操作步骤:
- 登录Vault UI后,从左侧导航栏找到并进入kv挂载引擎页面
- 在页面顶部的密钥路径输入框中直接填写
dev/db - 点击读取按钮即可正常获取密钥
2. 补充策略修复权限校验错误
UI报错的核心原因是缺少KV v2元数据路径的权限,UI会调用sys/capabilities-self接口校验权限,而该接口会检查元数据路径的权限。需要在现有策略中补充:
path "/kv/metadata/dev/*" { capabilities = ["read","list"] }
添加完成后,重新应用策略,UI的权限校验请求就能正常返回,避免400错误。
内容的提问来源于stack exchange,提问作者Fredy
相关产品推荐
相关产品推荐

