在 Hashicorp Vault 中,如何防止 "userpass" 用户更改彼此的策略和密码?
In Hashicorp Vault, how can I prevent "userpass" users from changing each others policies and passwords?
创建我的第一个用户后,我发现我可以更改自己的政策:
$ vault write auth/userpass/users/mconigliaro policies=root
Success! Data written to: auth/userpass/users/mconigliaro
更糟糕的是,用户似乎可以更改彼此的密码:
$ vault write auth/userpass/users/mconigliaro2 password=foobar
Success! Data written to: auth/userpass/users/mconigliaro2
查看 policy documentation,我认为我应该能够创建如下所示的策略:
path "auth/userpass/users/${user}" {
capabilities = ["update"]
allowed_parameters = {
"password" = []
}
}
但不幸的是,这取决于 Vault 似乎没有的策略变量的概念(例如 ${user}
)。我是否必须为每个具有硬编码路径的用户创建单独的策略,或者我是否缺少一些更简单的方法?
您目前使用 Vault 验证的 user/token 是什么?我猜根?所以是的,你将能够做任何事情。您,当然还有您的用户,通常不会拥有 root 权限。
以您创建的用户身份登录,您会发现无法执行您描述的操作。
创建我的第一个用户后,我发现我可以更改自己的政策:
$ vault write auth/userpass/users/mconigliaro policies=root
Success! Data written to: auth/userpass/users/mconigliaro
更糟糕的是,用户似乎可以更改彼此的密码:
$ vault write auth/userpass/users/mconigliaro2 password=foobar
Success! Data written to: auth/userpass/users/mconigliaro2
查看 policy documentation,我认为我应该能够创建如下所示的策略:
path "auth/userpass/users/${user}" {
capabilities = ["update"]
allowed_parameters = {
"password" = []
}
}
但不幸的是,这取决于 Vault 似乎没有的策略变量的概念(例如 ${user}
)。我是否必须为每个具有硬编码路径的用户创建单独的策略,或者我是否缺少一些更简单的方法?
您目前使用 Vault 验证的 user/token 是什么?我猜根?所以是的,你将能够做任何事情。您,当然还有您的用户,通常不会拥有 root 权限。
以您创建的用户身份登录,您会发现无法执行您描述的操作。