Что такое SE–PostgreSQL?
Вообще говоря, базы данных обладают существенными возможностями для управления информацией. Так, например, базы данных помогают искать информацию и хранить ее в более элегантном виде, чем если бы она хранилась в файловой системе. Современные операционные системы содержат улучшенную функциональность контроля доступа, например, SELinux, позволяющие управлять доступам ко всей системе через централизованную политику безопасности.
Таким образом, SE–PostgreSQL — это встроенное улучшение PostgreSQL, позволяющее тонко настраивать мандатное управление доступом (Mandatory Access Control, MAC) для объектов базы данных. SE–PostgreSQL принимает решения по контролю доступа, основанные на политике безопасности SELinux, точно так же, как когда доступ пользователя к объектам файловой системы управляется операционной системой.
Функция мандатного управления доступом (MAC)
PostgreSQL использует концепцию суперпользователя базы данных, которая может обойти все контроли доступа нативной PostgreSQL. А SE–PostgreSQL же обеспечивает контроль доступа по каждому клиенту без исключений (даже если клиент — суперпользователь базы данных). Клиенты могут получить доступ к объектам базы данных только когда доступ разрешен и нативной PostgreSQL, и SE–PostgreSQL.
Тонкая настройка доступа
Предоставление контроля доступа зависит от реляционной системы управления базами данных (RDBMS). SE–PostgreSQL позволяет конфигурировать контроль доступа на уровнях столбцов и строк (только некоторые проприетарные RDBMS поддерживают возможность контроля доступа по строкам и столбцам). Строки и столбцы — это самые маленькие части объектов базы данных. Контроль доступа этих объектов позволяет администраторам базы данных применять гибкие настройки по контролю доступа к ним.
Согласованность контроля доступов
SELinux требует, чтобы все процессы и объекты имели безопасное содержание, которое представляет их привилегии и атрибуты. SE–PostgreSQL назначает безопасный содержание на каждый объект базы данных и делает решения по контролю доступа на основании привилегий и атрибутов, так как если бы SELinux применял их в кернеле.libselinux
предоставляет интересный API getpeercon()
, который позволяет получать безопасное содержание однорангового (peer) процесса, связанного с серверным процессом. SE–PostgreSQL необходимы безопасные содержания для принятия решений. Это значительная возможность для согласованность контроля доступов, в котором привилегии для клиентов и атрибуты для объектов представлены в одной и той же форме.
В следующей статье про SE–PostgreSQL подробнее остановимся на ее архитектуре.
Комментариев нет :
Отправить комментарий