
Nullify — 已更新!
自动化、策略驱动的数据保留与删除系统,具备不可变审计追踪、RBAC/ABAC访问控制、多司法管辖区合规性,以及用于敏感数据的AI/ML分类功能。
Nullify
安全。透明。已清除。
Nullify 是一个开源、模块化的数据保留、删除和生命周期治理平台。它提供了一个集中式框架,用于发现数据、评估保留策略、执行受控的生命周期操作,并在分布式数据环境中维护可验证的审计记录。
Nullify 围绕规范优先的架构设计。核心模块提供数据生命周期治理所需的基础能力,而可选插件模块则通过额外的连接器、合规框架、智能、集成、存储系统和部署能力扩展 Nullify。
规范
Nullify 为集中式数据生命周期管理定义了一种开源架构。
该规范建立在以下原则之上:
- 集中式策略协调
- 分布式数据源支持
- 策略驱动的保留和删除
- 明确的授权和审批
- 试运行和验证工作流
- 不可变且可验证的审计
- 数据血统和来源
- 模块化连接器和集成
- 破坏性操作的人工监督
- 默认安全执行
- 厂商中立架构
- 本地、云、混合和联合部署
- 可扩展的插件架构
- 透明的策略评估
- 可复现的生命周期决策
Nullify 不要求组织将其数据迁移到专有的集中式存储库中。相反,该系统在现有数据环境中协调生命周期策略和操作。
架构
Nullify 分为两个主要的架构层:
- 核心模块
- 可选插件模块
核心模块包含运行 Nullify 所需的基础功能。可选插件提供专门功能,同时不会使基础平台依赖于特定的数据库、云提供商、合规框架、AI 系统、通知平台或基础设施环境。
核心架构
主要生命周期流程为:
发现 → 分类 → 策略评估 → 审批 → 调度 → 执行 → 验证 → 审计
每个阶段都由一个可独立维护的核心模块表示。
核心模块
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
- 结构化机器可读证据格式
16. 多租户模块
多租户模块允许 Nullify 在多个组织环境中运行。
功能包括:
- 组织隔离
- 租户特定策略
- 租户特定管理员
- 租户特定审计记录
- 租户特定连接器
- 租户特定保留规则
- 租户特定报告
- 租户级配置
租户边界应在授权和数据访问层强制执行。
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
- 区域性隐私要求
- 组织特定合规框架
合规插件应提供策略模板和映射,而不是将法规要求硬编码到核心引擎中。
AI 与智能插件
AI 功能应保持可选。
可能的插件包括:
- 敏感数据分类
- PII 检测
- 文档分类
- 实体识别
- 保留建议
- 策略冲突分析
- 策略优化
- 异常检测
- 删除失败分析
- 合规辅助
- 自然语言策略创建
AI 生成的建议应始终受策略控制和人工监督的约束。
工作流插件
可选工作流集成可包括:
- Apache Airflow
- Dagster
- Temporal
- Kubernetes Jobs
- GitLab CI/CD
- 其他工作流编排平台
事件总线插件
可选事件集成可包括:
- Apache Kafka
- RabbitMQ
- NATS
- Redis Streams
- MQTT
- 云事件系统
身份插件
可选身份验证和身份集成可包括:
- LDAP
- Active Directory
- OAuth
- OpenID Connect
- SAML
- 企业身份提供商
通知插件
可选通知集成可包括:
- 电子邮件
- Slack
- Microsoft Teams
- Webhooks
- PagerDuty
- 其他通知服务
存储插件
Nullify 可支持用于审计记录、证据、元数据和系统状态的可选存储后端。
可能的插件包括:
- PostgreSQL
- SQLite
- MariaDB
- S3 兼容对象存储
- MinIO
- 分布式数据库
- 企业存储系统
部署插件
可选部署模块可提供:
- Docker
- Docker Compose
- Kubernetes
- Helm
- Terraform
- Ansible
- 云部署模板
安全架构
安全是核心要求,而非可选插件。
Nullify 应提供:
- 传输中加密
- 静态加密
- 最小权限授权
- 安全凭据处理
- 密钥管理集成
- 身份验证
- 授权
- 审计日志
- 加密审计完整性
- 速率限制
- API 安全
- 管理分离
- 安全插件隔离
- 配置验证
- 安全默认值
Nullify 绝不应要求将明文凭据存储在应用程序配置中。
安全删除架构
由于删除具有潜在破坏性,Nullify 将生命周期决策与执行分离。
推荐的生命周期为:
- 发现资源
- 分类资源
- 评估适用策略
- 生成生命周期决策
- 检查例外和法律保留
- 在需要时请求审批
- 调度操作
- 执行操作
- 验证结果
- 记录证据
- 更新生命周期状态
- 报告结果
试运行模式应允许组织在执行破坏性操作之前评估预期结果。
法律保留与例外
Nullify 必须支持阻止自动删除的生命周期例外。
示例包括:
- 法律保留
- 调查
- 活跃争议
- 监管保全要求
- 安全调查
- 组织例外
- 临时保留延期
根据已配置的策略层级,法律保留或已批准的例外应优先于普通删除策略。
策略冲突检测
Nullify 应识别策略产生冲突生命周期决策的情况。
示例包括:
- 删除与保留冲突
- 删除与法律保留冲突
- 归档与删除冲突
- 保留期限冲突
- 组织策略冲突
- 司法管辖区策略冲突
系统应解释冲突并识别哪些策略导致了该冲突。
透明度
每个重要的生命周期决策都应可解释。
Nullify 应提供包含以下内容的决策记录:
- 资源
- 数据分类
- 适用策略
- 策略版本
- 策略评估
- 例外
- 审批要求
- 最终决策
- 执行状态
- 验证状态
- 相关审计事件
这创建了从策略定义到生命周期结果的可审计链条。
技术架构
Nullify 旨在规范层面保持技术中立。
参考实现可使用:
- Python
- FastAPI
- React
- PostgreSQL
- Open Policy Agent
- Apache Airflow
- Dagster
- Docker
- Kubernetes
- MinIO
- Apache Kafka
- RabbitMQ
- NATS
这些技术是实现选择,而非 Nullify 规范的强制性要求。
模块化设计
Nullify 遵循模块化架构,以便组织仅部署其所需的功能。
核心平台应提供:
- 发现
- 分类
- 策略评估
- 生命周期决策
- 审批
- 调度
- 执行
- 验证
- 审计
- 血统
- 访问控制
- 通知
- API
- 仪表盘
- 报告
- 多租户
- 联合
可选功能应通过插件交付。
该架构防止核心平台与特定厂商、云提供商、数据库、AI 系统、合规框架或基础设施平台紧密耦合。
插件要求
插件应:
- 使用已记录的接口
- 维护独立配置
- 声明依赖
- 提供健康检查
- 支持启用和禁用操作
- 提供清晰的错误报告
- 遵守 Nullify 授权
- 发出适当的审计事件
- 避免绕过核心策略评估
- 保持与受支持 API 版本的兼容性
- 包含文档
- 包含测试
插件不得规避生命周期策略或授权控制。
可观测性
Nullify 应公开以下操作遥测:
- 数据发现
- 策略评估
- 队列深度
- 计划操作
- 执行性能
- 执行失败
- 验证失败
- API 性能
- 插件健康
- 数据源健康
- 系统健康
可选的可观测性插件可集成外部监控和日志平台。
可靠性
Nullify 应支持:
- 重试
- 幂等操作
- 故障恢复
- 队列持久化
- 执行检查点
- 健康检查
- 服务恢复
- 备份和还原
- 灾难恢复
- 部分失败处理
失败的删除绝不应被静默报告为成功。
部署模型
Nullify 应支持:
- 本地开发
- 单服务器部署
- Docker 部署
- Kubernetes 部署
- 本地部署
- 云部署
- 混合部署
- 多区域部署
- 联合部署
组织应能够在不依赖专有托管服务的情况下运行 Nullify。
功能路线图
核心
- 数据发现
- 数据分类
- 策略引擎
- 生命周期决策
- 审批工作流
- 调度
- 操作执行
- 试运行模式
- 执行验证
- 审计与证据
- 数据血统
- RBAC
- ABAC
- 通知
- REST API
- GraphQL API
- 仪表盘
- 报告
- 多租户
- 联合
安全
- 传输中加密
- 静态加密
- 安全凭据管理
- 密钥管理集成
- 加密审计完整性
- 最小权限授权
- 管理分离
- 安全插件架构
治理
- 策略版本控制
- 策略回滚
- 策略模拟
- 策略冲突检测
- 法律保留
- 生命周期例外
- 策略优先级
- 保留建议
- 合规报告
可靠性
- 幂等执行
- 重试管理
- 故障恢复
- 执行检查点
- 健康监控
- 备份和还原
- 灾难恢复
可选插件- [ ] SQL 连接器
- NoSQL 连接器
- 对象存储连接器
- 云提供商连接器
- 合规策略包
- AI 分类
- AI 合规顾问
- 工作流集成
- 事件总线集成
- 身份集成
- 通知集成
- 可观测性集成
- 附加存储后端
- 部署集成
开源开发
Nullify 旨在作为一个社区驱动的开源项目进行开发。
贡献者可以通过以下方式参与:
- 开发核心模块
- 创建插件
- 构建连接器
- 编写策略包
- 改进文档
- 创建测试
- 报告缺陷
- 提升安全性
- 开发集成
- 提出规范改进建议
模块化架构允许贡献者在不修改基础生命周期引擎的情况下扩展 Nullify,只要功能可以作为插件实现。
设计目标
Nullify 的设计目标包括:
- 透明而非不透明的生命周期自动化
- 策略驱动的治理而非手动流程
- 模块化架构而非单体依赖
- 供应商中立而非平台锁定
- 可验证证据而非不可验证声明
- 人工监督而非不受控自动化
- 开源可扩展性而非专有集成
- 集中治理与分布式执行
- 安全删除而非不受控销毁
规范品牌许可(SBL)
标准
- 完全符合 AGPL-3.0+ 的系统
- 对网络部署强制执行 Copyleft
- 必需署名:
- Roxanne Ardary
- https://www.roxanneardary.com/
可选
- 规范品牌许可(SBL)
- 免署名的商业部署
- 定价基于规模、使用量和部署范围
- https://roxanneardary.com/nullify/
📄 许可证与声明要求
Nullify 根据 GNU Affero 通用公共许可证 v3.0 或更高版本(AGPL-3.0+) 发布。
贡献本项目即表示您同意您的贡献也将根据该许可证发布。
请注意以下事项:
- 所有贡献必须符合 AGPL-3.0+ 条款。
- 根据许可证的第 7 节,所有再分发、分支和衍生作品必须保留对:
Roxanne Ardary 和 roxanneardary.com 的署名。 - Nullify 规范在保留署名的情况下可自由使用。可根据请求协商规范品牌许可。
- 项目的 notice.md 文件记录署名要求和贡献者致谢。
任何添加新贡献者或修改署名的更新也应更新notice.md。 - 提交拉取请求时,请确保任何新文件在适用之处保留署名头。
- 本软件的网络部署版本也必须完全符合 AGPL-3.0+ 要求,包括在许可证适用时公开源代码修改。
有关完整的法律细节,请参阅 AGPL-3.0+ 许可证和项目的 notice.md 文件。
Open Arsenal Hub
https://gitlab.com/Roxanne_Ardary/open-arsenal-specs