Как правильно оформить политику хранилища HashiCorp?

Вот такая ситуация: Я создал пользователя

vault write auth/userpass/users/'username' password='password' policies=default

с политикой по умолчанию и добавленным путем

"secret/db_pass/*" {
  capabilities = ["create","read","delete","update","list"]
} 

в политике по умолчанию. Но когда я пытаюсь получить доступ secret/, я получаю сообщение об ошибке 'You don't have access to secret/,, хотя я добавил разрешение в файл политики.

Я делаю что-то неправильно? Не могла бы какая-нибудь нежная душа помочь? Сообщите мне, если потребуется дополнительная информация.


person AshitAcharya    schedule 09.02.2019    source источник
comment
попробуйте прочитать политику (политика хранилища прочтите xxx) и убедитесь, что вы обновили правильные возможности   -  person Amityo    schedule 09.02.2019
comment
да. 'политика хранилища читать по умолчанию' он там с правильными возможностями. путь секрет / db_pass / * {возможности = [создать, прочитать, удалить, обновить, список]}   -  person AshitAcharya    schedule 09.02.2019
comment
Может быть, попробовать добавить новую политику и добавить ее пользователю. Попробуйте получить токен для пользователя и выполните поиск токенов, чтобы убедиться, что у вас есть необходимые возможности.   -  person Amityo    schedule 10.02.2019
comment
Кажется, изменилась структура политики. Вот как я добиваюсь этого сейчас: секрет пути / * {возможности = [список]} секрет пути / данные / db_pass {возможности = [создание, чтение, удаление, обновление, список]}   -  person AshitAcharya    schedule 10.02.2019
comment
Если у вас все правильно, напишите ответ и укажите его как правильный :)   -  person Amityo    schedule 10.02.2019
comment
Выполнено. Спасибо за вашу помощь.   -  person AshitAcharya    schedule 10.02.2019


Ответы (2)


В KV v2 вам нужно будет добавить data/ после secret/ во второй политике.

Вам также нужно будет добавить * после secret/ в первой политике.

Итак, решение Ашита:

path "secret/*" {
capabilities = ["list"]
}

path "secret/data/db_pass/*" 
{ 
 capabilities = ["create","read","delete","update","list"] 
}   
person Bishoy    schedule 12.08.2020

Не уверен, но похоже, что структура политики была изменена. Для доступа к секрету / db_pass / у вас должно быть разрешение на доступ к секрету / самому себе. Итак, я добиваюсь этого с помощью 2 политик. Один для получения доступа к секрету /, а другой - к секрету / db_pass /.

path "secret/" {
  capabilities = ["list"]
}

path "secret/db_pass/*" 
    { capabilities = ["create","read","delete","update","list"] 
} 
person AshitAcharya    schedule 10.02.2019