93 lines
3.7 KiB
Markdown
93 lines
3.7 KiB
Markdown
---
|
||
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
|
||
``` |