保险柜,如何强制根据特定策略创建令牌?

时间:2018-07-23 12:59:55

标签: hashicorp-vault

我希望允许属于某个策略的令牌能够创建另一个令牌,但是我将只允许生成分配给特定策略的那些新令牌(当然,该策略也必须应用于“父级”令牌)。

尝试使用策略指令'allowed_pa​​rameters'并将策略设置为仅允许所需的策略,但它似乎不起作用,或者我使用了错误的格式...有人进行过此工作吗?是否可以在策略参数上使用allowed_pa​​ramaters?

用例说明:提供给用户/应用程序只能在该封闭策略下创建令牌,因此它们可以提供给其他任何人。我可以选择在此处使用Approle Auth,但我想通过使用令牌认证自行管理父令牌。

1 个答案:

答案 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
}

关于

  

(当然,此政策也必须应用于“父”令牌)

并非总是如此。例如,如果您使用根作为父令牌,则不必使用您需要应用的策略。