Релиз nxs-anomaly: отечественная альтернатива Grafana OnCall для управления дежурствами, маршрутизации оповещений и эскалации инцидентов. Доступен на GitHub

Все инструменты

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.


Блог

Больше о наших инструментах

Все статьи

Оставьте заявку, чтобы обсудить проект

Ваши контакты
О вашем проекте

Нажав на кнопку, соглашаюсь на обработку персональных данных, Ознакомлен со всеми документами, размещенными на сайте

См. Политику обработки персональных данных
См. Пользовательское соглашение