ADG Оставить заявку
Блог Регуляторика 5 мин чтения

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 прежде всего) реально полезны, а не просто числятся в списке возможностей. Для госклиентов с требованиями по реестру и ФСТЭК - это рабочий вариант, а не компромисс.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.