← SaaS 安全:从零到企业级
全栈开发SaaS 安全:从零到企业级

隐私:会删除的功能

SaaS 安全系列第 10 篇:2026 年的执法背景、作为架构而非政策的数据最小化、真正会删除的留存机制、作为带死线分布式查询的 DSAR,以及拿下最大罚单的跨境传输问题。

SaaSSecurityPrivacyGDPRData RetentionCompliance

邮件在周五到达:“根据 GDPR 第 15 条,我要求获得你们持有的关于我的全部个人数据副本。根据第 17 条,我随后要求删除它们。” 你的律师说你有一个月。你的工程现实是:这个人的数据活在生产数据库、分析数仓、三条日志管道、一个客服工具、一个邮件服务商,以及——人人都忘掉的那个——备份里。没人知道具体在哪些表里。SaaS 就是在这种时刻发现,“我们认真对待隐私”到底是营销网站上的一个句子,还是系统的一个属性。

本系列前九篇讲的是保护你拥有的数据。本篇讲的是更反直觉的纪律:少拥有一些——审慎地收集、自动地过期、可证明地删除,并且确切知道哪些数据跨了境。安全保护那堆数据;隐私工程把它变小。而在监管者眼里,两者已经正式合并:2025 年 GDPR 罚款理由的第一名不是什么同意书细节——而是第 32 条,“技术和组织安全措施不足”。

执法已成稳态产业

这些数字已经不再令人惊讶,而这本身就是新闻:GDPR 累计罚款突破 71 亿欧元,年罚款额稳定在约 12 亿。欧盟监管机关现在每天收到超过 400 起泄露通报。而大约 40% 的罚款已被撤销或正在申诉——亚马逊的 7.46 亿欧元在 2026 年 3 月因程序问题被推翻——这告诉你这场游戏是在法庭上按年计算的,而不是说它可以不做。

有两条规律决定你怎么建系统。第一,跨境传输霸占了罚款榜:前七大罚款中的六起——Meta 的 12 亿欧元、2025 年 5 月 TikTok 的 5.3 亿欧元、Uber 的 2.9 亿欧元——都是关于数据去了哪里,而不是怎么存的。TikTok 那个加重情节值得内化:他们先告诉爱尔兰 DPC 没有在欧洲经济区以外的中国存储欧洲用户数据,然后在调查中途承认有一些。罚款是为传输开的;教训是“我们不知道数据在哪”是最糟的回答,比传输本身更糟。第二,美国走了另一个方向——没有联邦法,但到 2026 年已有二十多个州法,加州的整改宽限期没了(违规立刻可罚),合规成本自 2023 年以来上涨 30–40%。标准的工程答案是取最大公约数:按最严的制度建一次,之后每出一个新州法就只是一次文书更新。

最小化是架构,不是政策

世上每一份隐私政策都写着“我们只收集必要的数据”。几乎没有 schema 执行它。能在现实中存活的最小化是数据模型的属性:每一列个人数据在加列的那一刻就定下负责人用途TTL——而不是等审计来了再补。囤积的重灾区从来不是那些显眼的表。而是带着完整请求头的访问日志、塞着自由文本字段的分析事件、附带请求体的错误报告,以及 2024 年那张“临时”的调试表。第 3 篇的规则——脱敏是事件 schema 的一部分,不是事后的清理步骤——就是把最小化应用到遥测上。要保护、要删除、要向监管者辩护的最便宜的数据,是从来不存在的数据。

真正会删除的留存

大多数公司里的“留存计划”是一份存储系统从没听说过的 PDF。工程版本枯燥而绝对:行记录携带过期元数据,有任务删除过期行,而删除本身要被验证——因为生产表只是容易的部分。数据还活在数仓里(每晚同步)、搜索索引里(什么时候重建?)、事件流里(保留多久?),以及备份里(按设计,30 天内不可变)。

这正是第 8 篇的机制第二次派上用场。按租户分密钥让加密粉碎成为唯一能在所有地方同时生效的删除原语:删掉租户的密钥,他们的数据在每一个存储里同时变得不可恢复——包括你无法选择性编辑的备份,这把“我们会从备份里删除”从法律脚注变成了密码学事实。补全这条链的是两条规则:软删除是一种 UI 状态,不是删除(一个 deleted_at 标记意味着数据就在那儿);删除路径要像部署路径一样被测试——一个没人看着跑过的留存任务只是一个传闻。

