首页/新闻资讯/正文详情

【数据治理(7)】安全与隐私:把“不能做”变成系统真正执行的边界

发布时间:2026/11/3 2:19:23 来源:云帆数科 栏目:资讯中心
【数据治理(7)】安全与隐私:把“不能做”变成系统真正执行的边界
总说数据系统中的安全问题很多时候不是因为团队“不知道风险”而是系统允许人轻易做出危险操作。开发人员知道凭证不该进入代码仓库但为了调试仍可能临时写入配置分析人员只需要可信指标却可以直接查询原始数据数据库本来只供内部使用却因为部署方便向公网开放团队每天都在备份但从未验证备份是否能够恢复。这些行为在技术上都能做到却不代表应该被允许。《数据工程之道》第10章真正传递的不是一份安全工具清单而是一种边界意识数据工程必须预先定义哪些行为不允许发生再通过人员习惯、工作流程和技术控制让这些边界持续生效。因此安全不能只写在知识文档里也不能只在上线前人工检查一次。它必须进入系统设计、开发流程、发布门禁、运行监控和恢复演练最终形成下面这条控制链识别风险 → 定义禁止边界 → 用技术限制行为 → 用证据验证控制 → 发现异常并响应对当前项目而言不需要一开始建设复杂的企业安全平台但必须建立一套能够被执行和验收的最小安全基线。一、为什么安全首先是一种行为边界1. “能够访问”不等于“应该访问”数据系统经常把“功能是否可用”作为设计起点数据库能否连接文件能否读取任务能否执行报表能否查询数据能否导出。安全关注的却是另一组问题谁可以连接数据库他能读取哪些数据可以执行哪些操作权限允许保留多久操作发生后能否追溯权限被滥用时能否及时发现。两者的区别在于功能设计回答“系统能做什么”安全设计回答“谁在什么条件下可以做什么”。如果系统只追求功能可用最简单的实现往往是所有组件共用管理员账户所有环境使用同一套凭证数据库向所有网络开放消费者可以读取所有层级的数据调试日志打印完整请求内容。这种设计短期内非常方便但任何一个凭证泄露、组件漏洞或人为误操作都可能影响整个系统。所以安全的第一性原理不是增加更多防护产品而是限制主体的能力主体是谁 → 为了什么目的 → 需要哪些数据 → 允许哪些操作 → 权限持续多久任何无法说明业务目的的权限都不应该默认存在。2. 安全必须贯穿数据生命周期第10章强调安全不是系统建成之后再补充的功能而是贯穿数据工程生命周期的底层设计。一份数据从产生到消费会经历生成 → 获取 → 存储 → 转换 → 服务每个阶段都有不同风险生成阶段可能收集了不必要的敏感字段获取阶段可能通过明文协议传输数据存储阶段可能错误地向公网开放转换阶段可能在日志中输出敏感内容服务阶段可能让消费者绕过可信数据层备份阶段可能保留了无法恢复或未加密的副本。因此安全不能只交给某个独立组件负责。它必须成为每个阶段的进入条件和验收条件。3. 隐私最有效的保护是减少数据暴露书中提出了一个非常重要的原则只有下游确实需要时才收集敏感数据。保护敏感数据最好的方法就是避免获取它们。每增加一个敏感字段系统就会增加一组持续成本需要识别和分类需要配置访问权限需要静态和传输加密需要防止日志泄露需要控制复制与导出需要明确保留期限需要响应删除要求泄露时还会形成合规和商业风险。因此数据最小化不是简单地“少采几个字段”而是形成完整约束最少采集 → 最少复制 → 最小范围访问 → 最短时间保留如果销售分析只需要客户所属地区就不应该因为“以后可能有用”而默认采集身份证号、家庭地址和完整联系方式。二、怎样把安全边界真正建立起来第10章按照“人员、流程、技术”的顺序讨论安全。这种顺序揭示了安全建设的因果关系人员理解风险 → 流程规定正确做法 → 技术把做法固化为默认行为缺少人员意识规则容易被主动绕过缺少流程正确做法只能依靠个人经验缺少技术控制规则最终仍然只是一份文档。1. 从人的判断开始但不能停留在自觉书中认为安全体系最薄弱的环节通常是操作者。人在日常工作中经常面对便利与安全之间的取舍为快速联调而共享管理员账户为方便排障而打印完整请求为临时查询而申请长期权限为避免配置麻烦而把密码写入代码对邮件中索要凭证的请求不加核实。因此团队首先需要形成基本判断习惯对凭证和敏感数据请求保持怀疑对不合理的数据收集提出异议主动设想凭证泄露、数据误删和系统被入侵的结果发现风险后主动报告和处理不把安全完全视为安全团队的职责。但人的警惕性会波动项目不能长期依靠“大家小心一点”。人员意识最终必须被转化为稳定流程。2. 用流程定义明确的禁止行为安全流程不应是一份数百页、无人阅读的制度。书中将这种只为应付审计而存在的做法称为“表演式安全”。真正有效的流程必须足够简单让团队能够在日常工作中持续执行。当前项目至少应明确以下禁止边界凭证不得进入代码、仓库、Notebook和日志人员不得共享账户组件不得默认共用超级账户普通消费者不得绕过可信发布区数据库和内部服务不得默认向公网开放未通过质量和安全检查的数据不得发布没有业务目的的敏感数据不得采集未知高危漏洞不得直接带入发布版本未验证可恢复性的备份不得视为有效备份关键访问、权限变更和发布行为不得缺少记录。这些规则的重点不是“提醒”而是形成明确的不可接受状态。3. 用技术让不安全行为默认难以发生一条安全规则如果没有对应的执行机制最终仍然依赖人的记忆。例如“禁止凭证进入仓库”需要被转化为凭证由受控系统保存 → 运行时注入 → 提交时扫描 → CI再次检查 → 发现泄露后撤销并轮换同样“消费者不能访问原始数据”也不能只靠口头约定而应当通过账户、角色、Schema和视图权限实现消费账户 → 只能读取 trusted → 读取 raw/candidate 被数据库拒绝技术控制的价值在于把正确行为变成默认路径把危险行为变成需要额外授权甚至无法执行的路径。三、当前项目的最小安全基线结合第10章的明确要求和当前项目的架构可以把安全基线归纳为四类而不是平铺成一长串检查项。1. 身份与权限限制谁能够做什么书中把最小特权作为核心原则人和系统只能获得完成任务所必需的权限和数据并且只在需要的时间内拥有这些权限。它包含四个维度必要主体 × 必要数据 × 必要操作 × 必要时间当前项目应建立以下规则人员使用独立账户禁止共享身份关键账户启用多因素认证PostgreSQL、dbt、Dagster、Metabase等不同职责使用可区分的服务身份禁止多个组件共用数据库超级账户服务账户只获得执行自身任务所需的权限消费账户默认只能读取可信发布区raw和candidate访问属于开发或诊断权限需要单独授权临时权限必须有明确期限任务结束后及时收回定期清理长期未使用和超过职责范围的权限。“不同组件使用不同服务账户”和“消费者不能访问raw/candidate”不是书中的固定架构要求而是从最小特权原则推导出来的项目实现。以数据分层为例身份允许的行为获取服务写入raw不修改trusted转换服务读取raw写入candidate发布服务校验candidate通过后写入trusted消费账户只读trusted运维人员按职责获得受限管理权限这样即使Metabase账户泄露攻击者也无法读取原始敏感字段或修改发布结果。2. 数据与凭证减少敏感信息暴露第10章明确要求不在代码中保存凭证不把密码提交到代码仓库不共享凭证删除不再使用的凭证尽可能使用密码管理器对静态和传输中的数据进行加密仅在确有需要时收集敏感数据。据此项目应当规定代码、配置样例、测试数据和Notebook中不得出现真实凭证凭证必须通过环境配置或专门的凭证管理机制注入凭证必须支持撤销和轮换日志不得记录密码、令牌、私钥和完整连接串日志中的敏感字段必须脱敏、截断或散列敏感数据在存储、传输和备份中采用加密采集敏感字段前必须说明业务用途普通开发和分析场景优先使用脱敏数据明确敏感数据的保留与删除期限。这里需要注意一个常见误区日志不能泄露敏感数据并不意味着日志越少越安全。系统仍然需要记录谁执行了操作操作发生在什么时候访问了哪个对象使用了哪个批次和版本操作是否成功。安全要求隐藏的是敏感内容而不是删除可追责的操作证据。3. 系统与网络缩小攻击面第10章明确反对对公网开放敏感对象存储向0.0.0.0/0开放SSH允许公网任意访问数据库使用未加密的传输协议长期运行存在已知漏洞的软件和依赖。当前项目应采用“默认拒绝”的原则数据库、对象存储、调度器和内部管理界面默认不向公网开放只开放有明确用途的端口、来源地址和协议跨组件通信使用加密连接禁止明文传输凭证和敏感数据定期更新操作系统、数据库和运行环境依赖和基础镜像接受自动漏洞扫描高危漏洞默认阻断发布无法立即修复的风险需要记录原因、负责人和处理期限监控异常访问、资源变化和成本突增。成本监控也属于安全证据。云资源使用突然增加不一定只是程序效率问题也可能意味着凭证被盗或资源被恶意使用。4. 恢复与审计为失守后的处置做准备安全设计不能假设所有防线都会成功。第10章要求定期备份数据并特别强调必须定期测试数据恢复。因为存在备份文件只能证明系统执行过备份成功完成恢复才能证明组织具备恢复能力。备份可能已经损坏也可能缺少密钥、依赖或恢复步骤。它甚至可能和生产数据一起被勒索软件加密。因此项目必须做到定期备份关键数据、配置和元数据备份与生产环境适当隔离对备份数据进行加密定期执行真实恢复测试验证恢复后的数据完整性和关键查询记录恢复耗时和失败原因保留关键访问、权限变更和发布行为定义凭证泄露、越权访问和数据泄露的响应流程。审计记录至少需要回答谁 → 在什么时候 → 从哪里 → 访问或修改了什么 → 使用了什么权限 → 最终结果是什么对于数据发布还需要记录发布的数据业务日期来源批次代码与配置版本质量检查结果发布发起者或批准者发布前后状态是否发生降级或回滚。这样安全审计、数据质量追溯和事件恢复才能使用同一套运行证据。四、安全基线为什么必须进入验收把规则写进验收清单是正确的因为安全要求只有进入交付标准才不会在功能开发完成后被视为可选项。但书中对“表演式安全”的批评也提醒我们验收不能只是人工勾选。下面这样的检查没有足够意义□ 已遵守最小特权 □ 已配置数据备份 □ 已保护系统凭证这些项目只证明有人声称完成了并不能证明控制真正生效。有效的验收必须同时包含规则和证据安全要求验收方式凭证不得进入仓库密钥扫描通过运行配置中不存在硬编码凭证组件身份隔离提供服务账户与权限映射最小特权使用低权限账户执行功能与越权测试消费区隔离验证消费账户读取raw/candidate时被拒绝日志不得泄露敏感信息检查日志样本并执行敏感内容扫描网络默认不开放检查入站规则、监听端口和访问来源数据最小化记录敏感字段用途、负责人和保留期限依赖安全提供漏洞扫描结果及风险例外备份能够恢复提供最近一次恢复演练及完整性检查结果操作可审计抽查访问、权限变更和发布记录数据与传输加密验证存储和连接的加密配置事件能够响应完成一次凭证泄露或越权访问演练其核心变化是从“有没有规定” 变成“能不能证明规定正在生效”安全验收的四个问题每条安全基线都应该回答四个问题禁止什么行为由什么机制阻止用什么证据证明控制失效后怎样响应例如凭证不允许进入代码仓库凭证由受控方式保存并在运行时注入提交和CI阶段执行密钥扫描一旦发现泄露立即撤销凭证、生成新凭证并检查相关访问记录。这才是一条完整的安全控制而不是一句安全口号。结语《数据工程之道》第10章的价值不在于给出了一套复杂的安全架构而在于建立了一种日常工程意识安全不是系统之外的审核活动而是对人员、流程和技术行为的持续约束。对于当前项目不需要立即建设大型IAM平台、安全运营中心或完整合规体系但至少要形成四类基础能力身份与权限控制 → 数据与凭证保护 → 系统与网络防护 → 恢复与审计在此基础上再把每项要求写入验收标准并要求提供可以复核的证据。最终安全建设不是追求“任何风险都不会发生”而是做到不必要的数据不进入系统不必要的人和组件拿不到权限不安全的操作默认难以执行危险行为发生后能够被及时发现即使某一道防线失效影响仍然受到限制数据和服务能够被恢复整个过程可以被追溯和改进。所以安全与隐私层真正回答的不是“系统有哪些安全功能”而是哪些行为即使技术上能够做到也绝不应该被允许系统又如何证明这些边界始终有效。

