mcpField
A
automating-storage-limitation-controls

automating-storage-limitation-controls

github.com/mukul975数据与数据库32343 次安装32 周前更新
代码仓库

关于 automating-storage-limitation-controls

面向数据保护与工程团队的 GDPR 存储期限控制指南,涵盖保留策略、自动删除、法律保全和分层归档的设计与实施。

主要功能

  1. 01按数据类别制定保留期限
  2. 02使用 TTL 元数据触发删除
  3. 03管理法律保全与恢复删除
  4. 04规划分层存储和归档
  5. 05验证删除并监控任务

适用场景

  1. 01设计个人数据自动删除流程
  2. 02为诉讼或调查暂停删除
  3. 03规划备份轮换与加密销毁

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/privacy-data-protection-skills --skill automating-storage-limitation-controls

安装后在 Claude Code 中输入/automating-storage-limitation-controls确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
template.md
references/
standards.md
workflows.md
scripts/
process.py

详细介绍

自动化存储期限限制控制

概述

GDPR 第 5(1)(e) 条要求,个人数据的保存形式应当能够识别数据主体,但保存时间不得超过实现个人数据处理目的所必需的期限。这就是存储期限限制原则。控制者必须根据处理目的,为每类个人数据规定保留期限(第 13(2)(a) 条要求披露保留期限或确定期限的标准)。

自动化至关重要,因为大规模依赖人工管理保留期限必然会造成合规漏洞。欧洲数据保护委员会关于第 25 条的《4/2019 号指南》明确将自动删除机制列为设计保护数据的示例。

保留政策框架

确定保留期限

每个保留期限都必须以处理目的、法律要求或正当业务需求为依据:

数据类别目的合法依据保留期限保留期限起算点法律依据
客户账户数据提供服务Art. 6(1)(b)合同期限 + 90 天账户关闭Art. 5(1)(e), Art. 17(1)(a)
交易记录遵守税务规定Art. 6(1)(c)10 年交易日期Swiss CO Art. 958f, EU VAT Directive 2006/112/EC Art. 242
支持工单客户服务Art. 6(1)(b)3 年工单关闭Art. 5(1)(e), limitation period
服务器访问日志安全监控Art. 6(1)(f)12 个月日志创建日期Art. 5(1)(e), ENISA recommendation
营销同意记录问责Art. 6(1)(c)同意有效期 + 5 年撤回同意Art. 7(1), Art. 5(2)
雇佣记录法定义务Art. 6(1)(c)雇佣期限 + 10 年雇佣关系结束Swiss OR Art. 127-128
Cookie 分析数据改进产品Art. 6(1)(a)13 个月数据收集ePrivacy Directive Art. 5(3), CNIL guidance
DPIA 记录问责Art. 6(1)(c)处理期限 + 3 年停止处理Art. 35, Art. 5(2)
基于 TTL 的删除架构
┌─────────────────────────────────────────────────────────────┐
│                   Retention Policy Engine                     │
│  ┌───────────────┐  ┌────────────────┐  ┌───────────────┐  │
│  │ Policy Store  │  │ TTL Calculator │  │ Legal Hold    │  │
│  │ (per category)│  │ (trigger+period)│  │ Registry      │  │
│  └───────┬───────┘  └───────┬────────┘  └──────┬────────┘  │
│          └──────────────────┼───────────────────┘           │
└─────────────────────────────┼───────────────────────────────┘
                              │
┌─────────────────────────────▼───────────────────────────────┐
│                   Lifecycle Scheduler                         │
│  ┌──────────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │ Expiry Scanner   │  │ Archive Mover│  │ Deletion     │  │
│  │ (daily cron)     │  │ (pre-delete) │  │ Executor     │  │
│  └──────────────────┘  └──────────────┘  └──────────────┘  │
└─────────────────────────────┬───────────────────────────────┘
                              │
