PostgreSQL, широко используемая и надежная система управления базами данных, известна своими передовыми возможностями обработки данных. В современную эпоху, когда безопасность данных крайне важна, PostgreSQL предлагает несколько расширений, предназначенных для повышения безопасности и конфиденциальности данных. В этой статье рассматривается использование расширений pgcrypto и анон для реализации шифрования и маскирования данных, что значительно повышает безопасность данных.
Настройка pgcrypto
Расширение pgcrypto предоставляет криптографические функции для PostgreSQL, позволяя безопасно шифровать данные и создавать хеши. Вот пошаговое руководство по установке и включению pgcrypto:
- Проверка доступных расширений:
Сначала проверьте, доступно ли pgcrypto в вашей установке PostgreSQL:
SELECT * FROM pg_available_extensions WHERE name='pgcrypto';
Вы должны увидеть вывод, подобный этому:
-- name | default_version | installed_version | comment
-- -------+-----------------+-------------------+-------------------------
-- pgcrypto | 1.3 | | cryptographic functions
- Создание расширения pgcrypto:
Включите pgcrypto в вашей базе данных:
CREATE EXTENSION pgcrypto;
- Проверка установки:
Подтвердите, что pgcrypto установлено:
SELECT * FROM pg_available_extensions WHERE name='pgcrypto';
Вывод должен указывать, что pgcrypto установлено:
-- name | default_version | installed_version | comment
-- -------+-----------------+-------------------+-------------------------
-- pgcrypto | 1.3 | 1.3 | cryptographic functions
Настройка расширения анон
Расширение анон в PostgreSQL помогает маскировать чувствительные данные, обеспечивая конфиденциальность. Вот как его настроить:
- Установка необходимых зависимостей:
Установите необходимые пакеты перед созданием расширения анон:
dnf install ddlx_14-0.27-1PGDG.rhel9.noarch.rpm
dnf install python3-faker-13.3.3-1.el9.noarch.rpm
dnf install postgresql_anonymizer_14-1.1.0-1.rhel9.x86_64.rpm
- Создание и настройка базы данных:
Создайте новую базу данных и настройте её для использования расширения анон:
CREATE DATABASE employee;
ALTER DATABASE employee SET session_preload_libraries = 'anon';
- Включение расширения анон:
Подключитесь к новой базе данных и создайте расширение анон:
c employee;
CREATE EXTENSION anon CASCADE;
SELECT anon.init();
Реализация маскирования данных
Теперь создадим пример таблицы и применим маскирование данных:
- Создание примера базы данных и таблицы:
Создайте новую базу данных и таблицу для хранения примерных данных:
c employee;
CREATE TABLE people (id INT, firstname VARCHAR(10), lastname VARCHAR(10), phone VARCHAR(15));
INSERT INTO people (id, firstname, lastname, phone) VALUES (1, 'Kemal', 'Oz', '9012345678');
- Создание роли и предоставление разрешений:
Создайте роль для доступа к данным и предоставьте необходимые разрешения:
CREATE ROLE hr LOGIN;
GRANT SELECT ON people TO hr;
- Применение маскирования данных:
Включите динамическое маскирование и настройте правила маскирования:
CREATE EXTENSION IF NOT EXISTS anon CASCADE;
SELECT anon.start_dynamic_masking();
Описание: Эта команда инициализирует динамическое маскирование данных, предоставляемое расширением анон.Цель: Активировать динамическое маскирование данных, что позволяет системе применять правила маскирования динамически при выполнении запросов.SECURITY LABEL FOR anon ON ROLE hr IS 'MASKED';
Описание: Эта команда присваивает метку безопасности роли hr, указывая, что роль подлежит правилам маскирования данных.Цель: Указать, что роль hr подлежит правилам маскирования данных.
Таким образом, использование расширений pgcrypto и анон в PostgreSQL позволяет значительно повысить безопасность данных за счет шифрования и маскирования. Эти методы помогают защитить конфиденциальную информацию от несанкционированного доступа и обеспечивают высокий уровень безопасности данных.