📘 数据留存与删除合规策略

法律法规核心要求(下)· 个保法第47条 / 第6条 · 金融医疗行业监管
🔹 一、中国《个人信息保护法》第47条 删除权 · 数据主体的“被遗忘”

个人信息处理者应当主动删除个人信息,情形包括:

⏳ 删除权实操要点:留存期限届满即触发删除,无法删除的(如法律义务)应停止除存储和必要安全保护外的处理。

场景 / 触发条件数据留存策略删除动作
用户注销账户账户数据保留至注销后30天(缓冲期),之后立即删除物理删除 / 匿名化
撤回同意(无其他合法基础)停止处理,保留删除缓冲期(如7天)删除或匿名化
处理目的已实现(如订单完成)交易数据按行业要求(如金融5年)留存,到期删除到期自动删除任务
违法处理 / 监管责令立即停止使用,评估后删除不可逆删除
🔸 二、《个人信息保护法》第6条 最小必要原则 · 收集即约束
  • 只处理与处理目的直接相关的信息
  • 收集频率及数量限于实现目的的最小范围
  • 不得过度收集,默认不收集非必要信息
  • 与删除权联动:目的达成后,非必要信息立即删除
📌 最小必要落地检查清单
  • ✓ 数据字段是否均为业务所必需?
  • ✓ 能否用匿名化/聚合替代?
  • ✓ 留存期限是否已设置最短上限?
  • ✓ 是否定期清理非必要数据?
🏦 三、行业监管要求 金融 · 医疗 数据留存与删除红线

🏧 金融行业

监管依据核心留存要求删除/销毁规则
《金融机构客户身份识别和客户身份资料及交易记录保存管理办法》客户身份资料 至少5年(业务关系结束后)到期后删除或匿名化,不得恢复
《个人金融信息保护规范》交易记录至少5年,部分敏感信息(如生物识别)不超过业务必需超出期限后不可逆销毁
《反洗钱法》反洗钱信息至少保存5年,可疑交易延长至10年删除需经合规审批,保留删除日志

🏥 医疗健康行业

监管依据核心留存要求删除/销毁规则
《医疗机构病历管理规定》门(急)诊病历 ≥15年;住院病历 ≥30年销毁需登记造册,经院长/负责人批准
《健康医疗大数据标准、安全和服务管理办法》健康医疗数据留存不少于法律规定的期限;去标识化后可长期用于科研个人健康信息删除需提供退出机制,科研数据匿名化
《个人信息保护法》+《人类遗传资源管理条例》遗传资源信息保存按专项要求,通常不低于10年删除需经伦理审查及主管部门同意
🧩 合规策略总览 留存 · 删除 · 最小必要
数据留存与删除合规 📋 删除权 (第47条) 目的实现 · 撤回同意 · 注销 ⚖️ 最小必要 (第6条) 直接相关 · 最少数量 · 最短期限 🏛️ 行业监管 金融5-10年 · 医疗15-30年 🗂️ 数据留存策略 · 自动删除任务 · 匿名化/销毁 基于分类分级 · 合规审计 · 最小必要校验
📄 数据删除策略伪代码(最小必要 + 删除权)
// 数据留存与删除引擎 (合规策略)
class DataRetentionDeletion {
    // 根据个保法第6条、第47条及行业规则
    function evaluateRetention(dataCategory, purpose, consentStatus, industry) {
        if (purposeAchieved || consentWithdrawn) {
            if (industry == "finance" && dataCategory in ["transaction","kyc"]) {
                setRetentionPeriod(5 years);  // 反洗钱等法定要求
            } else if (industry == "medical" && dataCategory == "medicalRecord") {
                setRetentionPeriod(15 years); // 病历最少15年
            } else {
                setRetentionPeriod(0);         // 立即删除
            }
        }
        // 最小必要校验:若数据非必需,标记删除
        if (!isNecessaryForPurpose(dataField, purpose)) {
            markForDeletion(dataField);
        }
    }

    function executeDeletion() {
        // 物理删除 / 匿名化,保留删除日志
        deletePII(anonymize=true);
        auditLog("delete", timestamp);
    }
}