Я пытаюсь следовать стандартному шаблону: root - admin - пользователь для Hashicorp Vault.
В основном: root создает одну политику администратора. Тогда мой администратор должен иметь возможность создавать ограниченные политики для нового пользователя.
Однако даже при полном доступе к /sys
мой администратор получает отказ в разрешении на создание новых политик.
Здесь моя политика администратора:
path "pki/issue/admin" { capabilities = ["create", "update"]}
path "pki/roles/" {capabilities = ["create", "update"]}
path "pki/issue/" {capabilities = ["create", "update"]}
path "auth/token/*" {capabilities = ["create", "read", "update", "delete"]}
path "auth/token/lookup-self" {capabilities = ["read"]}
path "auth/token/renew-self" {capabilities = ["update"]}
path "auth/token/revoke-self" {capabilities = ["update"]}
path "auth/token/*" {
capabilities = ["create", "read", "update", "delete", "list", "sudo"]
}
path "sys/auth/*" {
capabilities = ["create", "read", "update", "delete", "sudo"]
}
path "sys/policy" {
capabilities = ["create", "read", "update", "delete", "list", "sudo"]
}
path "sys/policy/*" {
capabilities = ["create", "read", "update", "delete", "list", "sudo"]
}
$ curl -H 'Authorization: Bearer admintoken' http://127.0.0.1:8200/v1/auth/token/lookup-self | jq .data.policies
[
"admin"
]
$ curl -H 'Authorization: Bearer adminsecret' http://127.0.0.1:8200/v1/sys/policy/agent01 -d '{"name": "test", "policy": "path \"auth/token/lookup-self\" { capabilities = [\"read\"]}"}'
{"errors":["permission denied"]}
Я что-то упустил здесь? Я бы предпочел не распространять токен root на свой внутренний сервер только для создания базовых c политик для новых пользователей.