1. 数据发现与分类分级概述

1.1 这门课要解决什么问题?

先说说我个人的体会。几年前我在一家金融科技公司做数据安全建设,客户问了我一个问题:「你们知道我们到底存了多少张身份证吗?」当时我愣住了——别说身份证了,连数据库里有哪些敏感字段,我们都没盘清楚。后来花了两周做全量扫描,结果发现:3个测试库里有真实客户手机号,一个老旧FTP服务器上躺着几十万条明文信用卡信息。

这件事让我意识到一个残酷的现实:看不见的数据,根本谈不上保护。 云上的数据比本地更分散、更动态、更容易被遗忘。你想想看,RDS、OSS、MaxCompute、MongoDB……各种服务胡乱部署,再加上开发随手建的临时表,谁能拍胸脯说「我全都知道」?

这就是为什么我们需要数据发现和分类分级。数据发现帮你搞清楚「有什么、在哪」,分类分级帮你搞清楚「哪类数据该重点防」。没了这两步,你做的所有安全策略都是盲人摸象。

课程核心目标:让你能独立设计和实施一套云上数据资产盘点 → 敏感数据识别 → 分类打标 → 分级管控的完整链路。

1.2 核心概念,一次说清楚

很多新人一上来就被各种名词搞晕:数据目录、数据分类、数据分级、敏感数据识别、数据标签……我习惯把它们拆成三件事来解释:

概念一句话解释我的项目经验
数据发现自动或手动扫描云上存储,定位数据资产的位置、类型、规模有一次扫描到某个Redis实例里存着明文,运维兄弟一脸无辜:「我以为Redis不用做加密」
数据分类按业务属性(如客户信息、财务信息、业务日志)分门别类建议和业务部门对齐分类体系,别自己闷头编一套,否则没人认
数据分级按敏感程度/合规要求划分等级(如L1-L4)不同等级对应不同的加密、脱敏、审计策略,别搞一刀切
敏感数据识别通过规则/算法自动检测身份证、手机号、银行卡等敏感内容正则+字典+机器学习三种方式我全用过,后面章节会细讲各自的坑
我的建议: 刚开始不用追求「一上来就覆盖所有数据类型」。先选2-3个核心数据源做POC,跑通全流程再铺开。贪多嚼不烂。

1.3 学习路径:从入门到落地

这门课一共有30章,我把它设计成了四个阶段。每个阶段都有一两个动手练习,光听我讲不行,你得自己跑一遍。

  1. 基础篇(第1-5章): 搞懂概念,搭好工具环境,学会写第一条发现规则。
  2. 实战篇(第6-15章): 在阿里云/AWS/Azure上真实扫描RDS、OSS、DynamoDB等常见服务。嗯,我会带你踩一遍我踩过的坑。
  3. 进阶篇(第16-22章): 自动分类、动态脱敏、分级策略自动化、数据血缘追踪——这些是真正拉开团队差距的地方。
  4. 治理篇(第23-30章): 权限控制、变更管控、审计打点、持续合规检查。让数据安全从「一次性项目」变成「日常机制」。

我特意把30章拆成「能碎片学」的粒度。每章大概20分钟阅读+30分钟动手。别想一口气全看完,消化不了。我自己带团队时,每周只给新人安排3章,配合实际项目边做边学。

1.4 数据发现与分类分级完整框架图

下面这张图概括了整门课的骨架。我建议你把它存下来,每学完一章回来看看,自己现在处在哪个位置。

数据发现与分类分级核心框架 关系型数据库 RDS / Aurora / Cloud SQL 对象存储与文件 OSS / S3 / HDFS NoSQL与缓存 MongoDB / Redis / Bigtable 数据发现引擎 全量扫描 · 增量采集 · 元数据提取 敏感数据识别 · 自动分类 · 等级判定 正则匹配 · 字典查表 · NLP/ML模型 · 上下文规则 数据资产目录 + 分级标签 + 管控策略 加密策略 · 脱敏策略 · 审计策略 · 权限策略 合规报告(GDPR / 个人信息保护法 / 等保)
框架解读: 整体逻辑是从底层数据源向上汇聚,经过「发现→识别→分级→策略」四层,最终输出可落地执行的管控方案。每一层都有对应的工具、规则和核心难点,后续课程会逐层深入。

1.5 你需要准备什么

既然是我带你做,我不希望你只是听。动手前请准备好:

  • 一个云账号: 阿里云/AWS/Azure 任意一个,体验账号就行。我在课程里会用阿里云举例,但原则都通用。
  • Python 3.8+: 大部分扫描脚本和工具扩展我都用 Python 写。建议装好 venv 或 conda 管理环境。
  • 一个测试Bucket/库: 自己造点假数据放进去,比如造一些身份证号(用生成器)、手机号、邮箱等。别用真实生产数据做练习!
  • 记笔记的习惯: 我有个坏习惯——什么都靠脑子记,结果经常忘。后来老老实实用 Markdown 记实验笔记,踩过的坑回头一看全在笔记里。
我曾经踩过的坑: 在客户环境刚部署完扫描工具,没配好网络ACL,结果扫描引擎把一个生产库的IO打满了。还好是只读查询,不然后果严重。所以切记:所有扫描操作必须在测试环境或只读账号下进行,且加限流。

1.6 一个小练习:用手盘点一下你身边的云上数据

别急着写代码。花15分钟,打开你的云控制台,手动看一下:

  1. 你目前使用了哪些存储服务?(RDS? OSS? 表格存储?)
  2. 每个服务里大概有多少张表/多少个Bucket?
  3. 凭直觉判断哪些库/桶可能存了敏感数据?
  4. 记录下你目前完全不知道内容的资源——这些是最危险的地方。

把这个清单记下来。等你学完第5章,再回头对比你的“手动盘点”和“自动扫描”结果,你会对「数据发现的价值」有非常直观的感受。

我的习惯: 每次接手新项目,第一件事就是让团队做一次「盲盘」。经常能发现一些「幽灵数据库」——连DBA都不知道的、上一任留下的测试环境。找到它们,你就有机会在出事前清理掉。