Подготовка к использованию централизованного хранилища секретов HashiCorp Vault 1.16.3

Аутентификационная информация (далее по тексту — секрет) для подключения к СУБД PostgreSQL, с целью резервного копирования или восстановления данных СУБД, хранится в конфигурационном файле, что не является безопасным подходом, т.к. злоумышленники могу получить доступ к содержимому файла, если он недостаточно защищён.

Более безопасным подходом к хранению секретов является использование инструмента управления секретами, таким как HashiCorp Vault. Эта система позволяет шифровать секреты и хранить их в безопасном хранилище, к которому имеют доступ авторизованные пользователи СРК RuBackup с соответствующими правами доступа.

Интеграция СРК RuBackup с хранилищем секретов HashiCorp Vault происходит через основной сервер (при его недоступности — через резервный сервер) посредством интерфейса REST API.

Интеграция СРК RuBackup с хранилищем секретов HashiCorp Vault поддерживается только при создании и восстановлении полных и инкрементальных резервных копий.

1. Права доступа

Права доступа к секретам хранилища предоставляются пользователям СРК RuBackup в соответствии с таблицей.

Таблица 1. Права доступа пользователей СРК RuBackup к секретам хранилища HashiCorp Vault

Редактирование данных хранилища секретов

+

Добавление данных хранилища секретов

+

Удаление данных хранилища секретов

+

Добавление методов получения секретов в СРК

+

Просмотр методов получения секретов в СРК

+

С

С

Редактирование методов получения секретов в СРК

+

Удаление методов получения секретов в СРК

+

Назначение доступа к методам получения секретов в СРК

+

Примечание: С — доступ назначает Суперпользователь на выбранный метод

2. Подготовка к использованию

Предварительно следует:

  1. Получите следующие данные от Администратора хранилища секретов:

    • подтверждение, что секрет создан в хранилище секретов HashiCorp Vault. Один секрет может содержать несколько наборов аутентификационной информации в формате .json;

    • токен для доступа к хранилищу секретов HashiCorp Vault;

    • метод доступа к секрету.

  2. На хосте с развёрнутым RBM, посредством которого будет производится резервное копирование и восстановление данных СУБД PostgreSQL, необходимо:

    • добавить запись о сервере хранилища секретов HashiCorp в файл /etc/hosts, например, выполнив в терминале команду:

      sudo echo "ip-address hostname" >> /etc/hosts

      где:

      • ip-address — ip адрес сервера хранилища секретов HashiCorp.

      • hostname — имя сервера хранилища секретов HashiCorp.

  3. сгенерировать запрос на сертификат и подписать его на сервере хранилища секретов HashiCorp (для использования метода https), выполнив в терминале команду:

    sudo openssl s_client -showcerts -servername hostname -connect hostname:8200 > /tmp/cacert.pem

    где:

    • hostname — имя сервера хранилища секретов HashiCorp;

    • 8200 — порт (по умолчанию) для прослушивания запросов к хранилищу секретов HashiCorp Vault по безопасному протоколу https;

    • /tmp/ — папка, в которую будет сохранён сгенерированный и подписанный сертификат;

    • cacert.pem — имя файла сертификата в формате .pem, подписанного на сервере хранилища секретов HashiCorp.

  4. Суперпользователь СРК RuBackup должен произвести следующие настройки для использования секретов хранилища HashiCorp Vault:

    • в конфигурационном файле модуля rb_module_postgresql.conf добавьте параметр использования Хранилища use_secret_storage со значением yes;

    • в конфигурационном файле модуля rb_module_postgresql.conf удалите параметры, например, username и/или password, которые содержит используемый секрет;

    • после авторизации в RBM с правами суперпользователя произведите настройки для работы с хранилищем секретов:

      • добавьте хранилище секретов;

      • добавьте метод получения секрета в хранилище;

      • назначьте Администратору и/или Супервайзеру доступный метод получения секрета.