我希望允许属于某个策略的令牌能够创建另一个令牌,但是我将只允许生成分配给特定策略的那些新令牌(当然,该策略也必须应用于“父级”令牌)。
尝试使用策略指令'allowed_parameters'并将策略设置为仅允许所需的策略,但它似乎不起作用,或者我使用了错误的格式...有人进行过此工作吗?是否可以在策略参数上使用allowed_paramaters?
用例说明:提供给用户/应用程序只能在该封闭策略下创建令牌,因此它们可以提供给其他任何人。我可以选择在此处使用Approle Auth,但我想通过使用令牌认证自行管理父令牌。
答案 0 :(得分:0)
您可以简单地使用-policy
来强制对任何令牌使用政策。
例如,
创建策略,
path "secret/*"
{
capabilities = ["create", "read", "list"]
}
并将其写入保管库,
./vault policy write issue_cert po.hcl
现在创建使用此策略的令牌
./vault token create -policy="issue_cert"
现在检查是否将策略应用于新令牌,
curl -X GET \
http://192.168.17.154:8200/v1//auth/token/lookup-self \
-H 'content-type: application/json' \
-H 'x-vault-token: 6abdfde0-caf5-2687-df62-07d2e30bf21a' \
-d '{
"token": "e3cffb2b-9b7b-5dcc-baf3-bd67cf16affc"
}'
会给你
{
"request_id": "bd351c1c-2185-3471-9abe-aaf5ed0dadd7",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"accessor": "41f14bc3-110c-00b8-1b6e-faaa3b455a15",
"creation_time": 1536888189,
"creation_ttl": 2764800,
"display_name": "token",
"entity_id": "",
"expire_time": "2018-10-16T12:23:09.139654113+11:00",
"explicit_max_ttl": 0,
"id": "6abdfde0-caf5-2687-df62-07d2e30bf21a",
"issue_time": "2018-09-14T11:23:09.139653867+10:00",
"meta": null,
"num_uses": 0,
"orphan": false,
"path": "auth/token/create",
"policies": [
"default",
"issue_cert"
],
"renewable": true,
"ttl": 2764596
},
"wrap_info": null,
"warnings": null,
"auth": null
}
关于
(当然,此政策也必须应用于“父”令牌)
并非总是如此。例如,如果您使用根作为父令牌,则不必使用您需要应用的策略。