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

Hashicorp Vault策略配置异常:无法创建/更新/删除密钥

Hashicorp Vault KV v2 权限问题排查与解决方案

一、CreationPolicy 权限拒绝问题

问题原因

Vault 的路径通配符规则中,* 仅匹配当前层级的所有对象,无法递归匹配子目录下的密钥(比如你要操作的 mountpath/data/path/to/secretfolder/test/test 属于 secretfolder 的二级子路径)。原策略仅授权了 secretfolder 下直接的密钥操作权限,子目录密钥不在授权范围内,因此触发权限拒绝。

解决方案

将通配符从 * 改为 **,递归匹配 secretfolder 下所有层级的子路径:

path "mountpath/data/path/to/secretfolder/**" {
  capabilities = ["create", "update"]
}

二、DeletionPolicy 功能异常问题

问题原因

  1. 通配符范围不足:同样使用 * 仅匹配 test 目录下直接的密钥,无法覆盖深层子路径的密钥操作;
  2. 多余权限配置:mountpath/data/... 下的 delete 权限对应KV v2的软删除操作,不符合你“不允许软删除、仅彻底销毁”的需求;
  3. 路径覆盖不全:原策略未确保所有子路径的元数据删除和密钥销毁权限。

解决方案

调整策略如下,移除软删除权限并使用递归通配符覆盖所有子路径:

# 可选:仅保留read/list用于确认密钥存在,不需要可直接移除
path "mountpath/data/path/to/secretfolder/test/**" {
  capabilities = ["read", "list"]
}

# 授权销毁所有子路径下的密钥版本(彻底删除指定版本)
path "mountpath/destroy/path/to/secretfolder/test/**" {
  capabilities = ["delete"]
}

# 授权删除所有子路径下的密钥元数据(彻底删除整个密钥及其所有版本)
path "mountpath/metadata/path/to/secretfolder/test/**" {
  capabilities = ["delete"]
}

三、验证步骤

修改策略后,可通过以下命令验证权限是否生效:

  1. 用 CreationAppRole 生成的token测试创建权限:
vault token capabilities <your-creation-token> mountpath/data/path/to/secretfolder/test/test

输出应包含 create、update。

  1. 用 DeletionAppRole 生成的token测试销毁/删除权限:
vault token capabilities <your-deletion-token> mountpath/destroy/path/to/secretfolder/test/test
vault token capabilities <your-deletion-token> mountpath/metadata/path/to/secretfolder/test/test

两条命令输出均应包含 delete。

内容的提问来源于stack exchange,提问作者R. Wingerath

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:02:35