DSAR 是带死线的分布式查询

剥掉法律语言,数据主体请求就是一个带 SLA 的工程问题:在每一个系统里找到关于一个人的全部记录,打包成可读的格式,按要求选择销毁,并对两者都出具证据——在一个月(GDPR)或 45 天(美国各州)内完成。 随着消费者学会行使这项权利,请求量在爬升,人工处理在最初几单之后就撑不住了。

组件都不光鲜。身份核验不能过度收集(为了回应一个隐私请求而索要护照扫描件,在精神上本身就是一种违规)。一份个人数据存放处的登记表——就是最小化要求的那份数据清单,现在开始承重。一个按请求扇出查询各系统的任务,而不是一个开着十二个浏览器标签的工程师。一份人类真能读懂的导出。以及一份证据日志——又是第 3 篇的审计轨迹——因为“我们删了”是一个声明,而每个存储各一条带时间戳的删除事件才是证明。把 DSAR 处理得好的团队,会像第 6 篇的事故响应一样对待它:一份预案、一次演练,以及一封作为彩排而不是死线到来的首封请求。

数据驻留与跨境问题

既然跨境传输霸占了罚款榜,“数据去了哪”就是 roadmap 问题,而不是法律脚注。2026 年的牌面是:欧美数据隐私框架(DPF)在法庭上挺住了(2025 年 9 月维持有效,正在上诉);欧盟的 Digital Omnibus 提案想把 cookie 规则并入 GDPR,并把泄露通报窗口延到 96 小时、走单一门户(仍在立法流程中,现实预期 2027 年);三分之一的组织报告过去一年发生过数据主权事故——多半是因为他们看不见数据实际在哪里被处理。注意到主题了吗:罚单开给传输,但根因永远是不知道

产品答案正变得越来越具体:一个欧盟区域,数据处理在欧洲、密钥也在欧洲(第 8 篇的 KMS 边界同时就是驻留边界);一份作为架构真实导出的子处理方清单,而不是手工维护的 wiki 页面;以及一张覆盖每个跨境流动的地图——客服工具和错误追踪服务也算在内,因为 TikTok 式的意外正是在那里酝酿的。企业买家已经开始在同一份问卷里问驻留,就像问 SSO 一样;和 SSO 不同,这个没法从 WorkOS 买。

新数据堆:AI 功能

还有一堆数据正在以超过留存计划书写速度的速度形成:prompt、上下文窗口和微调数据。数字很难看——78% 的组织无法验证进入训练管道的数据。不过原则就是本篇的这些,在功能上线前应用:进入 prompt 的客户数据需要用途和披露的处理方(你的模型供应商现在是一个子处理方);检索语料继承其源数据的全部留存和删除义务——一个漏掉向量索引的 DSAR 删除就是没有发生的删除;而“我们以后可能会用它训练”不是一个法律基础,那是一句口供。

系列的下一站

下一扇门目前的想法是:AI agent 开发工作流——有仓库访问权的编码 agent 是你供应链的最新成员(第 9 篇),而 2025 年的 s1ngularity 攻击者已经在武器化受害者本地的 AI CLI。供应商与子处理方管理——一切之下的第 28 条那一层——是另一个有力候选。和之前一样:顺序到了那里再定。

练习

  1. 挑出你存储个人信息最多的那张表,给每一列标注:负责人、用途、TTL。三样缺一样的,要么是一个发现,要么是一个删除候选——而“分析团队以后可能要”不是一个用途。
  2. 今天就用一个测试账号跑一次模拟 DSAR:覆盖每个存储、计时、最后产出一份可读的导出。如果耗时超过一个下午、或需要超过一个人,你就找到了自动化预算。
  3. 真刀真枪测一次删除:软删除一个测试租户,然后猎捕他们的数据——数仓、搜索索引、事件流、备份。接上加密粉碎路径(删除租户密钥),并验证剩下的密文真的是死重。这才是你下一次企业安全评审真正想看的演示。
guest@swangnice:~$