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

如何查询HashiCorp Vault指定token可访问的所有路径及对应权限

HashiCorp Vault 普通token查询自身所有可访问路径说明

首先明确设计规则:

  • Vault 原生没有提供单条命令可以直接输出指定token所有具备read、write、update等权限的可访问路径。这是因为Vault的权限校验采用deny优先、路径前缀匹配的规则,无法直接枚举所有有效路径。
  • 普通token默认无法读取绑定的策略内容,这个是Vault的默认权限隔离设计,避免普通用户获取到整个Vault的路径配置、权限规则等敏感信息。你之前配置了对应策略的read权限仍报错,大概率是规则配置有误(比如路径拼写错误、存在更高优先级的deny规则覆盖),并非只有root用户能读取策略,只要管理员在策略中显式配置了对应路径的read权限,普通token就可以读取。

可落地的解决方法

  • 管理员侧查询:直接使用具备管理员权限的token读取该token绑定的所有策略,解析HCL配置中的path规则,即可汇总出所有授权路径,操作命令如下:
    # 先查询token绑定的策略
    vault token lookup <目标token> | grep policies
    # 读取对应策略内容
    vault policy read <策略名>
    
  • 普通用户侧查询:用已有的vault token capabilities命令批量校验路径,你可以基于所在企业Vault的常用路径前缀编写遍历脚本,逐一路径查询权限,筛选出符合要求的路径,参考实现如下:
    # 示例:遍历kv存储根路径下的所有子路径,查询当前token的权限
    for path in $(vault list -format=json kv/ | jq -r '.[]'); do
      caps=$(vault token capabilities kv/$path)
      echo "kv/$path: $caps"
    done
    
  • 普通用户自助读取策略:如果需要让普通用户可以直接查看自身绑定的策略内容,需要管理员在对应的策略中添加如下规则:
    path "sys/policies/acl/[你的策略名]" {
      capabilities = ["read"]
    }
    
    配置生效后,普通token就可以正常执行vault policy read [你的策略名]命令获取策略内容,自行整理授权路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:45:02