You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HashiCorp Vault ACL策略配置:仅允许访问指定KV2子树并隐藏其他

解决HashiCorp Vault 1.12.2 KV2引擎仅显示指定子树的ACL策略配置

核心思路

KV2密钥引擎的权限控制依赖**元数据路径(root/metadata/)和数据路径(root/data/)**的分离。要隐藏不需要的子树,必须精准控制元数据路径的list权限:拒绝根元数据路径的list,同时单独允许目标子树(apps)的元数据路径list和读写权限,直接拒绝其他子树的所有权限。

具体ACL策略配置

创建如下HCL格式的策略(假设策略名为apps-only):

# 拒绝根元数据路径的list权限,防止看到所有子树
path "root/metadata/" {
  capabilities = ["deny"]
}

# 允许apps子树的元数据list和read,确保能看到并访问apps下的密钥结构
path "root/metadata/apps/*" {
  capabilities = ["list", "read"]
}

# 允许apps子树的数据读取(如果需要写入可添加"write")
path "root/data/apps/*" {
  capabilities = ["read"]
}

# 额外允许apps子树本身的list权限,确保UI/CLI能显示apps目录
path "root/metadata/apps" {
  capabilities = ["list"]
}

配置验证

  1. 将策略绑定到目标用户/角色:
    vault policy write apps-only apps-only.hcl
    # 假设用户名为app-user,绑定策略
    vault write auth/userpass/users/app-user policies=apps-only password=xxx
    
  2. 用该用户登录后测试:
    • 执行vault kv list root/会返回权限拒绝,看不到ops和test
    • 执行vault kv list root/apps/可以正常列出apps下的密钥
    • Vault UI中只会显示apps子树,ops和test完全不可见

关键说明

  • 不要给root/或root/metadata/全局list权限,否则会暴露所有子树
  • 必须单独授权root/metadata/apps的list权限,否则UI/CLI无法识别apps子树的存在
  • 拒绝规则优先于允许规则,所以根路径的deny会覆盖其他可能的宽泛权限

内容的提问来源于stack exchange,提问作者Probius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:40:06