题干与适用场景
两家公司希望联合计算重叠用户、转化率或归因指标,却不能把邮箱、设备标识或明细事件复制给对方。面试重点是把“数据不出域”落实为执行层约束,而不是只写一份共享协议;还要处理小群体泄露、重复查询、撤销同意和跨云部署。
面试官考察什么
系统设计面试通常要求候选人先澄清范围,再深入最难的模型、权限和失败模式。数据工程面试指南也把系统设计、治理和隐私列为独立评价面。AWS Clean Rooms 文档强调最小权限、加密和 CloudTrail;Salesforce 的架构说明把零复制、身份对齐、最小聚合阈值和不可篡改审计放在执行边界。强回答会解释每条策略由哪个组件强制执行,以及攻击者如何被阻断。
回答前需要澄清的问题
先确认参与方数量、数据是否留在各自云账户、允许的分析类型和输出粒度;结果接收者能否看到精确计数;是否需要差分隐私;身份匹配使用双方提供的 token 还是可信映射服务;同意撤销要多久生效;区域驻留、密钥归属和审计保留期是什么。若只是两方一次性聚合,可以缩小为受控批作业;若要开放 SQL,就必须把查询语言和隐私预算纳入威胁模型。
30 秒回答框架
可以这样开场:“我把清洁室分成控制平面、数据连接器、策略编译器、隔离执行引擎和结果发布器。参与方只注册元数据与允许用途,原始表留在各自存储;引擎在数据所在边界执行受限查询,身份匹配在隔离服务内完成。发布前强制最小聚合阈值、差分隐私预算和结果扫描,所有查询、策略版本和密钥操作写入不可篡改审计。撤销授权会阻止新任务并使缓存结果失效,执行任务按租户、区域和密钥隔离。”
分步骤深入解答
第一步:把协作协议变成策略对象
控制平面保存参与方、数据集、用途、允许的 join 键、输出列、区域、过期时间和同意版本。策略必须版本化并签名,提交任务时锁定版本;不能让查询者在执行中修改规则。租户、角色和服务身份分离,发起者只能看到自己获授权的元数据。
第二步:让原始数据留在执行边界
连接器读取本地表或零复制视图,只向控制平面汇报 schema、统计摘要和数据位置。执行计划在策略编译器中降级为允许的 join、过滤和聚合;禁止任意导出、用户级排序、自由函数和把原始列写入日志。跨云场景使用各自的服务角色与客户管理密钥,传输全程 TLS,密钥权限限定到具体协作和中间表。
第三步:安全地完成身份匹配
不要在控制平面存原始邮箱或设备标识。双方在约定规范化规则下生成 token,或由隔离的映射服务完成匹配并只返回不可逆的 join 结果。记录规范化版本、来源和碰撞处理;规则变化时建立新版本,避免同一 token 在不同语义下被错误复用。匹配结果只能被执行引擎消费,不能被参与方下载。
第四步:在运行时执行隐私策略
执行器在返回前检查最小群体阈值、列级允许范围、查询次数和隐私预算。差分隐私会向聚合结果加入校准噪声,并追踪每次查询消耗的预算;预算耗尽后阻断后续查询。即使开启差分隐私,也要限制可重复的细分、差集和交叉查询,否则攻击者仍能通过组合结果缩小群体。
第五步:发布结果与审计证据
结果发布器只输出批准的聚合 schema、质量标记和隐私保护状态,禁止返回中间表、原始 token 或失败行。每次查询记录请求者、策略版本、数据集版本、SQL 摘要、预算消耗、结果接收者和密钥操作;审计日志写入不可由参与方删除的存储。结果缓存必须绑定策略、同意和数据版本,撤销任一项就失效。
第六步:撤销、失败与跨区域恢复
撤销授权先阻止排队任务,再让执行器在检查点重新验证策略;已发布结果按照合同标记为受影响并停止再分发。任务失败时只重跑幂等的分区,不能绕过策略直接读取临时表。跨区域部署按数据驻留选择执行位置,每个区域使用独立密钥和日志;控制平面故障时宁可暂停新查询,也不使用过期策略继续运行。
高质量示范回答
“我会先建立版本化协作策略,明确用途、可用数据集、join 键、输出列、区域和过期时间。原始表留在参与方的存储中,连接器只提供受控视图和 schema;策略编译器把请求限制为批准的 join、过滤和聚合,执行引擎在数据边界内运行。身份匹配在隔离服务中将双方规范化标识转换为 token,匹配结果不能下载。结果发布前强制最小群体阈值、差分隐私预算和组合查询检查,预算耗尽就拒绝。每次操作记录策略版本、数据版本、请求者、预算、密钥调用和结果接收者,日志不可篡改。撤销会阻止新任务、使缓存失效并在检查点重新验证;区域和密钥隔离让故障转移不越过驻留边界。”
常见错误与改进
- 只靠合同承诺数据不外泄: 在执行器和结果发布器拒绝原始列、用户级结果与未授权函数。
- 把哈希当成自动匿名化: 规范化、盐值、密钥和关联攻击都要纳入威胁模型;优先使用隔离 token 服务。
- 只设置一次最小群体阈值: 同时限制重复、差集和交叉查询,并记录隐私预算。
- 撤销只改控制台状态: 排队、执行、缓存和分发各阶段都重新检查策略版本与同意版本。
追问及应对
查询者不断改变过滤条件,如何防止差分推断?
把每个数据集和协作绑定隐私预算,并按查询消耗预算;同时限制细分维度、结果频率和相邻查询的差集。预算或风险阈值达到上限就拒绝,而不是继续返回更少的结果。
两个参与方使用不同邮箱规范化规则怎么办?
在策略中固定规范化版本,由双方在隔离匹配服务内转换并记录版本。版本不一致时任务失败并要求重新映射,不能静默使用可能产生漏匹配或错误匹配的 token。
某区域的密钥服务不可用时能否把任务转到另一个区域?
只有数据驻留和密钥策略明确允许时才能转移;否则暂停任务并保留检查点。跨区域复制应只复制加密的控制元数据和审计记录,不能复制受限原始数据或可解密中间表。
如何验证清洁室真的没有泄露原始数据?
用策略负向测试尝试选择原始列、用户级排序、低于阈值分组、重复差集和日志注入;审查执行计划与结果 schema,模拟撤销和密钥失效,并核对审计事件与实际调用一致。