tgoop.com/devopsslib/3517
Create:
Last Update:
Last Update:
Статичные и долгосрочные учетные данные представляют собой огромную угрозу, так как в случае их утечки злоумышленники могут беспрепятственно получить доступ к системам.
Один из вариантов решения это краткосрочные учетные данные, которые действуют только в течение ограниченного времени и автоматически истекают.
Предположим, что у вас уже есть настроенная система аутентификации, тогда нам нужно настроить динамическую генерацию учётных данных:
Для этого используем простую команду;
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"
Команда для создания роли:
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"
Команда для генерации:
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
Для автоматического продления или обновления учетных данных можно использовать API Vault для повторной генерации учетных данных по мере необходимости.
vault lease renew database/creds/my-role/XYZ123