logo
Back-end      29/03/2021

Как настроить работу с GDPR

Константин Кичеглов BLOG

Backend Tech Lead в KeepSolid

Многие компании, которые работают с клиентами из Евросоюза, столкнулись с регулированием GDPR, вступившим в силу 25 мая 2018 года. KeepSolid — мультипродуктовая компания, а это значит, что нам пришлось разрабатывать решение, которое позволит выполнять требования GDPR как для отдельного продукта, так и для аккаунта в целом (KeepSolid ID).

Нормы GDPR обязывают компанию предоставлять конечному пользователю возможность:

  1. Полностью удалить свой аккаунт из сервиса.
  2. Получить экспорт всех хранящихся данных аккаунта.

Немного статистики: в среднем в месяц мы получаем 3500 запросов на удаление аккаунта и 800 запросов на экспорт данных.

Потенциальная проблема была в том, что каждый продукт — это своя отдельная экосистема с своим набором сервисов, API и т.д. А еще были следующие ограничения:

  1. Операции GDPR могут выполняться не мгновенно — особенно экспорт данных.
  2. В момент, когда пользователь запрашивает операцию в рамках GDPR, API одного из продуктов может быть недоступен.
  3. Один из продуктов должен отвечать за GDPR в целом, уведомлять о проблемах и обслуживать все операции.

Самый простой вариант реализации поддержки GDPR — отправка синхронных запросов каждому продукту, ожидание результатов ответов и отправка ответа пользователю. Но такой подход не проходит ни по одному из ограничений, которые я указал выше.

Онлайн-курс "Delivery Management" від robot_dreams.
За 2 місяці ви на практиці прокачаєте делівері-майндсет, щоб ефективно управляти проєктами в ІТ, лідити великі команди й будувати стійкі бізнес-процеси у доставці програмного забезпечення. .
Про курс

Учитывая все ограничения, мы решили реализовать шину данных на очередях. Основные сервисы, которые участвуют в реализации GDPR, такие:

  1. Персональный кабинет пользователя — отправная точка. Тут пользователь может выбрать все или каждый продукт в отдельности для экспорта или удаления данных.
  2. GDPR Command Service — сервис, который управляет всеми операциями GDPR.
  3. KeepSolid API — основной API для управления KeepSolid-аккаунтом.

В качестве транспорта сообщений был выбран RabbitMQ — благодаря удобному функционалу маршрутизации по разным очередям. Для временного хранилища данных экспорта используем Amazon S3.

Для примера рассмотрим обобщенную диаграмму активности GDPR-операции продукта VPN Unlimited:

GDRP в VPN Unlimited. Источник: KeepSolid

  1. Пользователь выбирает тип GDPR-операции и продукты, по которым хочет получить результат.
  2. Personal Office отправляет первичный запрос на основной API KeepSolid.
  3. Пользователь получает ответ «Ваш запрос поступил в обработку».
  4. Онлайн-курс Digital Marketing від Mate academy.
    На курсі Digital Marketing ви отримаєте усі необхідні навички, щоб отримати нову роботу: навчитесь використовувати цифрові канали для залучення аудиторії, просування брендів, товарів та послуг.
    Отримати знижку на курс
  5. KeepSolid API формирует запрос с списком сервисов пользователя и другой полезной нагрузкой.
  6. Отправляем все данные в GDPR Service.
  7. GDPR Service сохраняет в базе состояние GDPR-операции и по отдельности состояния указанных продуктов.
  8. Отправляем сформированные сообщения в IN Exchange, маршрутизация при этом осуществляется с помощью routing key (см. иллюстрацию ниже).
  9. RabbitMQ, используя routing key, переадресовывает сообщение с GDPR-операцией продукта VPN Unlimited в нужную очередь.
  10. На стороне продукта VPN Unlimited запущен слушатель очереди, который вычитывает из нее сообщения.
  11. Слушатель обрабатывает GDPR-запрос, формирует полезную нагрузку, в случае экспорта — формирует файл и выгружает его на S3. Также на этом этапе формируется ответное сообщение, которое содержит: успешность операции, полезную нагрузку, ошибки в случае провала.
  12. Отправляем сообщение в общую очередь ответов.
  13. GDPR Service вычитывает очередь ответов от продуктов.
  14. Онлайн-курс "Business English для проджект-менеджерів" від Vocabulaba.
    Підсилите англійську для управління іноземними командами та вільної комунікації на співбесідах, презентаціях і зідзвонах. .
    Детальніше про курс
  15. Обновляем состояния операций по продуктам и GDPR-операции в целом.

 

Маршрутизация с помощью routing key. Источник: KeepSolid

В дальнейшем логика работы GDPR Service довольно проста. Если все сервисы отвечают успешно — формируется запрос с полезной нагрузкой для пользователя, и ему отправляется письмо через сервис рассылки. В случае же если GDPR операция не была финализирована в течение 24 часов, GDPR Service уведомляет backend-отдел об ошибке.

Плюсы и минусы нашего подхода

Плюсы:

  1. Асинхронность обработки запросов.
  2. Отказоустойчивость и возможность масштабирования. Каждый сервис ответствен только за свою часть.
  3. Довольно быстрая расширяемость за счет централизованности основных операций.

Минусы:

  1. Зависимость от инфраструктуры. В случае если RabbitMQ не доступен из «мира», а есть продукт, который размещается в другой экосистеме (например, в облаке), необходимо создавать промежуточного GDPR Worker.
  2. Онлайн-курс “Управління мотивацією в бізнесі” від Laba.
    Навчіться визначати мотиваційні чинники вашої команди, щоб ефективніше впливати на її продуктивність. Дізнайтеся про актуальні матеріальні та нематеріальні методи, та як їх комбінувати. .
    Про курс
  3. Согласованность формата сообщений в очередях.

Итог

В итоге такая реализация стала для нас первой и единственной — мы практически не столкнулись с проблемами GDPR. Мониторинг работает исправно, и если сервис конкретного продукта не смог совершить GDPR-операцию, это всегда можно оперативно починить вручную или изменить бизнес-логику обработки в конкретном продукте.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Онлайн-курс “Директор з маркетингу” від Laba.
Як оптимізувати маркетинг-функцію, створити сильну команду та впевнено виводити продукт на нові ринки — навчить Head of Marketing and Growth з 18-річним досвідом у стратегічному маркетингу. .
Детальніше

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Топ-5 самых популярных блогеров сентября

Всего просмотровВсего просмотров
537
#1
Всего просмотровВсего просмотров
537
Recruiter| Talent Acquisition Specialist
Всего просмотровВсего просмотров
113
#2
Всего просмотровВсего просмотров
113
Software Developer у FullCity Consulting
Всего просмотровВсего просмотров
61
#3
Всего просмотровВсего просмотров
61
Всего просмотровВсего просмотров
42
#4
Всего просмотровВсего просмотров
42
Всего просмотровВсего просмотров
33
#5
Всего просмотровВсего просмотров
33
Рейтинг блогеров

Самые обсуждаемые статьи

Топ текстов

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: