зеркало из
https://github.com/iharh/notes.git
synced 2025-10-29 20:56:06 +02:00
49 строки
3.0 KiB
Plaintext
49 строки
3.0 KiB
Plaintext
https://github.com/hashicorp/vault-examples
|
|
https://github.com/hashicorp/hello-vault-go
|
|
|
|
********************************************************************************************************************************
|
|
Статичные и долгосрочные учетные данные представляют собой огромную угрозу, так как в случае их утечки злоумышленники могут беспрепятственно получить доступ к системам.
|
|
Один из вариантов решения это краткосрочные учетные данные, которые действуют только в течение ограниченного времени и автоматически истекают.
|
|
Предположим, что у вас уже есть настроенная система аутентификации, тогда нам нужно настроить динамическую генерацию учётных данных:
|
|
1. Для начала активируем secret engine
|
|
|
|
Для этого используем простую команду;
|
|
vault secrets enable database
|
|
|
|
После чего пропишем подключение к БД:
|
|
vault write database/config/my-postgresql-database \
|
|
plugin_name=postgresql-database-plugin \
|
|
connection_url="postgresql://{{username}}:{{password}}@localhost:5432/mydb?sslmode=disable" \
|
|
allowed_roles="my-role" \
|
|
username="postgres" \
|
|
password="my-secret-password"
|
|
|
|
2. Далее необходимо создать роль, которая будет использоваться для генерации учетных данных
|
|
|
|
Команда для создания роли:
|
|
vault write database/roles/my-role \
|
|
db_name=my-postgresql-database \
|
|
creation_statements="CREATE ROLE {{name}} WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expire_time}}'" \
|
|
default_ttl="1h" \
|
|
max_ttl="24h"
|
|
|
|
3. Теперь вы можете генерировать учетные данные для вашей роли.
|
|
|
|
Команда для генерации:
|
|
vault read database/creds/my-role
|
|
|
|
Это сгенерирует временные учетные данные для подключения к базе данных, например:
|
|
Key Value
|
|
--- -----
|
|
username vault-xyz123
|
|
password GtU7GmHJwU69
|
|
lease_id database/creds/my-role/XYZ123
|
|
lease_duration 1h
|
|
lease_renewable true
|
|
|
|
4. Автоматизация процесса и управление учетными данными
|
|
|
|
Для автоматического продления или обновления учетных данных можно использовать API Vault для повторной генерации учетных данных по мере необходимости.
|
|
vault lease renew database/creds/my-role/XYZ123
|
|
********************************************************************************************************************************
|