我创建了一个具有策略的用户:
$ vault token create -renewable -policy=admin_policy Key Value
--- -----
token s.kG0Kdb8d2DSOUHv3AMzw5tdO
token_accessor Do57Fg9DpiMv1j6t3oysZoz9
token_duration 900h
token_renewable true
token_policies ["admin_policy" "default"]
identity_policies []
policies ["admin_policy" "default"]
现在我想将策略添加到令牌中。我该怎么做?
或者我创建了用户:
vault write auth/userpass/users/test3 password=test -policy=admin_policy
Success! Data written to: auth/userpass/users/test3
现在我想给用户添加一个策略:
vault write auth/userpass/users/test3 password=test -policy=admin_policy -policy=crm_sales_policy
Success! Data written to: auth/userpass/users/test3
但一切都没有改变。
一开始我也很困惑如何更新用户的策略,但我发现文档已经更新了,API是/auth/userpass/users/:username/policies
,所以你可以更新这样的策略:
vault write auth/userpass/users/bob123/policies policies="foo,bar"
官方参考
您不能将策略添加到现有令牌中。
因此,您必须使用所述策略创建一个新的令牌。
一般来说,如果您的上游身份验证源(如LDAP等(能够处理向用户分配策略,那会更好,但也欢迎您在vault级别执行此操作。
另外请注意,令牌与其父令牌绑定,因此当其父令牌过期时,它们就会过期,除非添加-orphan
代币通常不应该有很长的使用寿命。Vault在这里的名声是,秘密和代币应该是短暂的,所以如果它们真的泄露了,危害是最小的。