数据权限合规收敛:从「谁能看」到「为什么能看」

Filed under Projects on .

把数据服务的权限从一张越来越大的白名单,收敛成一套能同时回答合规、准确与效率的申请、审批与审计机制。

目录

案例速览

角色
系统架构师
时段
2025 – 至今
领域
架构治理 / 数据权限合规
技术栈
基于用途的权限模型 · 分级审批流 · 自动化审计 · 权限到期回收

问题

数据服务的权限,是我接手架构治理时最不起眼、也最难收拾的一块。它不是某一次设计失误的结果,而是多年按「谁能看」累积出来的:某个团队上线新报表,申请一批表的读权限;某位同事转岗,权限跟着人走;某次紧急排障,临时开了个口子,之后没人记得关。每一条单独看都合理,加在一起就是一张越来越大的白名单。它只回答「谁能看」,不回答其他任何问题。

合规审计要的却是另一组答案:为什么能看、看多久、谁批的、这次访问和当初申请的用途是否一致。白名单对这些一律沉默。每到审计季,我们只能靠人工翻工单、找审批人、拼时间线,整理出一份「事后解释」。

与此同时,申请流程慢又拖累效率。因为没有分级,所有申请都走同一条人工审批链,审批人面对的是一张看不出风险高低的表名清单,只能凭经验放行或搁置。准确性也在失守:权限与实际用途脱节,申请时说的是做报表,后来数据被拿去训练模型,系统层面看不出任何差别。

合规、效率、准确,三个问题表面上互相拉扯,根源其实相同:权限模型里没有「用途」这个维度。

约束

  • 合规是硬要求。 审计方要的不是承诺,而是可以逐条核验的证据链:每一次敏感数据访问都能追溯到用途、审批人和有效期。
  • 不能拖慢业务申请。 这家全球化广告平台的数据消费方分布在多个时区,如果新机制让平均申请时长变长,它会在上线第一周就被绕过。
  • 存量权限不能一刀切。 白名单上大量权限支撑着正在运行的报表和调度任务,直接清零等于制造事故。
  • 要能被第三方审计验证。 证据必须由系统产生,而不是我们自己整理的表格;否则审计方仍需人工复核,等于没做。
  • 用户体验不能倒退。 申请人要能一眼看到申请到了哪一步、还差什么。

方案

核心改动只有一处:把权限的主键从「人」换成「用途 + 数据分级 + 期限」三元组。其余所有设计都是这一处改动的推论。

申请即声明用途

申请人不再逐个勾选表和字段,而是先声明用途,例如报表、分析、模型训练、排障,再由系统根据用途推荐所需的数据范围。用途从此成为权限记录的一部分,之后的审批、访问、审计都围绕它展开。

审批按分级分层

数据资产按敏感度分级。低敏数据配合明确用途可自动授权;中敏数据走数据 owner 单人审批;高敏数据在此之上叠加合规审批。审批人看到的是「某用途要访问某级数据」,而不是一张表名清单,人工只留给真正需要人判断的地方。

授权自带期限,到期自动回收

每条权限记录写入有效期,默认按用途类型给出上限。到期前系统提醒续期,续期需要重新确认用途未变;无人续期则自动回收。「临时开的口子」从此有了天然的关闭时间,不再依赖有人记得。

审计从抽查变成系统属性

每次访问在网关层带上用途标识和审批凭证,落成访问流水。审计不再是季度末抽查若干条记录,而是随时可以按用途、分级、时间范围导出完整证据链。

存量权限:先标记再收敛

对白名单上的存量权限,先做一件事:为每条权限补上推断的用途与分级,标记为「待确认」,但不改变其可用状态。随后按分级分批通知 owner 确认,确认即转正,超期未确认则进入回收队列。整个过程从高敏数据开始,低敏数据放到最后。

flowchart LR
A["申请:声明用途"] --> B["分级判定"]
B --> C["审批:自动 / 人工"]
C --> D["授权(带期限)"]
D --> E["访问留痕:用途 + 凭证"]
E --> F["到期回收"]
F -. "续期需重申用途" .-> A
权限的完整生命周期:从申请到回收,每一步都留下可核验的记录

取舍

存量权限怎么处理,是整个方案里争议最大的一点。我们对比过三条路。

最终选择灰度收敛:用实施复杂度换业务连续性和团队信任
对比维度一次性重置灰度收敛只增量不清存量
合规达标速度慢,存量长期不合规
业务中断风险
实施复杂度
审计可验证性低,新旧两套口径
团队信任成本

一次性重置最干净,但它把合规的成本一次性转嫁给了所有业务方,而且第一次误伤之后,没人会再相信这套机制。只增量不清存量最省事,但审计时会出现新旧两套口径,等于承认最大的那块风险我们不打算处理。灰度收敛最费工夫,但它是唯一一条既能达标、又不需要业务方为我们的历史债买单的路。

结果

  • 人工审批占比下降到少数:低敏数据的申请绝大多数由系统自动授权,人工审批集中在高敏数据和少量边界情况上。
  • 平均申请时长缩短了一个量级,主要来自自动授权,以及审批人看到的信息从表名清单变成了用途加分级。
  • 审计取证从人工整理变成可导出:审计季不再需要集中人力拼时间线,证据链可按需从系统导出,第三方审计方可以直接核验访问流水。
  • 存量白名单在灰度收敛后规模缩减了大半,剩余权限每一条都带有用途、分级与期限。
  • 权限与实际用途的偏差被前置发现:用途变更需要重新申请,「申请做报表、实际拿去训练模型」这类情况在网关层就会被拦下。

可迁移的经验

  1. 先找到缺失的维度,再谈流程优化。 合规、效率、准确三个问题同时出现时,多半不是流程不够细,而是模型里少了一个关键维度。把维度补上,很多流程问题会自行消失。
  2. 审计要成为系统属性,而不是季度活动。 只要证据需要人去整理,它就不可验证。让每一次访问自己留下证据,审计就从成本中心变成了一次导出。
  3. 期限是最便宜的治理手段。 大部分权限膨胀来自「没人记得关」。给每条授权一个默认到期时间,比任何清理运动都有效。
  4. 存量债务用灰度而不是重置。 治理项目最大的风险不是技术,而是业务方的信任。先标记、再确认、最后回收,每一步都给人反应时间,机制才能活过第一个月。
  5. 枚举优于自由文本。 任何要参与自动判定或审计聚合的字段,都必须是有限集合。这条经验代价不大,踩过一次就不会忘。

相关系列架构治理与权限收敛

觉得有用?通过 RSS 订阅 获取后续的技术文与案例更新。