在Vault的基本用法一篇里面,我们提到vault使用token来完成基本auth,这是系统缺省enable的方式。
我们还提到在初始化的时候,会生成一个root token,这个相当于linux的root角色,具有所有的权限,通常我们在系统级别的操作中才使用这个token。
所以针对普通用户,我们希望创建另外的token,只具有普通操作权限,为了安全。
下面介绍如何创建普通token,并为这个token授权。
- 在创建普通token之前,必须现有root token
因为需要root token的权限来创建普通token。 - 创建policy
创建policy具有secret下面的写权限。
$ cat mypolicy.json
{
"policy": "path \"secret/*\" { policy = \"write\"}"
}
$ curl -X POST -H "X-Vault-Token:s.azwvCg0qucGM8pTH9Z9FDb2B" -d @mypolicy.json http://127.0.0.1:8200/v1/sys/policy/mypolicy
检查policy
$ curl -X GET -H "X-Vault-Token:s.azwvCg0qucGM8pTH9Z9FDb2B" http://127.0.0.1:8200/v1/sys/policy/admin-policy
- 创建token
$ curl -X POST -d '{"policies": ["mypolicy"]}' -H "X-Vault-Token:s.azwvCg0qucGM8pTH9Z9FDb2B" http://127.0.0.1:8200/v1/auth/token/create | jq
s.WjNV37NgVvt9aKOjmQn4NCT7
创建一个token,这个token具有mypolicy的policy;返回值就是新创建的token,然后我们就可以使用新创建的token来对secret path进行存储访问。
网友评论