┌─────────────────────────────▼───────────────────────────────┐
│                   Audit and Verification                     │
│  ┌──────────────────┐  ┌──────────────┐  ┌──────────────┐  │
│  │ Deletion Log     │  │ Verification │  │ Exception    │  │
│  │ (immutable)      │  │ Scanner      │  │ Reporter     │  │
│  └──────────────────┘  └──────────────┘  └──────────────┘  │
└─────────────────────────────────────────────────────────────┘
分布式系统的删除模式
模式描述适用场景复杂度
TTL 列在数据库列中存储过期时间戳;后台作业删除过期行单数据库系统、Redis、DynamoDB低
事件驱动删除生命周期事件(账户关闭)向消息队列发布删除命令微服务架构中
墓碑标记 + 压缩将记录标记为已删除;后台压缩作业从物理层面移除数据仅追加存储、事件溯源中
级联删除删除操作沿外键关系传播具有引用完整性的关系数据库中
分布式 Saga在多个服务间协调删除,并在失败时回滚多语言持久化、跨服务数据高
密钥粉碎销毁加密密钥,使数据无法读取,而不进行物理删除物理删除难以实施的系统(备份、不可变日志)中
法律保全管理

当数据涉及诉讼、监管调查或审计程序时,法律保全会暂停自动删除。

法律保全生命周期:

  1. 启动保全 — 法律顾问发出保全通知,明确范围(数据类别、日期范围、受影响主体)和事项参考编号
  2. 登记保全 — 保留策略引擎登记保全,并创建豁免规则,以覆盖对匹配记录执行的基于 TTL 的删除
  3. 监控保全 — 法律顾问每月审查,确认保全仍有必要
  4. 解除保全 — 法律顾问发出解除通知;保留策略引擎移除豁免规则并恢复正常的保留处理
  5. 补删 — 根据当前保留策略重新评估保全期间本应删除的记录,并删除已过期的记录

Prism Data Systems AG 的实施方式:

保全参数值
保全范围格式JSON 文档,指定 data_categories、date_range_start、date_range_end、subject_identifiers、matter_reference
保全登记簿包含不可变审计跟踪的 PostgreSQL 表
审查频率法律顾问每月审查,DPO 每季度审查
未续期的最长保全期限12 个月
保全解除审批双重审批:法律顾问 + DPO

归档策略

三级存储生命周期
层级存储类型访问模式加密保留阶段
热主数据库(PostgreSQL)实时读写字段级 AES-256-GCM活跃处理
温对象存储(兼容 S3,Glacier Instant Retrieval 类别)偶尔读取,不写入对象级 AES-256-GCM目的达成后、删除前(法律/审计)
冷离线归档(磁带/保险库)按请求恢复(24-48h)AES-256-GCM + 信封加密仅法定保留

Prism Data Systems AG 的转换规则:

转换触发条件自动化
热 → 温目的达成(例如,账户关闭)+ 90 天每日生命周期作业
温 → 冷温存储保留期限届满,且仍适用法定保留期限每月生命周期作业
冷 → 删除法定保留期限届满,且没有生效的法律保全每季度生命周期作业,须经 DPO 审批
任意层级 → 法律保全为匹配范围登记法律保全立即暂停

实施工作流

  1. 盘点数据存储 — 编目每个存储个人数据的系统,包括主数据库、缓存、消息队列、日志、备份和第三方集成。

  2. 映射保留要求 — 针对每个数据类别和处理目的,根据目的必要性、法律义务和诉讼时效确定保留期限。

  3. 实现 TTL 元数据 — 为每个数据存储添加与保留相关的列或元数据:created_at、retention_trigger_event、retention_trigger_date、ttl_expiry_date、legal_hold_id。

  4. 部署生命周期调度器 — 实现一项后台服务,每日扫描已过期记录、检查是否存在有效的法律保全,并执行删除或归档转换。

  5. 实现删除验证 — 每次删除周期后执行验证扫描,确认所有目标记录均已从主存储、副本和缓存中移除。

  6. 配置备份轮换 — 确保备份保留期限与适用的最长保留期限一致。在无法实际进行精细化删除的备份介质上实施加密销毁。

  7. 部署监控和告警 — 监控删除作业成功率,标记 TTL 超期超过 7 天的记录,并对法律保全到期发出告警。

主要法规参考

  • GDPR 第 5(1)(e) 条 — 存储期限限制原则
  • GDPR 第 13(2)(a) 条 — 披露数据保留期限的要求
  • GDPR 第 17(1)(a) 条 — 数据不再必要时的删除权
  • GDPR 第 25(1) 条 — 通过设计实现数据保护
  • GDPR 第 39 条序言 — 存储期限限制指南
  • EDPB《第 4/2019 号关于第 25 条“通过设计和默认设置实现数据保护”的指南》
  • 《瑞士债务法》第 958f 条 — 商业记录需保留 10 年
  • 欧盟《增值税指令》2006/112/EC 第 242 条 — 发票保留要求

评论

支持 Markdown