anonym.legal

By · Last updated 2026-06-05

Назад к блогуТехнические

GDPR и журналы приложений: соответствие требованиям для JSON с ПДн

Журналы приложений содержат адреса электронной почты, IP-адреса и номера аккаунтов клиентов, которые статья 5(1)(e) GDPR обязывает контролировать. Как маскировать ПДн, не теряя ценности данных для мониторинга.

June 5, 20266 мин чтения
API logsGDPR complianceJSON anonymizationobservabilitystorage limitation

Скрытый риск GDPR в вашем стеке журналирования

Обновлено для 2026 года

Большинство команд проверяют базу данных на наличие персональных данных. Свою систему журналирования проверяют значительно реже.

Статья 5(1)(e) GDPR ограничивает срок хранения персональных данных. Для баз данных команды устанавливают политики и запускают задания удаления. Для журнальных файлов правило проще: хранить всё 90 дней для отладки.

Проблема в том, что эти записи содержат персональные данные. Записи запросов содержат email-адреса пользователей. Записи ошибок содержат необработанные входные значения. Записи доступа содержат IP-адреса. Каждое из них является персональными данными по GDPR. Вашей команде нужно законное основание и план хранения для каждого.

Что оказывается в ваших журнальных файлах

Стандартное журналирование веб-приложений захватывает широкий спектр ПДн.

Записи доступа (nginx/Apache):

  • IP-адреса — персональные данные согласно руководству EDPB
  • Строки user-agent — могут позволить идентификацию устройства
  • Токены сессий — если записываются в вывод

Записи приложения (структурированный JSON):

  • Идентификаторы пользователей и адреса электронной почты
  • Ошибки ввода — часто включают необработанное некорректное значение, которое может быть реальными данными пользователя
  • Бизнес-события — идентификаторы заказов, связанные с аккаунтами клиентов
  • Поисковые запросы — могут содержать имена или адреса

Записи API-шлюза:

  • Заголовки авторизации — частично фиксируются в некоторых конфигурациях
  • Параметры запросов — могут содержать идентификаторы пользователей, имена или email
  • Тела запросов и ответов — присутствуют в конфигурациях уровня отладки

Аудиторские записи базы данных:

  • SQL-запросы с условиями WHERE типа email = 'user@example.com'
  • Литеральные персональные значения в параметрах запросов

Это происходит не намеренно. Это побочный эффект журналирования, созданного для отладки, а не для соответствия GDPR.

Руководство EDPB об IP-адресах

Европейский совет по защите данных признаёт IP-адреса персональными данными. Интернет-провайдеры могут связать их с абонентами. Внутри организации они могут идентифицировать конкретных пользователей.

Воздействие прямое. Записи доступа с IP-адресами — это персональные записи. Хранение вывода nginx 12 месяцев означает хранение персональных данных 12 месяцев. Это требует законного основания по статье 6. А также соответствия срока хранения заявленной цели.

Большинство команд пропускают этот шаг. «Мы храним записи 90 дней, потому что так требует служба безопасности» — это эмпирическое правило. Это не проверка по статье 5(1)(e) GDPR. Подробнее о том, как это вписывается в более широкую программу, см. в нашем обзоре правового соответствия.

Как достичь соответствия требованиям

Практический путь для большинства команд — не сокращать окна хранения. Операционные и сопутствующие задачи безопасности для более длительных окон вполне реальны. Лучший подход — маскировать записи перед долгосрочным хранением.

Хорошо работает многоуровневая модель.

0–7 дней: полные необработанные записи для активной отладки. Семи дней достаточно для большинства команд.

7–90 дней: замаскированные записи для анализа трендов и проверки безопасности. IP-адреса заменяются. Email-адреса пользователей становятся стабильными токенами. Номера аккаунтов маскируются. Ключевые поля — временны́е метки, коды ошибок, задержки, эндпоинты — сохраняются как есть.

90+ дней (при необходимости): только агрегированные данные. Количество событий, частота ошибок, диапазоны задержек. Записей на уровне пользователя не остаётся.

Персональные данные останавливаются на 7-м дне. Агрегированные данные могут продолжаться без раскрытия кого-либо. Подробнее см. в разделе Безопасность и соответствие требованиям.

Сохранение структуры для мониторинга

Качественное маскирование сохраняет структуру JSON нетронутой. Заменяется только содержимое. Это сохраняет ценность вывода для отладки и оповещений.

Сохраняется как есть:

  • Ключи JSON и вложенность
  • Временны́е метки и хронологический порядок
  • Типы ошибок и HTTP-коды статуса
  • HTTP-методы, пути и значения задержки
  • Типы бизнес-событий

Заменяется:

  • Адреса электронной почты → стабильный токен для каждого оригинала (например, user1@example.com)
  • IP-адреса → диапазоны RFC 5737 (192.0.2.x)
  • Номера аккаунтов → ACCT_XXXXX
  • Номера телефонов → +XX XXX XXX XXXX
  • Имена в тексте ошибок → [ЧЕЛОВЕК]

Стабильные токены сохраняют полезность трасс. Трасса user1@example.com по 40 записям работает так же, как оригинальная. Агрегированные метрики — частота ошибок, задержка, пропускная способность — вообще не нуждаются в персональных данных. Термины псевдонимизация и анонимизация объяснены в нашем Глоссарии.

Три способа интеграции

Три паттерна охватывают большинство инженерных команд.

Вариант 1 — Маскирование в конвейере: Fluentd или Logstash перехватывает каждую строку перед отправкой. Шаг маскирования выполняется встроенно. Elastic или Datadog получают только очищенные записи. Изменения кода приложения не требуются.

Вариант 2 — Ночной пакет: Необработанные записи сохраняются в локальное хранилище. Ночное задание маскирует вывод предыдущего дня и удаляет необработанную версию. Замаскированные записи поступают в долгосрочное хранилище. Необработанный вывод хранится только семь дней.

Вариант 3 — Маскирование перед передачей: Необработанные записи хранятся внутри при строгом контроле доступа. Перед передачей пентестерам или внешним подрядчикам выполняется проход маскирования. Внешние стороны всегда получают чистые версии.

Для документации GDPR маскирование является «техническим мероприятием» по статье 32. Зафиксируйте инструмент, его конфигурацию и политику хранения в реестре операций по обработке (RoPA) по статье 30. Часто задаваемые вопросы о RoPA см. в нашем FAQ.

Реальные примеры? Ознакомьтесь с кейсами для конкретных деталей реализации. Вы также можете ознакомиться с нашими тарифами, чтобы узнать, какой план включает встроенные конвейеры маскирования.

Источники

Готовы защитить ваши данные?

Начните анонимизацию PII с 285+ типов сущностей на 48 языках.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.