
Автоматизированная система хранения и удаления данных на основе политик с неизменяемыми журналами аудита, RBAC/ABAC, соблюдением требований множества юрисдикций и классификацией конфиденциальных данных с помощью AI/ML
# Nullify **Безопасно. Прозрачно. Обнулено.** Nullify — это открытая модульная платформа для управления хранением, удалением и жизненным циклом данных. Она предоставляет централизованную основу для обнаружения данных, оценки политик хранения, выполнения контролируемых действий жизненного цикла и ведения проверяемых аудит-записей в распределённых средах данных. Nullify разработана вокруг архитектуры, в которой спецификация имеет приоритет. Базовые модули обеспечивают фундаментальные возможности, необходимые для управления жизненным циклом данных, а дополнительные модули-плагины расширяют Nullify новыми коннекторами, фреймворками соответствия, интеллектуальными функциями, интеграциями, хранилищами и возможностями развёртывания. ## Спецификация Nullify определяет открытую архитектуру для централизованного управления жизненным циклом данных. Спецификация построена на нескольких принципах: - Централизованная координация политик - Поддержка распределённых источников данных - Управляемое политиками хранение и удаление - Явная авторизация и согласование - Пробные запуски и рабочие процессы проверки - Неизменяемый и проверяемый аудит - Происхождение и история данных - Модульные коннекторы и интеграции - Контроль со стороны человека для разрушительных операций - Безопасность по умолчанию - Вендоро-нейтральная архитектура - Локальное, облачное, гибридное и федеративное развёртывание - Расширяемая архитектура плагинов - Прозрачная оценка политик - Воспроизводимые решения жизненного цикла Nullify не требует от организаций переносить свои данные в проприетарное централизованное хранилище. Вместо этого система координирует политики и действия жизненного цикла в существующих средах данных. ## Архитектура Nullify разделена на два основных архитектурных уровня: 1. Базовые модули 2. Опциональные модули-плагины Базовые модули содержат фундаментальную функциональность, необходимую для работы Nullify. Опциональные плагины предоставляют специализированные функции, не делая базовую платформу зависимой от конкретной базы данных, облачного провайдера, фреймворка соответствия, ИИ-системы, платформы уведомлений или инфраструктурной среды. ### Базовая архитектура Основной поток жизненного цикла: **Обнаружение → Классификация → Оценка политик → Согласование → Планирование → Исполнение → Проверка → Аудит** Каждый этап представлен независимо поддерживаемым базовым модулем. ## Базовые модули ### 1. Модуль обнаружения данных Модуль обнаружения данных идентифицирует и инвентаризирует ресурсы данных, управляемые Nullify. Возможности включают: - Регистрация источников данных - Обнаружение ресурсов - Инвентаризация наборов данных и объектов - Сбор метаданных - Метаданные о владельцах данных - Метки времени создания и изменения - Метаданные доступа - Отслеживание места хранения - Отслеживание статуса ресурсов - Мониторинг работоспособности источников данных - Планирование обнаружения Модуль предоставляет инвентаризацию, необходимую для нижестоящих политик жизненного цикла, без необходимости копировать сами данные в Nullify. ### 2. Модуль классификации данных Модуль классификации данных присваивает структурированные метаданные обнаруженным ресурсам. Возможности включают: - Присвоение категорий данных - Классификация по уровню чувствительности - Классификация PII - Классификация финансовых данных - Классификация медицинских данных - Классификация внутренних и публичных данных - Пользовательские классификации - Уверенность классификации - История классификаций - Ручная классификация - Переопределение классификаций Результаты классификации становятся входными данными для процесса оценки политик. ### 3. Модуль политик Модуль политик — центральный компонент принятия решений в Nullify. Возможности включают: - Политики хранения - Политики удаления - Политики архивирования - Политики анонимизации - Правила юридического удержания - Правила исключений - Приоритеты политик - Наследование политик - Версионирование политик - Активация и истечение срока действия политик - Симуляция политик - Обнаружение конфликтов политик - Проверка политик - Откат политик Политики должны быть декларативными и машиночитаемыми. Nullify должна поддерживать несколько форматов политик, сохраняя нормализованную внутреннюю модель политик. ### 4. Модуль решений жизненного цикла Модуль решений жизненного цикла преобразует оценки политик в явные решения жизненного цикла. Поддерживаемые решения включают: - Хранить - Пересмотреть - Архивировать - Анонимизировать - Удалить - Юридическое удержание - Исключение - Отложить Каждое решение должно содержать достаточно метаданных, чтобы пояснить: - Какое решение было принято - Какой ресурс затронут - Какая политика привела к решению - Какая версия политики использовалась - Когда решение было создано - Когда решение должно быть исполнено - Требуется ли согласование ### 5. Модуль согласования и контроля со стороны человека Nullify не должна предполагать, что каждая разрушительная операция может быть полностью автоматизирована. Модуль согласования обеспечивает контролируемый контроль со стороны человека. Возможности включают: - Очереди согласования - Многоступенчатое согласование - Согласование на основе ролей - Делегирование согласования - Истечение срока согласования - Рабочие процессы отклонения - Рабочие процессы эскалации - Экстренные удержания - Ручные переопределения - История согласований Организации могут настраивать, какие действия требуют согласования человеком, а какие могут выполняться автоматически. ### 6. Модуль планирования Модуль планирования управляет тем, когда происходят действия жизненного цикла. Возможности включают: - Плановое удаление - Плановое архивирование - Плановая анонимизация - Пакетная обработка - Очереди приоритетов - Окна технического обслуживания - Планирование с учётом ресурсов - Планирование повторных попыток - Исполнение с учётом зависимостей - Балансировка нагрузки - Ограничение интенсивности исполнения Планирование должно отделять решение о выполнении действия от фактического исполнения этого действия. ### 7. Модуль исполнения действий Модуль исполнения действий выполняет одобренные операции жизненного цикла в зарегистрированных источниках данных. Поддерживаемые действия жизненного цикла включают: - Удаление - Архивация - Анонимизация - Редактирование - Карантин - Перемещение - Истечение срока - Отзыв доступа Возможности включают: - Пробное исполнение - Проверка перед исполнением - Подтверждение исполнения - Транзакционные операции, где поддерживаются - Обработка повторных попыток - Обнаружение сбоев - Отслеживание частичных сбоев - Статус исполнения - Квитанции об исполнении - Идемпотентное исполнение - Безопасные средства контроля исполнения Разрушительные действия должны требовать явной авторизации в соответствии с настроенной политикой. ### 8. Модуль проверки Модуль проверки подтверждает, были ли действия жизненного цикла успешно завершены. Возможности включают: - Проверка удаления - Проверка архивации - Проверка анонимизации - Подтверждение источника - Проверка реплик - Проверка повторных попыток - Обнаружение неудачных действий - Обнаружение остаточных данных - Отчёты о проверке Проверка должна различать состояния: - Запрошено - Авторизовано - Запланировано - Исполнено - Проверено - Не удалось - Частично выполнено ### 9. Модуль аудита и доказательств Модуль аудита и доказательств записывает полный жизненный цикл каждого важного действия системы. Возможности включают: - Неизменяемые события аудита - Криптографическая целостность событий - Записи решений политик - Записи согласований - Записи исполнения - Записи проверок - Записи действий пользователей - История конфигураций - История политик - Экспорт аудита - Пакеты доказательств - Записи цепочки хранения Записи аудита должны позволять реконструировать, почему произошло решение жизненного цикла и что произошло после него. ### 10. Модуль происхождения данных Модуль происхождения данных отслеживает связи между ресурсами данных. Возможности включают: - Происхождение источника - Происхождение назначения - Происхождение трансформаций - Связи копий - Связи репликации - Связи производных данных - Связи родитель-потомок - История перемещения данных - Распространение жизненного цикла Происхождение позволяет Nullify выявлять связанные ресурсы, для которых также может потребоваться хранение, архивация, анонимизация или удаление. ### 11. Модуль управления доступом Модуль управления доступом защищает административные операции и операции жизненного цикла. Возможности включают: - Управление доступом на основе ролей - Управление доступом на основе атрибутов - Управление разрешениями - Разрешения на уровне ресурсов - Разрешения на уровне действий - Разрешения на согласование - Разделение административных функций - Управление сессиями - Интеграция аутентификации - Аудит авторизации Для разрушительных операций следует использовать авторизацию с минимальными привилегиями. ### 12. Модуль уведомлений Модуль уведомлений обеспечивает системные уведомления и уведомления жизненного цикла. Возможности включают: - Оповещения о нарушениях политик - Оповещения о сбоях исполнения - Уведомления о согласованиях - Уведомления о запланированных действиях - Сбои проверки - Сбои источников данных - Оповещения о соответствии требованиям - Административные уведомления Базовый модуль должен предоставлять интерфейс уведомлений, а механизмы доставки остаются заменяемыми. ### 13. Модуль API Модуль API обеспечивает программный доступ к Nullify. Возможности включают: - REST API - GraphQL API - Аутентификация - Авторизация - Управление ресурсами - Управление политиками - Управление жизненным циклом - Запросы аудита - Отчётность - Управление плагинами - Административные операции API должны предоставлять стабильные версионированные интерфейсы. ### 14. Модуль панели управления Панель управления предоставляет основной административный интерфейс. Возможности включают: - Инвентаризация данных - Статус хранения - Ожидающие действия - Статус политик - Очереди согласований - Статус исполнения - Статус проверки - История аудита - Конфликты политик - Метрики соответствия - Работоспособность системы - Статус плагинов Панель управления должна обеспечивать видимость без необходимости прямого взаимодействия пользователей с базовыми базами данных или системами исполнения. ### 15. Модуль отчётности Модуль отчётности преобразует данные жизненного цикла в операционные отчёты и отчёты о соответствии. Возможности включают: - Отчёты о хранении - Отчёты об удалении - Отчёты о политиках - Отчёты аудита - Отчёты об исключениях - Отчёты о юридическом удержании - Отчёты об исполнении - Отчёты о проверке - Отчёты об инвентаризации данных - Пакеты доказательств соответствия Поддерживаемые форматы экспорта должны включать: - JSON - CSV - PDF - Структурированные машиночитаемые форматы доказательств ### 16. Модуль мультитенантности Модуль мультитенантности позволяет Nullify работать в нескольких organisational средах. Возможности включают: - Изоляция организаций - Политики, специфичные для тенанта - Администраторы, специфичные для тенанта - Аудит-записи, специфичные для тенанта - Коннекторы, специфичные для тенанта - Правила хранения, специфичные для тенанта - Отчётность, специфичная для тенанта - Конфигурация на уровне тенанта Границы тенантов должны обеспечиваться на уровнях авторизации и доступа к данным. ### 17. Модуль федерации Модуль федерации координирует несколько установок Nullify. Возможности включают: - Координация нескольких кластеров - Федеративные политики - Распределённое исполнение - Региональное обеспечение жизненного цикла - Координация аудита в разных средах - Централизованная видимость - Локальное исполнение - Федеративная проверка Федерация должна позволять организациям сохранять локальный контроль над своими данными, одновременно координируя управление жизненным циклом централизованно. ## Опциональные модули-плагины Плагины расширяют Nullify, не увеличивая требования к зависимостям базовой платформы. Плагины должны использовать документированные интерфейсы и API, а также быть независимо устанавливаемыми, обновляемыми, включаемыми и отключаемыми. ### Плагины источников данных Опциональные коннекторы могут включать: - PostgreSQL - MySQL - MariaDB - Microsoft SQL Server - Oracle Database - MongoDB - Redis - Elasticsearch - OpenSearch - Snowflake - BigQuery - Databricks - Apache Cassandra - S3-совместимые хранилища - Google Cloud Storage - Azure Blob Storage - Сетевые файловые системы - Объектные хранилища - Пользовательские REST API ### Плагины облачных провайдеров Опциональные интеграции могут включать: - AWS - Microsoft Azure - Google Cloud - Cloudflare - DigitalOcean - Другая S3-совместимая инфраструктура Облачные плагины должны оставаться опциональными, чтобы Nullify оставалась вендоро-нейтральной. ### Плагины соответствия Опциональные пакеты политик соответствия могут включать: - GDPR - CCPA - CPRA - HIPAA - GLBA - FERPA - PCI DSS - SOX - Региональные требования конфиденциальности - Организационные фреймворки соответствия Плагины соответствия должны предоставлять шаблоны политик и сопоставления, а не встраивать нормативные требования в ядро. ### Плагины ИИ и интеллектуальной обработки Функциональность ИИ должна оставаться опциональной. Возможные плагины включают: - Классификация чувствительных данных - Обнаружение PII - Классификация документов - Распознавание сущностей - Рекомендации по хранению - Анализ конфликтов политик - Оптимизация политик - Обнаружение аномалий - Анализ неудачных удалений - Помощь в обеспечении соответствия - Создание политик на естественном языке Рекомендации, созданные ИИ, должны оставаться под контролем политик и надзором человека. ### Плагины рабочих процессов Опциональные интеграции рабочих процессов могут включать: - Apache Airflow - Dagster - Temporal - Kubernetes Jobs - GitLab CI/CD - Другие платформы оркестрации рабочих процессов ### Плагины шины событий Опциональные интеграции событий могут включать: - Apache Kafka - RabbitMQ - NATS - Redis Streams - MQTT - Облачные системы событий ### Плагины идентификации Опциональные интеграции аутентификации и идентификации могут включать: - LDAP - Active Directory - OAuth - OpenID Connect - SAML - Корпоративные поставщики идентификации ### Плагины уведомлений Опциональные интеграции уведомлений могут включать: - Email - Slack - Microsoft Teams - Webhooks - PagerDuty - Другие сервисы уведомлений ### Плагины хранилищ Nullify может поддерживать опциональные серверные хранилища для аудит-записей, доказательств, метаданных и состояния системы. Возможные плагины включают: - PostgreSQL - SQLite - MariaDB - S3-совместимое объектное хранилище - MinIO - Распределённые базы данных - Корпоративные системы хранения ### Плагины развёртывания Опциональные модули развёртывания могут предоставлять: - Docker - Docker Compose - Kubernetes - Helm - Terraform - Ansible - Облачные шаблоны развёртывания ## Архитектура безопасности Безопасность — это базовое требование, а не опциональный плагин. Nullify должна обеспечивать: - Шифрование при передаче - Шифрование при хранении - Авторизацию с минимальными привилегиями - Безопасную обработку учётных данных - Интеграцию с менеджерами секретов - Аутентификацию - Авторизацию - Ведение журналов аудита - Криптографическую целостность аудита - Ограничение частоты запросов - Безопасность API - Административное разделение - Безопасную изоляцию плагинов - Проверку конфигураций - Безопасные настройки по умолчанию Nullify никогда не должна требовать хранения учётных данных в открытом виде в конфигурации приложения. ## Архитектура безопасного удаления Поскольку удаление потенциально разрушительно, Nullify разделяет решения жизненного цикла и исполнение. Рекомендуемый жизненный цикл: 1. Обнаружить ресурс 2. Классифицировать ресурс 3. Оценить применимые политики 4. Сформировать решение жизненного цикла 5. Проверить исключения и юридические удержания 6. Запросить согласование при необходимости 7. Запланировать действие 8. Выполнить действие 9. Проверить результат 10. Зафиксировать доказательства 11. Обновить состояние жизненного цикла 12. Сообщить о результате Режим пробного запуска должен позволять организациям оценить ожидаемый результат перед выполнением разрушительных действий. ## Юридические удержания и исключения Nullify должна поддерживать исключения жизненного цикла, предотвращающие автоматическое удаление. Примеры включают: - Юридические удержания - Расследования - Активные споры - Требования регуляторного сохранения - Расследования безопасности - Организационные исключения - Временные продления хранения Юридическое удержание или одобренное исключение должно иметь приоритет над обычными политиками удаления в соответствии с настроенной иерархией политик. ## Обнаружение конфликтов политик Nullify должна выявлять ситуации, в которых политики приводят к конфликтующим решениям жизненного цикла. Примеры включают: - Удаление против хранения - Удаление против юридического удержания - Архивация против удаления - Конфликтующие периоды хранения - Конфликтующие организационные политики - Конфликтующие юрисдикционные политики Система должна объяснять конфликт и указывать, какие политики к нему привели. ## Прозрачность Каждое важное решение жизненного цикла должно быть объяснимым. Nullify должна предоставлять запись решения, содержащую: - Ресурс - Классификацию данных - Применимые политики - Версии политик - Оценку политик - Исключения - Требования согласования - Итоговое решение - Статус исполнения - Статус проверки - Соответствующие события аудита Это создаёт проверяемую цепочку от определения политики до результата жизненного цикла. ## Технологическая архитектура Nullify спроектирована так, чтобы оставаться технологически нейтральной на уровне спецификации. Эталонная реализация может использовать: - Python - FastAPI - React - PostgreSQL - Open Policy Agent - Apache Airflow - Dagster - Docker - Kubernetes - MinIO - Apache Kafka - RabbitMQ - NATS Эти технологии являются вариантами реализации, а не обязательными требованиями спецификации Nullify. ## Модульная конструкция Nullify следует модульной архитектуре, чтобы организации могли развёртывать только те функции, которые им нужны. Базовая платформа должна предоставлять: - Обнаружение - Классификацию - Оценку политик --- [Read more](https://gitlab.com/roxanne_ardary/nullify)