无法列出将 "sudo" 和 "list" 功能应用于令牌策略的审核设备
Unable to list audit devices with "sudo" and "list" capabilities applied to token policy
我正在尝试发出 vault CLI 调用以列出当前启用的审计设备。我已经定义了一个针对 sys/audit
的策略,它定义了“sudo”和“list”功能(以及其他)。我已获得应用该政策的令牌。但是,当我 运行 vault audit list
时,我收到“权限被拒绝”错误。
我需要在策略中添加哪些功能才能使其生效?这是在 bootstrap 脚本中完成的。 (当前包含的附加功能是因为如果 'list' 的结果表明审计被禁用,我会执行 'enable'。我正在尝试将此令牌的权限限制为在此上下文中需要的两个操作。)
政策(名为“aud”):
path "sys/audit/*" {
capabilities = ["list", "read", "create", "update", "sudo"]
}
令牌发行(在别处完成,使用根令牌登录):
vault token create --id=my-token --policy=aud
我的脚本(我尝试使用令牌登录并检查审核设备状态):
vault login my-token
vault audit list
vault audit enable file <options>
错误:
Error listing audits: Error making API request.
URL: GET http://< obfuscated >:8200/v1/sys/audit
Code: 403. Errors:
* 1 error occurred:
* permission denied
随后的 'vault audit enable' 调用有效,所以我知道这些功能足够了。但我不确定我需要做出什么改变才能使 vault audit list
起作用,因为我已经拥有“sudo”以及“列表”和“读取”功能。
事实证明,路径 "sys/audit/*"
的通配符策略与对 sys/audit
的请求(无后缀)不匹配。所以实际上需要两个单独的路径声明。
首先,对于vault audit list
,这个政策就足够了:
path "sys/audit" {
capabilities = ["list", "read", "sudo"]
}
...然后对于 vault audit enable
,更广泛的反对通配符的政策:
path "sys/audit/*" {
capabilities = ["create", "update", "sudo"]
}
第二个可以收紧以仅匹配 sys/audit/file
。
我正在尝试发出 vault CLI 调用以列出当前启用的审计设备。我已经定义了一个针对 sys/audit
的策略,它定义了“sudo”和“list”功能(以及其他)。我已获得应用该政策的令牌。但是,当我 运行 vault audit list
时,我收到“权限被拒绝”错误。
我需要在策略中添加哪些功能才能使其生效?这是在 bootstrap 脚本中完成的。 (当前包含的附加功能是因为如果 'list' 的结果表明审计被禁用,我会执行 'enable'。我正在尝试将此令牌的权限限制为在此上下文中需要的两个操作。)
政策(名为“aud”):
path "sys/audit/*" {
capabilities = ["list", "read", "create", "update", "sudo"]
}
令牌发行(在别处完成,使用根令牌登录):
vault token create --id=my-token --policy=aud
我的脚本(我尝试使用令牌登录并检查审核设备状态):
vault login my-token
vault audit list
vault audit enable file <options>
错误:
Error listing audits: Error making API request.
URL: GET http://< obfuscated >:8200/v1/sys/audit
Code: 403. Errors:
* 1 error occurred:
* permission denied
随后的 'vault audit enable' 调用有效,所以我知道这些功能足够了。但我不确定我需要做出什么改变才能使 vault audit list
起作用,因为我已经拥有“sudo”以及“列表”和“读取”功能。
事实证明,路径 "sys/audit/*"
的通配符策略与对 sys/audit
的请求(无后缀)不匹配。所以实际上需要两个单独的路径声明。
首先,对于vault audit list
,这个政策就足够了:
path "sys/audit" {
capabilities = ["list", "read", "sudo"]
}
...然后对于 vault audit enable
,更广泛的反对通配符的政策:
path "sys/audit/*" {
capabilities = ["create", "update", "sudo"]
}
第二个可以收紧以仅匹配 sys/audit/file
。