相关推荐

【算法四】从前序和中序遍历构造二叉树
【算法四】从前序和中序遍历构造二叉树

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:19:23

【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:19:23

理解 GC Roots:对象为什么不能被回收
理解 GC Roots:对象为什么不能被回收

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:19:23

从0开始学架构-结束语:坚持,成就你的技术梦想
从0开始学架构-结束语:坚持,成就你的技术梦想

“从0开始学架构”专栏历经4个月的时间,现在到了跟你说再见的时候了。一路走来,非常感谢你的坚持。看到专栏的内容能够帮助你理解架构设计这个看起来高大上的技术,我非常欣慰,也算完成了自己3年前的一个心愿:帮助更多同学更快更好地掌握架构设计的技术。 专栏的结束意味着… · 2026/11/3 2:48:27

语音识别别被准确率骗了,4 个维度才是选型核心
语音识别别被准确率骗了,4 个维度才是选型核心

一场两小时的跨国视频会结束,录音丢进转写工具,人名、型号错了一片,校对又花掉一晚上。很多团队把这归咎于"软件不行",其实更常见的原因是:挑语音识别工具时,只问了一句"准不准"&#… · 2026/11/3 2:48:27

8000Hz 全协议采样与 6-DoF IMU:BOTA MimX Gen A 六维力传感器为 Physical AI 提供实时触觉数据流
8000Hz 全协议采样与 6-DoF IMU:BOTA MimX Gen A 六维力传感器为 Physical AI 提供实时触觉数据流

