You need to enable JavaScript to run this app. HashiCorp Vault 1.7.0如何限制用户可在UI中分配/删除的策略范围
优惠活动
大模型
产品
解决方案
定价
更多

HashiCorp Vault 1.7.0如何限制用户可在UI中分配/删除的策略范围

HashiCorp Vault 可分配策略范围限制配置方案

可以实现限制用户仅能分配指定范围的策略,你之前配置未生效的核心原因是denied_parameters默认仅匹配参数的精确等值,当提交的policies数组同时包含合法策略和高权限策略时无法触发拦截,同时缺少对policies参数的正向白名单校验。

核心配置调整

1. 替换用户组路径的权限规则

使用allowed_parameters做正向白名单限制,仅允许policies数组中出现指定的合法策略,同时保留用户组实体成员调整的权限:

path "/identity/group/id/2c97485a-754f-657a-5a8b-62b08a3ce8cb" {
  capabilities = ["sudo", "read", "update", "create", "list"]
  allowed_parameters = {
    # 两层中括号表示policies数组的所有元素都必须属于白名单列表,允许任意合法组合
    "policies" = [["it_team_leader", "it_user", "ui_settings", "personal_storage"]]
    # 允许调整用户组成员、组名、元数据等其他常规字段,空数组表示允许任意值
    "member_entity_ids" = []
    "name" = []
    "metadata" = []
    "type" = []
  }
  # 可选:拦截所有未在上方允许列表中的参数,避免权限漏配
  denied_parameters = {
    "*" = []
  }
}

2. 调整策略读取权限

仅开放合法策略的读取权限供UI下拉列表加载,隐藏所有高权限策略,从前端层面避免误选:

# 开放指定策略的只读权限,供UI展示可选列表
path "/sys/policies/acl/it_team_leader" {
  capabilities = ["read", "list"]
}
path "/sys/policies/acl/it_user" {
  capabilities = ["read", "list"]
}
path "/sys/policies/acl/ui_settings" {
  capabilities = ["read", "list"]
}
path "/sys/policies/acl/personal_storage" {
  capabilities = ["read", "list"]
}

# 拦截所有其他策略的读取权限,高权限策略不会出现在UI可选列表中
# 精确路径优先级高于通配符路径,不会覆盖上方的合法策略权限
path "/sys/policies/acl/*" {
  capabilities = ["deny"]
}

注意事项

  • 该配置兼容Vault 1.7.0免费版,无需升级或使用企业版功能
  • 配置更新后需要重新生成对应用户的token,已有token不会自动同步新权限
  • 规则生效后,即使用户通过API手动提交包含高权限策略的请求,也会被Vault直接返回403拒绝,不仅限制UI操作,API层面也会生效
  • 后续新增可分配策略时,只需同步更新allowed_parameters的policies白名单、添加对应策略的读取权限即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 06:00:02