В доступе отказано в `хранилище кв положить ...` - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь выполнить простой сценарий создания пользователя и записи секрета kv с помощью Vault v1.1.2:

Сначала я делаю некоторые начальные настройки после запуска сервера в рабочем режиме:

vault operator unseal <unseal key>
vault operator unseal <unseal key>
vault operator unseal <unseal key>

export VAULT_ROOT_TOKEN=<token>

Далее я делаю некоторые настройки, включая создание политики:

vault -version

vault login $VAULT_ROOT_TOKEN

vault auth enable userpass

vault secrets enable -version=2 -path=secret kv

vault policy write my-policy -<<EOF
path "secret/*" {
  capabilities = ["create", "update"]
}
path "secret/foo" {
  capabilities = ["read"]
}

path "secret/data/*" {
  capabilities = ["create", "update"]
}
path "secret/data/foo" {
  capabilities = ["read"]
}
EOF

vault token create -policy=my-policy

Затем я создаю пользователя:

vault write auth/userpass/users/chris \
    password=password \
    policies=my-policy,default

vault login -method=userpass username=chris password=password

, который возвращает:

Success! You are now authenticated. The token information displayed below
is already stored in the token helper. You do NOT need to run "vault login"
again. Future Vault requests will automatically use this token.

Key                    Value
---                    -----
token                  ...
token_accessor         ...
token_duration         10h
token_renewable        true
token_policies         ["default" "my-policy"]
identity_policies      []
policies               ["default" "my-policy"]
token_meta_username    chris

Далее я пытаюсь написать секрет kv:

vault kv put secret/foo my-value=s3cr3t

Однако я получаю ошибку:

Error writing data to secret/data/foo: Error making API request.

URL: PUT http://127.0.0.1:8200/v1/secret/data/foo
Code: 403. Errors:

* 1 error occurred:
    * permission denied

Чего мне не хватает?

1 Ответ

0 голосов
/ 23 июня 2019

Хорошо, это была моя политика.Я изменил path "secret/data/foo" на следующее, и все работает нормально.

path "secret/data/foo" {
  capabilities = ["create", "read", "update", "delete"]
}
...