瑞士 Bota Systems AG(BOTA)2026 年 10 月发布 MimX Gen A(5821mm、约 85g)与 PhisX Gen A(7021mm、约 140g):全协议 8000Hz 采样、内置 6-DoF IMU、低漂移低噪声,面向 Physical AI … · 2026/11/3 2:48:27

GPT 改完配置别直接覆盖:用 git diff 审查两份文件
GPT 改完配置别直接覆盖:用 git diff 审查两份文件

GPT 改完配置别直接覆盖:用 git diff 审查两份文件 拿到一份“已经优化”的配置,最容易漏掉的不是文件能否打开,而是它顺便改了什么。比如需求只要求把超时从5秒调到10秒,新文件却同时把TLS证书校验关掉。即使JSON合法&#xff0c… · 2026/11/3 2:48:27

越聊越不耐烦,AI回答了你也听不懂:你有把这些信息给到AI吗?
越聊越不耐烦,AI回答了你也听不懂:你有把这些信息给到AI吗?

用AI久了,我发现AI其实是一个稳定的巴别塔切割机。 巴别塔这个词来自圣经故事。人类最早据说只说一种语言,齐心协力要造一座塔直通天上。上帝觉得不行,就让他们突然说不同的语言,互相听不懂,造塔的事也就黄了。“巴别”… · 2026/11/3 2:48:27

仓库越大越乱?一家郑州五金批发商的“仓库翻身仗“
仓库越大越乱?一家郑州五金批发商的“仓库翻身仗“

一、凌晨一点,老板还在仓库里找一颗螺丝郑州某五金行业的老板,曾经有个外号叫"仓库里的夜猫子"。仓库两千平,货架一排接一排,五金工具、机电配件、紧固件加起来三万多个品项。客户一个电话要某个型号的轴承,… · 2026/11/3 2:47:27

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码