Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Механизм секретов базы данных PostgreSQL

PostgreSQL - один из поддерживаемых плагинов для механизма секретов баз данных. Этот плагин генерирует учетные записи базы данных динамически на основе настроенных ролей для базы данных PostgreSQL, а также поддерживает статические роли.

Дополнительную информацию о настройке механизма секретов базы данных см. в документации по механизму секретов базы данных.

Механизм секретов PostgreSQL использует pgx, ту же библиотеку баз данных, что и бэкэнд хранилища PostgreSQL. Параметры строки соединения, включая параметры SSL, можно найти в документации по строке соединения pgx и PostgreSQL.

1. Возможности

Название плагина

Возможность ротации root

Динамические роли

Кастомизация имен пользователей

postgresql-database-plugin

Да

Да

Да

2. Настройка


  1. Включите механизм секретов базы данных, если он еще не включен:

    $ starvault secrets enable database
    Success! Enabled the database secrets engine at: database/

    По умолчанию движок secrets будет включаться по имени движка. Чтобы включить движок secrets по другому пути, используйте аргумент -path.

  2. Настройте 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"
  3. Настройте роль, которая сопоставляет имя в 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 с соответствующими правами, он может генерировать учетные данные.


  1. Сгенерируйте новые учетные данные, считав из конечной точки /creds имя роли:

    $ starvault 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-vaultuse-my-role-x


4. API

Полный список настраиваемых параметров можно посмотреть на странице API плагина базы данных PostgreSQL.

Более подробную информацию о HTTP API движка секретов баз данных можно найти на странице API движка секретов баз данных.