Состав Сервиса
Сервис «Сервис транзакционной СУБД (услуга 1.1)» предоставляется с одним из Компонентов (далее — Компонент) в зависимости от выбора Потребителя услуг:
- компонент «СУБД Platform V Pangolin» (Цифровой продукт Тип 1);
- компонент «СУБД Platform V Pangolin DB» (Цифровой продукт Тип 2).
Выбор Компонента зависит от требований Потребителя услуг. Компонент «СУБД Platform V Pangolin DB» разработан на более поздней версии ядра PostgreSQL и содержит дополненный перечень расширений, в том числе расширение PostGIS, обеспечивающее поддержку географических объектов.
Перечни расширений, включенных в Компоненты Сервиса, приведены в разделах «Расширения» на Портале интерактивной документации по следующим адресам:
Объем дополнительных вычислительных ресурсов для установки расширений определяется Исполнителем на этапе обработки ЗНИ от Потребителя услуг. Информация о необходимом количестве вычислительных ресурсов предоставляется Исполнителем с описанием подхода к расчету.
Компонент «СУБД Platform V Pangolin» обеспечивает управление высокодоступными отказоустойчивыми объектно-реляционными базами данных в приложениях любого класса критичности, включая:
- поддержку транзакций с использованием версионности данных (MVCC), включающую:
- неблокирующее выполнение чтений записей таблицы в параллельно выполняемых транзакциях;
- неблокирующее выполнение вставки записей в таблице параллельно с чтением записей из той же таблицы;
- неблокирующее выполнение изменения записей в таблице параллельно с чтением записей из той же таблицы;
- неблокирующее выполнение удаления записей в таблице параллельно с чтением записей из той же таблицы;
- неблокирующее выполнение вставок записей таблицы в параллельно выполняемых транзакциях, при условии отсутствия на таблице уникальных или первичных ключей, либо при отсутствии параллельных вставок записей с одинаковыми значениями полей ключей;
- неблокирующее выполнение вставки записей в таблице параллельно с изменением записей в той же таблице, при условии отсутствия на таблице уникальных или первичных ключей, либо при отсутствии параллельных операций вставки и изменения записей с одинаковыми значениями полей ключей;
- неблокирующее выполнение вставки записей в таблице параллельно с удалением записей в той же таблице, при условии отсутствия на таблице уникальных или первичных ключей, либо при отсутствии параллельных операций вставки и удаления записей с одинаковыми значениями полей ключей;
- неблокирующее выполнение изменения записей в таблице параллельно с изменением непересекающегося набора записей в той же таблице. При пересечении наборов изменяемых записей для операций изменения будет происходить блокировка до применения изменений блокирующей транзакции;
- неблокирующее выполнение удаление записей в таблице параллельно с изменением непересекающегося набора записей в той же таблице. При пересечении наборов удаляемых и изменяемых записей для операций удаления будет происходить блокировка до применения изменений блокирующей транзакции;
- неблокирующее выполнение удаление записей в таблице параллельно с удалением непересекающегося набора записей в той же таблице. При пересечении наборов удаляемых записей для операций удаления будет происходить блокировка до применения изменений блокирующей транзакции;
- изоляцию изменений данных в рамках транзакции уровня READ COMMITED;
- атомарность применения всех изменений транзакции.
- ссылочную целостность данных, включающую:
- поддержку синтаксиса запросов создания внешнего ключа с поля(ей) таблицы на поле(я) другой таблицы;
- функциональность запрета создания или изменения записи в таблице с внешним ключом при отсутствии записи, соответствующей значениям в ссылающихся полях добавляемой или изменяемой записи, в таблице, на которую ссылается внешний ключ;
- функциональность каскадного удаления зависимых записей в ссылающейся таблице, при удалении соответствующих записей, адресуемых внешним ключом, в таблице, на которую ссылается внешний ключ;
- функциональность запрета удаления записей в таблице, на которую ссылается внешний ключ, при наличии зависимых записей в другой таблице, ссылающейся через внешний ключ на удаляемые записи;
- функциональность каскадного изменения значений полей зависимых записей в ссылающейся таблице, при изменении соответствующих полей записей, адресуемых внешним ключом, в таблице, на которую ссылается внешний ключ;
- функциональность запрета изменения значений полей записей, на которые ссылается внешний ключ, в таблице, при наличии записей в другой таблице, ссылающейся через внешний ключ на изменяемые поля записей.
- поддержку реализации пользовательских типов данных, включающую поддержку синтаксиса запросов создания пользовательского типа данных, таких как:
- существующих типов данных со связанными ограничениями (доменов);
- типов данных-пустышек, резервирующих имя типа;
- составных типов данных, представляющих собой структуру полей с заданными типами и, опционально, правилами сортировки;
- типов перечислений, представляющих собой список именованных меток;
- диапазонных типов данных, позволяющих оперировать значениями заданного подтипа как частью диапазонов значений с заданными правилами;
- базовых скалярных типов;
- возможность использования пользовательских типов как типов, используемых для:
- определения типов полей таблиц, кроме типов-пустышек;
- определения типов параметров функций, кроме типов-пустышек;
- оперирование значениями пользовательских типов при:
- чтении из таблицы значения поля пользовательского типа, кроме типов-пустышек;
- изменении в таблице значения поля пользовательского типа, кроме типов-пустышек;
- индексации в таблице поля пользовательского типа, кроме типов-пустышек;
- передачи в функцию значения параметра пользовательского типа, кроме типов-пустышек;
- приема из функции значения параметра пользовательского типа, кроме типов-пустышек.
- защиту данных от привилегированных пользователей (администраторов баз данных), которая включает:
- защиту настроечных параметров СУБД компонента УРБД, позволяющих отключить или ослабить защитные меры, препятствующие доступу к данным со стороны привилегированных пользователей. К таким параметрам относятся параметры, регулирующие:
- шифрование данных при передаче по сети, сложность и способы шифрования;
- способ шифрования аутентификационной информации учетных записей пользователей, хранящейся в СУБД;
- использование прозрачного шифрования данных;
- состав и размещение подключаемых библиотек расширения функциональности СУБД;
- состав внешних серверов аутентификации (ldap, radius), разрешенных к использованию для аутентификации пользователей;
- правила аутентификации пользователей; за счет передачи управления и/или контроля (за счет требования по совместному изменению значений части параметров как администраторами БД, так и администраторами безопасности) для значений таких настроечных параметров, администраторам безопасности, путем использования внешнего защищенного хранилища, управляемого администраторами безопасности, для управления значениями параметров; защищенное хранилище не должно входить в состав компонента УРБД и должно поставляться, устанавливаться, настраиваться и обслуживаться отдельно от компонента УРБД;
- реализацию защиты указанных выше настроечных параметров, с учетом:
- предоставления возможности расширения состава поддерживаемых реализаций внешних защищенных хранилищ через реализацию плагинов интеграции;
- использования единого защищенного хранилища, для прозрачного шифрования данных и защиты данных от привилегированных пользователей;
- отсутствия встроенного в компонент УРБД API управления значениями параметров в защищенном хранилище и использования для такого управления собственного API и UI защищенного хранилища со стороны администраторов безопасности;
- утилиту инициализации параметров подключения к защищенному хранилищу администраторами безопасности при установке и настройке компонента УРБД;
- отключение слабых типов аутентификации компонента УРБД, позволяющих получить доступ от имени другого аккаунта без предъявления соответствующего секрета, либо небезопасные с точки зрения возможности утечки секрета;
- защиту данных объектов баз данных под управлением компонента УРБД, путем введения дополнительного механизма контроля доступа к объектам баз данных, управляемым администраторами безопасности и функционирующим параллельно со стандартной системой прав СУБД компонента УРБД, и защищающим доступ к:
- таблицам - на действия DML чтения, вставки, изменения и удаления, DDL - изменения и удаления;
- материализованным представлениям – на действия DML чтения, DDL - изменения и удаления;
- представлениям – на действия DML чтения, вставки, изменения и удаления, DDL - изменения и удаления, создания или изменения триггера по представлению, создания или изменения правила по представлению;
- функциям - на вызов, изменение, удаление;
- ролям - на действия удаления, изменения, выдачу роли-объекту, отзыв у роли-объекта, выдачу в качестве роли-объекта, отзыв в качестве роли-объекта, смену пароля, назначения текущей роли сессии;
- API управления:
- защищаемыми объектами;
- разрешенными для политик действиями над защищаемыми объектами;
- составом политик;
- назначенными пользователям политиками механизма защиты данных;
- составом учетных записей администраторов безопасности.
- защиту и разрешение доступа только для администраторов безопасности, назначенных через соответствующие функции API, для:
- функций API-управления механизмом защиты данных;
- объектов, хранящих данные механизма защиты данных;
- утилиту инициализации механизма защиты данных администраторами безопасности при создании базы данных под контролем компонента УРБД;
- прозрачное шифрование данных, включая интеграцию с защищенным хранилищем, для обеспечения хранения мастер-ключей прозрачного шифрования данных, с учетом использования внешнего защищенного хранилища, управляемого администраторами безопасности; защищенное хранилище не входит в состав компонента УРБД и должно поставляться, устанавливаться, настраиваться и обслуживаться отдельно от компонента УРБД;
- предоставление возможности расширения состава поддерживаемых реализаций внешних защищенных хранилищ через реализацию плагинов интеграции;
- использования единого, для прозрачного шифрования данных и защиты данных от привилегированных пользователей, защищенного хранилища;
- утилиту инициализации параметров подключения к системе хранения и управления ключами шифрования администраторами безопасности при установке и настройке компонента УРБД;
- API управления ключами шифрования прозрачного шифрования данных, включая функции:
- задания мастер-ключа;
- ротации мастер-ключа;
- перешифрования локальных ключей шифрования текущим мастер-ключом;
- восстановления локальных ключей шифрования при сбое смены мастер-ключа;
- API управления составом шифруемых объектов под управлением компонента УРБД через добавление новой опции для табличных пространств, указывающей необходимость шифрования данных объектов, хранящихся в помеченном такой опцией табличном пространстве;
- невозможность использования данных из зашифрованных файлов данных или зашифрованных файлов журнала операций при их переносе на узел компонента УРБД, относящийся к другому отказоустойчивому кластеру компонента УРБД, либо на узел с отключенным прозрачным шифрованием данных;
- снятие резервной копии, содержащей зашифрованные объекты баз данных под управлением компонента УРБД;
- восстановление резервной копии, содержащей зашифрованные объекты баз данных под управлением компонента УРБД, на узле того же отказоустойчивого кластера, с которого была снята резервная копия. Узел отказоустойчивого кластера должен быть подключен к защищенному хранилищу, хранящему мастер-ключ, который использовался при создании резервной копии, содержащей зашифрованные объекты баз данных. А также быть настроенным на работу с включенным прозрачным шифрованием данных;
- невозможность восстановления резервной копии, содержащей зашифрованные объекты баз данных под управлением компонента УРБД, на узле другого отказоустойчивого кластера, либо на узле с отключенным прозрачным шифрованием данных;
- функции для получения следующих показателей, связанных с функциональностью:
- признак активности прозрачного шифрования данных;
- парольные политики пользователей, включая API управления парольными политиками, включающий функции:
- вывод парольной политики, примененной для пользователя или роли;
- вывод детализированной информации по примененной парольной политике для пользователя или роли;
- создание или изменение парольной политики;
- активация парольной политики;
- деактивация парольной политики;
- вывод всех политик;
- разблокировка пользователя или роли;
- проверку пароля пользователя на соответствие эффективной парольной политике пользователя при изменении пароля пользователя, на:
- повторение пароля, использованного ранее, в соответствии с настройками парольной политики;
- минимальное время, которое должно пройти между изменением пароля;
- соответствие критериям сложности пароля, заданным настройками парольной политики, включая – минимальную длину пароля; минимальное количество цифр в пароле; минимальное количество букв в пароле; минимальное количество символов, не являющихся буквой или цифрой, в пароле; минимальное количество строчных букв; максимальное количество повторяющихся символов; использование утилиты zxcvbn для проверки пароля; проверку сложности пароля пользовательской функцией; использование библиотеки cracklib при проверке пароля;
- парольные политики пользователей, включая блокировку пользователя при:
- истечении времени действия пароля в соответствии с настройками парольной политики;
- превышении попыток аутентификации с неверным паролем за интервал времени в соответствии с настройками парольной политики;
- превышении интервала времени с момента последнего логина пользователя (неактивности) в соответствии с настройками парольной политики;
- разблокировку пользователя при:
- истечении времени блокировки для случая блокировки при превышении попыток ввода неверного пароля при аутентификации, в соответствии с настройками парольной политики;
- через вызов функции API;
- оповещение пользователей о приближении окончания времени действия пароля при аутентификации;
- функции для получения следующих показателей:
- признак активности парольных политик пользователей.
- аудит действий пользователей, включающий:
- настройку правил формирования записей аудита в виде конфигурационного файла экземпляра компонента УРБД и установки параметров базы данных, сессии или роли через команды СУБД;
- настройку правил формирования записей аудита только пользователя с правами администратора СУБД;
- фиксацию в лог аудита действий пользователя в рамках конкретной сессий для запросов, успешно прошедших проверку прав пользователя, в соответствии с настройками:
- по запросам чтения данных;
- по запросам изменения данных;
- по запросам вызова функций;
- по запросам управления ролями и их правами доступа в рамках стандартной модели прав PostgreSQL;
- по запросам DDL (языка описания данных);
- по служебным командам;
- по командам установки параметров;
- фиксацию в лог аудита действий пользователей над конкретным отношением (таблицей, представлением):
- команда SELECT;
- команда INSERT;
- команда UPDATE;
- команда DELETE;
- фиксацию в лог аудита действий пользователей в виде записей, включающих информацию по (в зависимости от настроек и типа команды):
- типу аудита;
- идентификатору запроса;
- классу команды;
- команде;
- типу объекта, адресованного командой;
- имени объекта, адресованного командой;
- тексту команды;
- значения параметров команды.
- функции для получения следующих показателей:
- признак использования библиотеки аудита;
- функционирование в режиме отказоустойчивого кластера, а именно:
- предоставление двух экземпляров СУБД как узлов отказоустойчивого кластера, в том числе одного узла кластера как ведущего узла, принимающего запросы на изменение;
- синхронную репликацию данных между ведущим и ведомым узлами кластера, обеспечивающую сохранность примененных изменений данных;
- автоматическое переключение роли ведомого узла на роль ведущего узла при сбое функционирования ведущего узла;
- автоматическое восстановление сервиса после одиночного сбоя функционирования отказоустойчивого кластера компонента УРБД при условии соблюдения рекомендаций по развертыванию и настройке кластера компонента УРБД;
- API (REST и утилита командной строки) контроля и управления отказоустойчивым кластером, включающее следующие функции:
- определение ведущего и ведомого узла;
- определение типа репликации для ведомого узла - синхронный или асинхронный;
- проверка жизнеспособности СУБД компонента УРБД;
- проверка жизнеспособности и готовности координатора кластера компонента УРБД;
- получение информации по топологии кластера компонента УРБД;
- получение истории переключения ролей узлов кластера компонента УРБД;
- получение текущей конфигурации кластера компонента УРБД;
- изменение конфигурации кластера компонента УРБД;
- переключение ролей узлов кластера компонента УРБД;
- перезапуск СУБД узла кластера компонента УРБД;
- чтение и применение конфигурации кластера компонента УРБД;
- возможность снятия резервной копии с ведомого узла кластера компонента УРБД;
- функциональность снятия резервной копии аналогична таковой при снятии с ведущего узла.
Компонент выполняет следующие функции:
- поддержка транзакций с использованием версионности данных (MVCC);
- поддержка ссылочной целостности данных;
- поддержка реализации пользовательских типов данных;
- функционирование в режиме отказоустойчивого кластера: синхронная репликация данных;
- механизмы переключения роли узла при аварии на ведущем узле;
- управление отказоустойчивым кластером;
- автоматическое восстановление сервиса после одиночного сбоя;
- снятие резервной копии с ведомого узла;
- поддержка прозрачного шифрования данных;
- шифрование временных файлов, используемых для сортировки или слияния данных в операциях над данными;
- восстановление из резервной копии на ноде, относящейся к другому кластеру без шифрования;
- исключение переноса файлов отношений на ноду, относящуюся к другому кластеру без шифрования;
- обеспечение защиты параметров от привилегированных пользователей;
- обеспечение защиты данных от привилегированных пользователей;
- создание парольной политики пользователей;
- обеспечение аудита действий пользователей;
- получение показателей, связанных с функциональностью;
- отключение слабых типов аутентификации;
- инициализация механизма защиты данных с помощью вспомогательной утилиты;
- восстановление резервной копии, содержащей зашифрованные объекты баз данных под управлением компонента УРБД, на узле того же отказоустойчивого кластера, с которого была снята резервная копия;
- инициализация параметров подключения к защищенному хранилищу с помощью вспомогательной утилиты;
- интеграция с защищенным хранилищем.
Для работы Компонента используются следующие операционные системы: Альт Сервер (Альт 8 СП).
Используемый язык программирования: C.
Категория критичности: 1.
Компонент «СУБД Platform V Pangolin DB» – это объектно-реляционная система управления базами данных, основанная на свободно распространяемой версии PostgreSQL. Она содержит ряд доработок, позволяющих обеспечить повышенные требования к безопасности хранимых данных, доступности, надежности и производительности.
Основные функции для разработчика прикладных приложений:
- корректировка, фиксация и подмена планов запросов;
- поддержка совместной работы с 1С (включая оптимизацию производительности под 1С);
- выполнение кода в фоновом процессе;
- сквозная аутентификация между Pangolin Pooler и Pangolin DBMS;
- поддержка подготовленных запросов транзакционного режима кластера высокой доступности с использованием пуллера подключений;
- расширенные возможности при работе с json (прототип функции json_table);
- поддержка автономных транзакций;
- планировщик заданий;
- доступность дефрагментации таблиц;
- поддержка http-клиента на уровне СУБД;
- поддержка очередей сообщений.
Основные функции для работы с высоконагруженными системами:
- реализованы 64-битные идентификаторы транзакций;
- глобальные индексы и глобальные констрейнты (ограничения) на партиционированные таблицы.
Основные функции для обеспечения требований к безопасности и надежности:
- механизмы прозрачного шифрования хранимой информации и шифрования параметров подключения;
- гибко управляемые парольные политики;
- расширенные возможности аудита действий пользователя;
- двухфакторная аутентификация;
- маскирование параметров запросов;
- механизмы защиты от привилегированных пользователей;
- хранение сертификатов в формате PKCS#12 и возможность интеграции с системой хранения секретов;
- возможность ротации секретов ТУЗ без недоступности;
- контроль целостности конфигурации и объектов БД;
- очистка высвобождаемого дискового пространства в процессе работы СУБД;
- контроль загрузки динамических библиотек с проверкой контрольных сумм;
- контроль использования процедурных языков.
Дополнительные возможности Компонента:
- аварийное завершение СУБД при отключении СХД;
- резервирование подключений для служебных ролей;
- контроль потребления ресурсов (оперативная память и CPU);
- возможность использования встроенного Pangolin-DCS;
- интеграция с российским аналогом HAProxy/Nginx – SynGX;
- инструменты миграции с оригинального PostgreSQL;
- соответствие 4 уровню доверия по ФСТЭК;
- наличие регистрации в РОПО (№13436 от 29.04.2022).
В состав компонента «СУБД Platform V Pangolin DB» входят расширения, обеспечивающие:
- поддержку автономных транзакций;
- функциональность планировщика заданий;
- возможность дефрагментации таблиц;
- поддержку http-клиента на уровне СУБД;
- поддержку очередей сообщений.
Для работы Компонента используются следующие операционные системы: Альт Сервер (Альт 8 СП).
Используемый язык программирования: C.
Категория критичности: 1.