Перейти к основному содержимому

Задание 2: Защитное преобразование и хранение параметров подключения

Для исключения хранения паролей в открытом виде и предотвращения компрометации паролей в СУБД Pangolin подготовлен набор утилит, позволяющих преобразовывать пароли и хранить их в закодированном виде:

  • pg_auth_config — утилита защитного преобразования/хранения параметров подключения к БД.
  • pg_auth_password — утилита защитного преобразования паролей. Позволяет получить пароль в защищенном виде после ввода исходного пароля.
  • pangolin-auth-reencrypt – утилита перекодирования паролей, которая используется для восстановления работоспособности узла кластера при смене параметров сервера.

Утилиты pg_auth_config и pg_auth_password располагаются в каталоге $PGHOME/bin и доступны только владельцу (postgres).

Защитное преобразование параметров подключения к базе​

Утилита pg_auth_config формирует защищенное хранилище, которое хранится в файле /etc/postgres/enc_utils_auth_settings.cfg. Ключи, используемые при кодировании, уникальны в рамках узла. Они не хранятся, а вычисляются в процессе. Также возможно добавление нескольких записей одной командой через разделитель ,.

Примечание

В качестве ключа защитного преобразования используется фраза, конструируемая из параметров:

  • парольная фраза – CPU manufacturer ID CPU, CPU stepping, CPU model, CPU family, CPU feature flags, список MAC и IP-адресов постоянных сетевых интерфейсов;
  • соль – тип credentials, machineId из /etc/machine-id, UUID корневой файловой системы, домен для использования credentials (сейчас POSTGRESQL - для защитного преобразования конфигурационных файлов компонент отказоустойчивого кластера или KMS - для защитного преобразования параметров доступа к KMS).

Алгоритм определяется сконфигурированным плагином защитного преобразования (по умолчанию AES-256). Хранилище может быть декодировано только на узле, где было создано. Оно автоматически формируется на этапе установки дистрибутива СУБД Pangolin.

Защитное преобразование паролей (pg_auth_password и pg_auth_reencrypt)​

Утилита pg_auth_password выполняет защитное преобразование паролей и исключает хранение паролей в открытом виде, предотвращая компрометацию паролей.

На вход утилита pg_auth_password принимает пароль, результат выполнения выводится в консоль. Закодированный пароль используется в конфигурационных файлах.

Формат закодированного пароля:

$enc$<encrypted_password_in_base64>

- $enc$ — признак закодированного пароля;
- <encrypted_password_in_base64> — закодированный пароль в формате base64.

Запуск утилиты pg_auth_passwordс опцией --help отображает параметры использования:

$ /opt/pangolin-auth-password/bin/pg_auth_password --help
Утилита 'pg_auth_password' предназначена для защиты пароля.

Использование:
pg_auth_password enc -t [ОПЦИИ]

Опции:
-s или enc -t --skip-confirm ручной ввод без подтверждения
-W <пароль> или enc -t --password <пароль> пароль вводится в качестве аргумента

Другие опции:
-V или --version вывод информации о версии, затем выход
-h или --help вывод справки, затем выход

Информация о версии продукта Pangolin:
--product_version выводит название и версию продукта
--product_build_info выводит номер, дату и хеш сборки продукта
--product_component_hash выводит хеш-строку компонента

В состав Pangolin также включена утилита pangolin-auth-reencrypt, которая используется для восстановления работоспособности узла кластера при смене параметров сервера.

После автоматизированной установки Pangolin утилита доступна в каталоге /opt/pangolin-auth-reencrypt/bin/pangolin-auth-reencrypt.

Утилита запускается в двух режимах:

  • автоматический — запуск настраивается при установке Pangolin;
  • ручной — вызов бинарного файла утилиты с указанием требуемых параметров и предварительной настройкой утилиты.

Подведем итоги​

Вопрос 1

Выберите все корректные утверждения: