--- title: Политики vault description: published: true date: 2024-07-17T10:13:17.528Z tags: vault, policy editor: markdown dateCreated: 2024-07-09T14:09:25.393Z --- # Vault policy https://www.vaultproject.io/docs/concepts/policies.html По-умолчанию, применяется модель «Все что не разрешено, то запрещено», то есть для доступа пользователей или группы над явно прописывать доступы к нужным SecretEngine либо на более глубокий уровень. Выдача доступа к SecretEngine строится по логике * Создаем политику и определяем уровни доступа * Подключаем пользователя или группу к политике **Проверить текущие политики** ``` vault policy list ``` **Чтение содержимого политики** ``` vault policy read app-policy ``` **Создание политики** Удобнее политику создавать через GUI, чем через консоль и файл. Пример политики ```json path "examplestorage/" { capabilities = ["create", "read", "list"] } path "examplestorage/hello" { capabilities = ["read", "list"] } path "examplestorage/ansible/*" { capabilities = ["create", "read", "update", "delete", "list", "sudo"] } ``` **Подключение политики к пользователю** Политику можно назначить, в момент создания пользователя — за это отвечает ключ `-policy=policy_name` Либо подключить к уже созданному, например пользователю vasy, который входит по логину и паролю, мы подключаем политику «my-policy« **ВАЖНО**: Tсли мы хотим назначить сразу несколько политик, надо их все перечислить через запятую, иначе my-policy перезатрет все остальные политики ``` vault write auth/userpass/users/vasy policies="my-policy" ``` **Несколько политик:** ``` vault write auth/userpass/users/vasy policies="my-policy","policy2" ``` ## Подключение политики к LDAP группе ``` vault write auth/ldap/groups/ldap-group-name policies="example-policy" ``` **Узнать какие политики назначены на пользователя** Например пользователю vasy, который входит по логину и паролю ``` vault read auth/userpass/users/vasy ``` **Узнать какие политики назначены на LDAP группу** ``` vault read auth/ldap/groups/groupname ``` **Узнать какие политики назначены на пользователя при входе** Видно в выводе при входе ```bash vault login -method=ldap username=username Password (will be hidden): 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 s.bwcvQFpodcXWrRiOYxLO80RI token_accessor 6Ypav42huMYvQfccWYK6CNH0 token_duration 10h token_renewable true token_policies ["default" "example-policy"] identity_policies [] policies ["default" "example-policy"] token_meta_username username ```