PostgreSQL это один из поддерживаемых плагинов для механизма секретов баз данных. Этот плагин генерирует учетные данные базы данных динамически на основе настроенных ролей для базы данных PostgreSQL, а также поддерживает Static Roles.
Смотрите database secrets engine документацию для получения дополнительной информации о настройке механизма секретов базы данных.
Возможности
Имя плагина | Изменение Root учетной записи | Динамические роли | Статические роли | Кастомизация имени пользователя |
---|---|---|---|---|
postgresql-database-plugin |
Да | Да | Да | Да |
Установка
Включите механизм секретов базы данных, если он еще не включен:
$ d8 stronghold secrets enable database
Success! Enabled the database secrets engine at: database/
По умолчанию механизм секретов будет включаться на основе его имени.
Чтобы включить механизм секретов по другому пути, используйте аргумент -path
.
Настройте Stronghold с помощью соответствующего плагина и информации о подключении:
$ d8 stronghold write database/config/my-postgresql-database \
plugin_name="postgresql-database-plugin" \
allowed_roles="my-role" \
connection_url="postgresql://:@localhost:5432/database-name" \
username="strongholduser" \
password="strongholdpass" \
password_authentication="scram-sha-256"
Настройте роль, которая сопоставляет имя в Stronghold SQL-запросом, выполняемым для создания учетной записи базы данных:
$ d8 stronghold write database/roles/my-role \
db_name="my-postgresql-database" \
creation_statements="CREATE ROLE \"\" WITH LOGIN PASSWORD '' VALID UNTIL ''; \
GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"\";" \
default_ttl="1h" \
max_ttl="24h"
Success! Data written to: database/roles/my-role
Использование
После того как механизм секретов настроен и у пользователя/машины есть токен Stronghold с соответствующими правами, он может генерировать учетные данные.
Сгенерируйте новую учетную запись, используя /creds
и имя роли:
$ d8 stronghold read database/creds/my-role
Key Value
--- -----
lease_id database/creds/my-role/2f6a614c-4aa2-7b19-24b9-ad944a8d4de6
lease_duration 1h
lease_renewable true
password SsnoaA-8Tv4t34f41baD
username v-strongholduse-my-role-x