Интеграция с системой хранения секретов ОдинКлюч
Функциональность доступна только для редакций Enterprise и Enterprise для ERP-систем.
Для реализации механизмов защиты параметров конфигурации, либо настройки функциональности TDE требуется наличие установленного и интегрированного решения хранилища секретов (KMS). В продукте СУБД Pangolin реализована интеграция с системой хранения секретов ОдинКлюч.
Интеграция с системой хранения секретов ОдинКлюч обеспечивает использование данного решения для хранения:
- ключей прозрачного защитного преобразования данных TDE (Transparent Data Encryption);
- защищенных параметров конфигурации СУБД Pangolin (secure config).
Система ОдинКлюч предназначена только для хранения секретов: ключей засекречивания и защищенных параметров конфигурации, и не может быть использована для хранения сертификатов.
Создание нового экземпляра СУБД Pangolin, готового для использования системы ОдинКлюч:

Перевод существующего экземпляра СУБД Pangolin на систему ОдинКлюч:

Доступ к хранилищу секретов осуществляется через плагины, загружаемые СУБД Pangolin при старте экземпляра.
Плагины располагаются в директории LIBDIR/plugins.
Для подключения создается символическая ссылка LIBDIR/libconnector_plugin.so → LIBDIR/plugins/libonekey_plugin.so.
Изменения в утилите setup_kms_credentials
Параметры подключения к системе хранения секретов задаются при помощи утилиты setup_kms_credentials. Все введенные значения сохраняются в засекреченном виде в каталоге KMSCONFIGDIR.
Изменения в утилите setup_kms_credentials:
-
Подключение к ОдинКлюч выполняется по логину и паролю. При этом каждое хранилище в ОдинКлюч имеет собственный идентификатор (
slug, указываемый какcluster_id). -
Хранилище может быть дополнительно защищено паролем или PIN-кодом, для хранения этого значения в формате подключения предусмотрено дополнительное поле
mk. Помимо указанных параметров требуется адрес и порт API-агента (ip_port), который обеспечивает доступ по протоколу HTTP. -
Обязательные поля при настройке
cluster_id,ip_port,id(логин),secret(пароль) и, при необходимости,mk. Остальные параметры, предусмотренные в формате для совместимости с другими системами (например Vault), в контексте ОдинКлюч не используются и автоматически получают значениеN/A.Формат записи параметров подключения приведен в таблице ниже.
Поле Назначение в системе ОдинКлюч Комментарий cluster_idslugхранилищаОбязательное поле. slugхранилища для доступа через REST APIroot_caНе используется Подключение к API агенту осуществляется по протоколу httpsuffixНе используется Организация хранения секретов в системе ОдинКлюч не предполагает вариативности путей. Может содержать любое значение ip_portIP и порт API агента ОдинКлюч Обязательное поле. Параметры подключения к API-агенту typeНе используется Система ОдинКлюч поддерживает единственный способ входа по связи логин/пароль idЛогин для подключения к ОдинКлюч Обязательное поле. Имя пользователя системы ОдинКлюч, имеющего доступ к хранилищу, указанному в поле cluster_idsecretПароль для подключения к ОдинКлюч Обязательное поле. Пароль для авторизации пользователя mkПароль для входа в хранилище Обязательное поле при условии, что хранилище, указанное в поле cluster_id, имеет дополнительную защиту в виде пароля/пин-кодаauth_pointНе используется Система ОдинКлюч имеет единственный адрес для авторизации protocolПротокол подключения к API-агенту Согласно инструкции API-агент разворачивается с протоколом подключения httpprefixНе используется Организация хранения секретов в системе ОдинКлюч не предполагает вариативности путей. Может содержать любое значение namespaceНе используется Организация хранения секретов в системе ОдинКлюч не предполагает вариативности путей. Может содержать любое значение -
Добавлен ключ
--storage {onekey|vault}. Если ключ не указан, предполагается ввод параметров для Vault. В случае явного указания режимаonekeyпользователю предлагается заполнить только необходимые для ОдинКлюч поля. При просмотре введенных данных командойshowнеобходимо также указывать параметр--storage onekey. В момент просмотра утилита проверяет корректность входа в систему хранения секретов, но не проверяет доступ к конкретному хранилищу.
Изменения в утилите secret_storage_client
Утилита secret_storage_client предназначена для просмотра содержимого защищенного хранилища секретов. Поддерживаются два режима передачи параметров подключения:
--config— чтение параметров подключения из файла, созданного с помощью утилитыsetup_kms_credentials;--interactive— интерактивный ввод параметров подключения пользователем.
Изменения в утилите secret_storage_client:
-
В режиме интерактивного ввода изменена логика запроса параметров: пользователю предлагается ввести только те поля, которые необходимы для работы с ОдинКлюч. Неиспользуемые поля автоматически получают значение
N/A. -
Добавлен ключ
--storage {onekey|vault}. Если ключ не указан, утилита работает в режиме совместимости с Vault. При явном указании--storage onekeyинтерактивный режим ограничивается вводом обязательных полей для ОдинКлюч.
При работе с хранилищем секретов ОдинКлюч учет дополнительного пароля или PIN-кода (mk) выполняется утилитой setup_kms_credentials. В связи с этим в режиме чтения параметров подключения из файла (--config) доработки не требуются: все необходимые значения считываются автоматически.
Плагин для подключения к системе ОдинКлюч
Плагин для подключения к системе ОдинКлюч реализован как обертка над REST API, предоставляемым разработчиками ОдинКлюч. Подключение выполняется на основе параметров, сохраненных при помощи утилиты setup_kms_credentials.
Запись секрета в ОдинКлюч содержит три обязательных поля: title, login и password. Записи могут быть сгруппированы по папкам (folder).
Для работы с секретами, используемыми СУБД Pangolin, приняты следующие правила:
- в папке
postgresqlразмещаются защищенные параметры конфигурации; - в папке
keysразмещаются ключи TDE; - поиск записей выполняется по полю
login; - поле
titleпри автоматическом создании совпадает сlogin, но при ручном вводе совпадение не является обязательным.
Система ОдинКлюч не поддерживает версионирование секретов и не ограничивает создание дубликатов. В случае наличия дубликатов по паре folder/login хранилище считается поврежденным. При запуске экземпляра такая ситуация приводит к невозможности его запуска. Если дубликаты появляются в процессе работы, последующие попытки перечитать секреты из хранилища игнорируются.
Доступ к конкретному секрету осуществляется по идентификатору записи. Для его получения плагин сначала считывает полный список секретов из хранилища, затем находит идентификатор записи по значению поля login и после этого извлекает значение секрета.
Плагин поддерживает кеширование данных. При временной недоступности ОдинКлюч экземпляр продолжает работу, используя значения из кеша.
Варианты поведения и эксплуатации хранилища секретов ОдинКлюч в разных условиях
В данном разделе описаны варианты поведения и эксплуатации хранилища секретов ОдинКлюч в различных эксплуатационных условиях.
Включение и настройка системы ОдинКлюч
-
Установите и запустите API-агент системы ОдинКлюч.
-
Установите символьную ссылку
LIBDIR/libconnector_plugin.soнаLIBDIR/plugins/libonekey_plugin.so. -
Создайте хранилище в системе ОдинКлюч.
ВажноВ хранилище должен присутствовать параметр
secure_config. -
Задайте параметры подключения с помощью утилиты
setup_kms_credentials. -
Перезапустите СУБД Pangolin.
Перевод на другую систему хранения секретов
- Перенесите все секреты из системы ОдинКлюч в новое хранилище.
- Установите символьную ссылку
LIBDIR/libconnector_plugin.soнаLIBDIR/plugins/{плагин_новой_системы}. - Задайте параметры подключения к новой системе хранения секретов.
- Перезапустите СУБД Pangolin.
Выключение плагина при возникновении ошибок
При возникновении сбоев в работе плагина ОдинКлюч переведите экземпляр на использование KMS-заменителя. Это позволит сохранить работоспособность системы до устранения причин сбоя.
Работа при завершении trial-лицензии
При завершении действия trial-лицензии работа плагина не изменяется. Контроль лицензий выполняется средствами СУБД Pangolin по общим правилам, установленным для всех систем хранения секретов.
Работа при переходе между редакциями
При переходе между редакциями Standard к Enterprise работа плагина сохраняется без изменений. Проверка лицензии осуществляется средствами СУБД Pangolin.
Диагностика и устранение ошибок
- Включите логирование curl-запросов, установив параметр
log_min_messages = DEBUG5. - Проверьте логи API-агента ОдинКлюч при возникновении ошибок подключения.
- Используйте документацию разработчика ОдинКлюч для уточнения деталей работы агента.