专业书籍精读 · Fundamentals of Data Engineering · 第 10 章
Fundamentals of Data Engineering · Ch 10 · Security and Privacy · Reis & Housley · 2022
你在网上买东西,留下手机号、住址、买过什么。这些信息最后都流进公司的数据仓库,被分析师、算法反复使用。这一章讲的是:管这些数据的人,怎么保证它不被偷、不被乱看、不被弄丢。作者的态度很直接:安全不是安全部门一家的事,数据工程师每天写的每一行配置都在决定数据安不安全。
很多数据泄露,根本不是黑客多高明。有人把仓库的钥匙随手写在代码里、代码又传到了网上;有人把存数据的「文件柜」设成了谁都能打开。最常见的漏洞不是机器,是人一时的省事。
做得好的团队把安全当成每天刷牙一样的习惯,而不是一年一次的大扫除:默认少给权限、钥匙交给专门的保险箱、软件及时更新、谁看了什么都留记录。一句诚实的代价:权限收得越紧,大家要数据时就越要多走一步申请,团队得接受这点不方便。
数据安全靠的不是一把大锁,而是每个人的习惯:先往坏处想,用不着的别收,钥匙只给够用的,自己的门自己锁。
想看「人—流程—技术」三层、安全剧场与安全习惯、最小权限与临时提权、云上共担责任、加密为什么不是银弹、四类该监控的信号,以及 Netflix、AWS、Log4Shell 的实证? → 切到精读版
你以为数据安全靠的是更强的技术——更好的加密、更贵的防火墙,其实大多数泄露来自人和流程:写进代码的凭证、人人都有的管理员权限、一个设成公开的存储桶。本章要建立三条认知:安全是数据工程的底层关注点,贯穿生命周期每一站;防线按人 → 流程 → 技术三层搭,最弱的一环通常是人;做法上要的是日常习惯而不是合规表演,核心是最小权限、少采集敏感数据、及时打补丁、留好备份。
Part III「安全、隐私与未来」的第一章。前面九章走完了生命周期(生成 → 存储 → 采集 → 转换 → 服务),第 2 章把安全列为六大底层关注点(undercurrents)之首;本章把这条横切线单独拎出来讲透,下接第 11 章「数据工程的未来」。现实里对应数仓权限设计、密钥管理、云账号治理与 GDPR 一类合规。
设想一家年 GMV 百亿级的电商:数仓里有 2 亿用户的订单、手机号和收货地址;40 个分析师和数据科学家,为了省事全都是数仓管理员;Airflow 任务和 Notebook 里明文写着数据库密码;一个装导出文件的存储桶为了方便合作方下载,设成了公开读;备份?「云厂商应该有吧」。这套系统平时运转良好,直到某天:
除了直接损失,还有法规:欧盟 GDPR 对严重违规的罚款上限是全球年营业额的 4% 或 2000 万欧元(取高者),美国加州有 CCPA,医疗数据有 HIPAA。作者的提醒是:数据工程师经手的正是这些法规要保护的数据,你不能假设「安全是别人的事」。
作者把本章按人、流程、技术三层组织。顺序本身就是观点:技术防线再厚,也挡不住一个把密码告诉陌生人的员工。
往坏处想(the power of negative thinking)。作者主张在设计每条管道时先演一遍「出事」:这份数据泄露了会怎样?谁能拿到?由此得出本章最实用的一句判据:保护敏感数据的最好办法,是一开始就不采集它。分析留存率用不到身份证号,就在采集端把它挡掉或脱敏,而不是先收进来再想办法藏。
保持多疑(always be paranoid)。有人通过邮件、电话或聊天要凭证、要导出数据,哪怕看起来来自高管,也通过另一条可信渠道核实。社会工程学(social engineering,利用人的信任而非系统漏洞骗取访问)之所以有效,正因为它绕过了所有技术防线。
安全剧场(security theater)是作者批评的反面:为合规审计准备漂亮的文档、每年签一次安全承诺书、勾完检查表就算完事,而真实做法毫无变化。安全习惯(security habit)则是把安全写进日常:代码评审里看权限、上线前查配置、定期复盘。
主动安全(active security):不照搬一份静态清单,而是持续研究「针对你们组织的威胁」——你们用什么系统、员工常在哪里被钓鱼、最近同类公司出了什么事,再据此调整。
最小权限原则(principle of least privilege):每个人和每个系统只拿完成当下工作所需的权限,用完就收回。作者特别指出两个常见反例:图省事直接给管理员角色、日常用 root 身份操作。它同样适用于数据:分析师能查订单汇总,不代表能看手机号明细;可以只开放某几列、某几行,或给出脱敏后的视图。
真要临时看敏感数据怎么办?书里给的思路是「破窗」流程(break-glass):像击碎玻璃取消防斧——提出申请、经过审批、限定时长、全程留痕,到期自动收回。
共担责任模型(shared responsibility model):云厂商负责「云本身」的安全(机房、硬件、虚拟化层),你负责「云里面」的安全(账号权限、网络规则、存储桶是否公开、数据是否加密)。作者强调,许多云上数据泄露都源于用户自己的配置错误,而不是云厂商被攻破。
永远备份(always back up your data):数据会因误删、硬件故障丢失,也会被勒索软件加密。作者的要求是定期备份,并且定期演练恢复——没恢复过的备份,不能算备份。
书里给了一份可直接照抄的最小策略,分三块。保护凭证:尽量用单点登录(SSO)和多因素认证(MFA,登录时除了密码还要手机验证码等第二样东西);用云的 IAM 角色代替长期密钥;凭证放进密钥管理服务(secret manager),绝不写进代码。保护设备:统一设备管理、能远程擦除丢失的电脑、自动锁屏。软件更新:浏览器、操作系统和依赖及时更新。
打补丁与更新。操作系统、数据库、开源依赖都会爆出漏洞,拖着不升级,就是把已知的门开着。
加密不是银弹。静态加密与传输加密如今是基线,云服务大多默认开启;但作者提醒,它只防「磁盘被拿走、链路被窃听」,挡不住拿着合法凭证登录的人——员工账号被盗时,数据会被正常地解密给攻击者看。
日志、监控与告警,作者点了四类信号:访问(谁在什么时候从哪里登录、查了什么);资源(磁盘、CPU、内存异常飙升,可能是被挖矿或在拖库);账单(云账单突然暴涨,常是入侵的第一个信号);过度权限(长期不用的权限和账号应主动回收)。
网络访问。数据库不要直接暴露在公网;用 IP 白名单、私有网络和防火墙规则把访问面收到最小;SSH 等管理端口只对特定来源开放。
底层安全与内部研究。工程师常比安全团队更早看到系统的薄弱处,作者鼓励营造一种文化:发现可疑的配置或漏洞就上报,而不是默默绕开。
隐私关心的是数据该不该被这样用。除了少采集,结合书中前几章的要求:对 PII 做脱敏或令牌化(tokenization,用无意义的替代值换掉真实值),并为「删除某个用户的数据」这类法规请求预留能力——数据散在原始层、清洗层、备份与下游副本里时,删干净远比想象难。
表 1 · 安全剧场 vs 安全习惯
| 维度 | 安全剧场 | 安全习惯 |
|---|---|---|
| 频率 | 审计前突击、一年一次 | 每次评审、每次上线 |
| 产出 | 文档、签字、勾选清单 | 收紧的权限、修掉的配置 |
| 威胁模型 | 通用模板 | 针对本组织持续更新 |
| 代价 | 看似便宜,出事时最贵 | 日常多花时间,申请流程变多 |
表 2 · 常见手段各挡什么、挡不住什么
| 手段 | 挡住 | 挡不住 | 代价 |
|---|---|---|---|
| 不采集 / 脱敏 | 敏感数据泄露的根源 | 业务确实需要明文的场景 | 部分分析做不了,需提前论证 |
| 最小权限 + 破窗 | 单个账号失守后的爆炸半径 | 高权限账号本身被盗 | 审批流程拖慢取数 |
| SSO + MFA | 密码被钓鱼、撞库 | 会话令牌被窃、内部人员 | 登录多一步 |
| 密钥管理服务 | 凭证写进代码、随仓库外泄 | 拿到运行时身份的攻击者 | 要改造管道读取方式 |
| 静态 / 传输加密 | 磁盘被盗、链路窃听 | 合法凭证登录 | 基线,云上近乎零成本 |
| 私有网络 + 白名单 | 公网扫描、暴力破解 | 已进入内网的攻击者 | 远程办公与合作方接入更麻烦 |
| 独立备份 + 恢复演练 | 误删、勒索软件 | 数据被窃取后的泄露 | 存储成本、演练时间 |
没有哪一项单独够用,组合起来才是纵深防御。粒度上也有取舍:库级授权最省事但最粗;列级、行级与动态脱敏最贴合最小权限,代价是策略数量膨胀、需要专人维护。经验做法是按数据敏感级别分层:公开、内部、机密、受监管(PII / 支付 / 医疗),越往上管得越细。
面试里「设计一个存用户行为与 PII 的数据平台」,好答案会这样落地:采集端识别并令牌化手机号与身份证号;数仓按敏感级别分区,分析师默认只拿脱敏视图,明细走限时提权;任务用 IAM 角色而非长期密钥,密码进 secret manager,CI 里扫描提交防止密钥入库;存储桶默认私有、数据库只在私网;告警盯异常登录、异常大的导出与账单突增;备份放在独立账号、每季度演练恢复。主流平台都有对应能力:Snowflake 与 BigQuery 支持列级访问控制与动态脱敏,AWS Lake Formation 提供表、列、行级授权。
大厂 / 开源实证
① 安全是数据工程的底层关注点,贯穿生命周期每一站,不是安全团队一家的事。
② 防线分人、流程、技术三层,最弱的一环通常是人:往坏处想,保持多疑,换渠道核实凭证请求。
③ 保护敏感数据最好的办法是不采集它;必须采集就尽早脱敏或令牌化。
④ 要安全习惯,不要安全剧场;主动研究针对本组织的威胁,而非照搬静态清单。
⑤ 最小权限:只给当下所需,用完收回;临时访问敏感数据走限时、审批、留痕的破窗流程。
⑥ 云上共担责任:厂商管云本身,你管配置、权限与数据——公开的存储桶是你的锅。
⑦ 凭证进密钥管理、绝不进代码;SSO + MFA;设备可远程擦除;软件及时更新。
⑧ 加密是基线不是银弹;监控访问、资源、账单与过度权限四类信号;数据库别暴露公网。
⑨ 永远备份,并定期演练恢复;隐私还要求能删干净某个用户的数据。