Механизм секретов базы данных PostgreSQL
PostgreSQL - один из поддерживаемых плагинов для механизма секретов баз данных. Этот плагин генерирует учетные записи базы данных динамически на основе настроенных ролей для базы данных PostgreSQL, а также поддерживает статические роли.
Дополнительную информацию о настройке механизма секретов базы данных см. в документации по механизму секретов базы данных.
Механизм секретов PostgreSQL использует pgx, ту же библиотеку баз данных, что и бэкэнд хранилища PostgreSQL. Параметры строки соединения, включая параметры SSL, можно найти в документации по строке соединения pgx и PostgreSQL.
1. Возможности
Название плагина |
Возможность ротации root |
Динамические роли |
Кастомизация имен пользователей |
|
Да |
Да |
Да |
2. Настройка
-
Включите механизм секретов базы данных, если он еще не включен:
$ starvault secrets enable database Success! Enabled the database secrets engine at: database/По умолчанию движок secrets будет включаться по имени движка. Чтобы включить движок secrets по другому пути, используйте аргумент
-path. -
Настройте StarVault с помощью соответствующего плагина и информации о подключении:
$ starvault write database/config/my-postgresql-database \ plugin_name="postgresql-database-plugin" \ allowed_roles="my-role" \ connection_url="postgresql://{{username}}:{{password}}@localhost:5432/database-name" \ username="vaultuser" \ password="vaultpass" \ password_authentication="scram-sha-256" -
Настройте роль, которая сопоставляет имя в StarVault с оператором SQL, чтобы выполнить создание учетной записи базы данных:
$ starvault write database/roles/my-role \ db_name="my-postgresql-database" \ creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; \ GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \ default_ttl="1h" \ max_ttl="24h" Success! Data written to: database/roles/my-role
3. Использование
После того как механизм секретов настроен и у пользователя/машины есть токен StarVault с соответствующими правами, он может генерировать учетные данные.
-
Сгенерируйте новые учетные данные, считав из конечной точки
/credsимя роли:$ starvault read database/creds/my-roleKey
Value
---
-----
lease_iddatabase/creds/my-role/2f6a614c-4aa2-7b19-24b9-ad944a8d4de6lease_duration1hlease_renewabletruepasswordSsnoaA-8Tv4t34f41baDusernamev-vaultuse-my-role-x
4. API
Полный список настраиваемых параметров можно посмотреть на странице API плагина базы данных PostgreSQL.
Более подробную информацию о HTTP API движка секретов баз данных можно найти на странице API движка секретов баз данных.