3. 数据隐私基础:敏感数据识别、分类与生命周期管理

做隐私增强网关,第一步不是搭架构,而是搞清楚:你到底在保护什么?

说白了,你连哪些数据是敏感的都搞不清楚,后面的加密、脱敏、审计全是瞎忙活。我记得刚接手一个金融项目时,团队上来就搞动态脱敏,结果上线第一天就发现——他们把业务员的工号当成身份证号给脱了,真正的信用卡号全裸奔。嗯,这就是识别没做好的下场。

核心认知: 没有经过分类的数据,就是一场安全灾难。在内部开发者平台里,每个微服务都在吞吐数据,你必须先给数据贴上标签,才能让网关知道该拦截什么、放行什么、加密什么。

3.1 敏感数据的定义与识别

什么样的数据算“敏感”?范围比你想的宽得多。

类别 典型字段 泄露后果
个人身份信息 (PII) 身份证号、姓名、手机号、家庭住址 身份盗用、诈骗
金融数据 银行卡号、信用卡CVV、交易记录 经济损失、合规罚款
健康数据 病历、诊断结果、基因信息 隐私侵犯、法律诉讼
商业机密 源代码、客户名单、定价策略 竞争力丧失、商业损失
设备/网络标识 IP地址、MAC地址、设备指纹 跟踪监控、精准攻击

识别这些字段,靠人工翻数据库肯定不现实。我建议用正则表达式加上样本数据扫描。比如身份证号是18位数字,信用卡号是16位,这些都有现成的模式。但要注意——不能光看格式,还要结合上下文。

实用技巧: 在内部开发者平台里,可以在API网关层做请求体的自动探测。流量经过网关时,扫描JSON字段名和值,匹配到敏感模式就自动打标。这样不用改造代码,就能实现数据发现。

3.2 数据分类标准与等级体系

数据识别出来了,接下来要分级。分几级?怎么做?

我个人习惯用四象限法,从“敏感性”和“合规要求”两个维度来切。这样分类后,每一类数据对应一种网关处理策略。

常用的四级分类体系

  • 公开数据:如产品介绍、公司地址。网关可完全放行。
  • 内部数据:如员工排班表、部门周报。网关需要做身份认证。
  • 敏感数据:如身份证号、薪资信息。网关必须做动态脱敏或字段级加密。
  • 绝密数据:如密钥材料、用户支付密码。网关禁止外传,仅限内部特定服务。

为什么这么分?你想想看,信用卡号和员工工号的处理方式能一样吗?不能。我在项目中见过一个糟糕的实践——把所有数据一股脑全加密,结果查询性能跌了80%不说,索引全都失效了。正确做法是分级对待。

避坑指南: 我曾经犯过一个错——把分类规则写死在代码里。后来业务调整,新增了一种“欧盟用户数据”类型,需要特殊处理GDPR。结果改代码、走发布流程花了三周。建议把分类规则做成配置化,挂在网关的集中策略引擎上,改规则不用重启服务。

3.3 数据生命周期管理

数据不是死的。它有生、老、病、死。一个敏感数据从产生到销毁,每一步都要有管控。网关在其中扮演的角色,其实就是一个门禁+摄像头+档案管理员。

  1. 采集阶段:网关要判断——这个数据的采集是否合规?用户有没有授权?比如用户注册时,收集手机号可以,收集通讯录就必须弹窗授权。
  2. 传输阶段:数据在服务间流转时,网关负责加密通道(TLS)、链路审计、防止中间人窃听。
  3. 存储阶段:网关本身不做持久化,但可以强制要求后端服务对敏感字段加密,并在出流量时做脱敏。
  4. 使用阶段:谁看了数据?什么时候看的?看的是什么字段?网关要打审计日志。我见过最有效的做法是——在response里嵌入水印,一旦数据泄露,就能追溯到是哪个用户、哪个时间点流出去的。
  5. 销毁阶段:数据过期了怎么办?网关可以做自动过期拦截。比如查询3年前的日志,直接返回“数据已过期,无法访问”。

这个生命周期,不是概念性的,而是每个阶段都要落地到网关的策略配置里。

敏感数据生命周期 & 网关控制点 采集 合规性检查 传输 TLS + 链路审计 存储 加密 + 脱敏 使用 审计 + 水印 销毁 过期拦截 隐私增强网关 – 全生命周期策略引擎 💡 在网关层落地要点: • 采集:用声明式策略描述“什么数据可以进”,不满足的直接返回 403 • 传输&使用:所有出流量经过网关时,自动匹配数据分类标签,执行脱敏/加密/日志 • 销毁:配置数据保留时长,超时请求网关直接拒绝,数据访问路径完全切断

3.4 数据分类在网关中的落地策略

前面说了这么多,最终都得落到代码和配置上。下面是一份我在项目中常用的数据分类-网关策略映射表,直接照着配就行。

数据等级 网关策略 示例配置(简化)
公开 无处理,直接代理 allow: true
内部 JWT身份验证 + 角色检查 auth: jwt; role: employee
敏感 动态脱敏 + 字段加密 + 全链路审计 mask: id_card; encrypt: mobile; audit: all
绝密 拒绝外部请求 + 服务间mTLS + 一次性密钥 block_external: true; mtls: true

这里有个细节——数据分类不是一成不变的。比如“用户手机号”,平时是敏感数据,但在风控场景下,需要明文做黑名单匹配。怎么办?

我的做法: 在网关里引入一个上下文标签。同一个字段,根据请求的来源(比如来源服务、URL路径、请求头里的X-Use-Case),动态切换处理策略。风控流量走专用通道,不经过通用脱敏规则。这样既保证了隐私,又没影响业务。

3.5 别忘了合规

最后聊点实际的。GDPR要求“数据最小化”,PCI-DSS要求“不可存储完整卡号”,《个人信息保护法》要求“告知同意”。这些合规要求,最终都会变成网关策略里的一个个规则。

我建议在实体框架设计阶段就把合规要求编码化。比如在API的Schema定义里,加上x-privacy-level: high这样的注解,网关自动解析,生成对应的策略。这样业务开发不用管隐私细则,合规团队也不用追着人改代码。

总结一句话: 数据隐私管理,不是一次性的扫描,而是一个持续的过程。从识别到分类,从生命周期到网关策略,环环相扣。把这章的内容落地了,你的网关才有了真正的“隐私增强”能力,而不只是一个好看的标题。