nxs-data-anonymizer
Консольный инструмент с открытым исходным кодом для анонимизации дампов PostgreSQL и MySQL/MariaDB/Percona с поддержкой гибкой подмены данных, потоковой обработки и интеграции в CI/CD.
nxs-data-anonymizer
nxs-data-anonymizer — консольный инструмент с открытым исходным кодом для анонимизации дампов баз данных PostgreSQL и MySQL/MariaDB/Percona.
Инструмент позволяет заменять чувствительные данные в дампах перед передачей в среды разработки, тестирования и другие непроизводственные среды. Правила обработки можно настраивать для отдельных таблиц и столбцов, использовать значения других столбцов и сохранять связи между данными.
Возможности
Анонимизация данных
nxs-data-anonymizer позволяет задавать правила для замены значений в отдельных столбцах и таблицах.
Для формирования новых значений можно использовать:
- шаблоны Go и библиотеку Sprig;
- значения других столбцов той же строки;
- внешние команды и скрипты;
- глобальные переменные;
- правила безопасности.
Это позволяет настраивать обработку данных в соответствии со структурой конкретной базы и требованиями к анонимизации.
Сохранение связей между данными
Инструмент позволяет связывать столбцы между разными таблицами и сохранять соответствие между связанными значениями.
Например, при изменении идентификатора пользователя можно сохранить соответствующие ссылки на него в других таблицах. Это позволяет получить согласованный набор данных после анонимизации.
Потоковая обработка
nxs-data-anonymizer обрабатывает данные в потоке, поэтому его можно использовать вместе с другими консольными инструментами через конвейер командной строки.
Например, дамп можно передать непосредственно из pg_dump в nxs-data-anonymizer, а результат — сразу в psql:
pg_dump → nxs-data-anonymizer → psql
При таком подходе не требуется предварительно сохранять промежуточный анонимизированный дамп в отдельный файл.
Работа с внешними командами
Для формирования значений можно запускать внешние команды и скрипты с произвольной логикой.
В команду передаются данные текущей строки, название таблицы и столбца, тип данных и значения глобальных переменных. Результат выполнения команды используется как новое значение поля.
Интеграция в CI/CD
nxs-data-anonymizer можно включать в автоматизированные процессы разработки.
В README приведены примеры интеграции с:
- GitLab CI;
- GitHub Actions.
Контроль безопасности
В конфигурации предусмотрены правила безопасности, которые позволяют дополнительно контролировать процесс анонимизации и не допускать обработки данных способом, не соответствующим заданным ограничениям.
Как работает
nxs-data-anonymizer работает с дампом базы данных и не требует прямого подключения к исходной базе для выполнения преобразований.
Сначала создаётся дамп базы данных, после чего он передаётся в nxs-data-anonymizer вместе с конфигурацией правил анонимизации. Инструмент последовательно обрабатывает данные и передаёт результат дальше — например, в другую базу данных или в файл.
Типовой сценарий выглядит так:
Создать дамп → передать его в nxs-data-anonymizer → заменить чувствительные данные → загрузить результат в целевую среду.
Благодаря потоковой обработке все этапы можно объединить в одну команду.
Конфигурация инструмента хранится в YAML-файле. В ней задаются общие параметры, переменные, связи между столбцами, правила для таблиц и настройки безопасности.
Где можно использовать
nxs-data-anonymizer работает как консольное приложение и может использоваться в Linux-средах, контейнерах и системах автоматизации.
Инструмент можно запускать напрямую из командной строки или использовать в CI/CD вместе с другими утилитами для работы с базами данных и хранилищами. В проекте также опубликован готовый Docker-образ nixyslab/nxs-data-anonymizer.
Сценарии использования
nxs-data-anonymizer подходит для команд, которым необходимо использовать копии производственных данных в непроизводственных средах:
- подготовка данных из production для разработки;
- обновление тестовых и staging-сред;
- создание обезличенных копий баз данных;
- автоматическая подготовка дампов в CI/CD;
- передача данных между средами без раскрытия исходных чувствительных значений.
Основная задача инструмента — обеспечить использование реалистичных данных в разработке и тестировании без передачи исходных чувствительных значений.
Поддерживаемые технологии
Базы данных: PostgreSQL, MySQL, MariaDB, Percona.
Версии: PostgreSQL 9–15 и более новые версии; MySQL/MariaDB/Percona 5.7, 8.0, 8.1 и более новые версии согласно README проекта.
Форматы дампов: PostgreSQL (pgsql) и MySQL (mysql).
Автоматизация: GitLab CI, GitHub Actions.
Хранилища: в примерах CI/CD используется S3 для хранения подготовленных дампов.
Конфигурация: YAML.
Установка и документация
nxs-data-anonymizer можно скачать в виде готового бинарного файла или использовать в Docker-контейнере.
Исходный код, примеры конфигурации, описание параметров и сценарии интеграции доступны в репозитории проекта.
GitHub: nixys/nxs-data-anonymizer
Лицензия
nxs-data-anonymizer распространяется под лицензией Apache 2.0.
Больше о наших инструментах
7 минут
nxs-data-anonymizer: анонимизация данных для тестовых и динамических окружений
Удобный инструмент для анонимизации баз данных
Оставьте заявку, чтобы обсудить проект
Спасибо за обращение
Мы свяжемся с вами в ближайшее время.