Postgres Pro в реестре ПО и с сертификатом ФСТЭК: тестируем у госклиента на Astra Linux
Postgres Pro включён в реестр отечественного ПО и получает сертификат ФСТЭК. Оцениваем совместимость с чистым PostgreSQL, смотрим на pg_probackup и jsquery в реальном пилоте.
Postgres Pro (отечественный форк PostgreSQL компании Postgres Professional) включён в реестр отечественного ПО и получает сертификат ФСТЭК
Postgres Pro появился в реестре Минкомсвязи и получил сертификат ФСТЭК. Для нас это событие не абстрактное: у нас как раз идёт пилот у госклиента, у которого в техническом задании написано «СУБД должна быть в реестре» и «сертификат ФСТЭК обязателен». PostgreSQL 9.5 эти требования не закрывал - при всём уважении к нему. Postgres Pro закрывает. Берём и смотрим, что за зверь.
Откуда берётся Postgres Pro
Postgres Professional - российская компания, основанная людьми с историей в PostgreSQL-сообществе. Postgres Pro - их форк PostgreSQL, в котором поверх ванильного кода добавлен ряд патчей и расширений. Часть патчей уже отправлена в апстрим или идёт туда, часть - специфична для российского рынка. Сертификат ФСТЭК получен на версию, совместимую с PostgreSQL 9.5.
Принципиальный вопрос, который нас волновал с самого начала: насколько это «настоящий PostgreSQL», а не что-то несовместимое, завёрнутое в этикетку. Предыдущий пилот с Astra Linux показал, как бывает, когда дистрибутив снаружи выглядит знакомо, а внутри - своя механика. Хотелось понять то же самое про Postgres Pro.
Совместимость с чистым PostgreSQL: честная оценка
Хорошая новость: SQL-совместимость высокая. Всё, что мы проверяли из типичного рабочего набора - работает без изменений. Схемы, типы данных, транзакции, индексы, хранимые процедуры на PL/pgSQL - поведение идентично PostgreSQL 9.5. Мы взяли дамп с ванильной PostgreSQL 9.5 тестовой базы и восстановили в Postgres Pro - без единой ошибки.
Из того, что отличается или добавлено:
- Инсталлятор и пакеты. Postgres Pro поставляется с собственными RPM/DEB-пакетами через свой репозиторий. Совместимость с пакетами
postgresql-9.5из стандартных репозиториев - не гарантирована: могут быть конфликты. Нужно выбирать один источник. pg_probackup. Утилита резервного копирования, которая идёт вместе с дистрибутивом. В отличие отpg_basebackupиз стандартной поставки, умеет инкрементальное резервное копирование на уровне блоков страниц, параллельное создание резервной копии и параллельное восстановление. Для госклиента с требованиями к RPO - это реально полезная вещь, а не маркетинговая надстройка.jsquery. Расширение для работы с JSONB-данными: добавляет отдельный тип для запросов к JSON-структурам с поддержкой индексов. У нашего клиента JSONB-данные есть, но в основном потоке - немного. Посмотрели, отметили, в пилоте не задействовали.- Патчи на производительность. В документации заявлены улучшения в планировщике и работе с большими объёмами данных. Проверить это честно на нашем пилоте мы не можем - нагрузка не та, чтобы делать выводы.
Как это выглядит в связке с Astra Linux
У клиента - Astra Linux Special Edition, про которую мы писали в апреле. Там уже работает PostgreSQL 9.4, который мы поставили из репозитория Postgres.org. Теперь задача - перевести на Postgres Pro с сертификатом.
Установка на Astra Linux SE прошла без неожиданностей: Postgres Professional поддерживает Debian-based дистрибутивы, пакеты ставятся через их репозиторий. Parsec (собственный LSM Astra Linux) с Postgres Pro конфликтов не создал - что логично, PostgreSQL не делает ничего экзотического с файловой системой, Parsec его не беспокоит.
Один момент потребовал внимания: pg_hba.conf и postgresql.conf при установке Postgres Pro кладутся в /etc/postgresql-pro/9.5/, а не туда, куда мы привыкли в vanilla PostgreSQL. Системный init-скрипт тоже другой. Если есть скрипты автоматизации под ванильный PostgreSQL - нужно проверить пути. У нас были Ansible-роли с жёстко прописанными путями - пришлось поправить.
Сертифицированная конфигурация требует включения режима ведения журнала событий безопасности - это настраивается через pg_audit (расширение есть в комплекте). Для аудита по ФСТЭК это один из обязательных пунктов: регистрация событий доступа к данным должна быть включена и настроена. pg_audit закрывает это требование.
# В postgresql.conf
shared_preload_libraries = 'pg_audit'
# В postgresql.conf - минимальный набор для ФСТЭК
pg_audit.log = 'write, ddl, role'
pg_audit.log_catalog = on
Логи уходят в стандартный postgresql.log, откуда их забирает rsyslog для централизованного хранения. Схема несложная, но проверить её нужно сразу: если pg_audit не загрузился - PostgreSQL не стартует с ошибкой, а если загрузился, но log не настроен - аудита нет. Молча.
Что с сертификатом на практике
Сертификат ФСТЭК - это конкретный документ с конкретным номером, датой и перечнем проверенных условий. Несколько вещей, которые важны в реальной жизни:
Версия зафиксирована. Сертификат выдан на конкретную версию Postgres Pro. Если вышло обновление - нужно смотреть, распространяется ли сертификат на него или нужно дополнительное подтверждение. При аудите мы проверяем соответствие версии из реестра и того, что фактически установлено.
Условия применения. Сертификат описывает условия, при которых продукт может применяться для обработки информации определённых классов. Поставить Postgres Pro - не значит автоматически получить защищённую систему. Условия - это и настройка pg_audit, и парольные политики, и разграничение доступа.
Сопровождение. Сертифицированная версия обновляется отдельно от основной ветки. Это означает, что критическое обновление безопасности в PostgreSQL может появиться в сертифицированной версии Postgres Pro позже. За этим нужно следить.
Где мы сейчас
Пилот идёт. Postgres Pro поднят на Astra Linux SE, данные перенесены, pg_audit настроен. Регуляторные требования по реестру и сертификату закрыты - это главное для клиента в текущий момент. Функциональность не деградировала: всё, что работало на PostgreSQL 9.4, работает на Postgres Pro.
pg_probackup начали использовать для резервного копирования - инкрементальный режим выглядит удобно, но ещё не проверен на восстановлении в условиях, приближенных к реальным. Это следующий шаг.
Главный вывод, который можно сделать сейчас: Postgres Pro - это не маркетинговая обёртка. Совместимость с PostgreSQL высокая, добавленные инструменты (pg_probackup прежде всего) реально полезны, а не просто числятся в списке возможностей. Для госклиентов с требованиями по реестру и ФСТЭК - это рабочий вариант, а не компромисс.