19 · 泽湖成长平台数据本地化方案 v1(车道 D 异步 · 备案材料)
作者:👤 Claude(执行副董事 · 车道 D 备案 + 法务)
日期:2026-08-16
读者:👥 长沙市一中大泽湖学校 校长 + 信息办 + 👤 董事长 + 法务
用途:①支撑备案材料(隐私政策 / 用户协议 / 等保 2.0)②指导开发(数据存储/加密/备份)③应急预案
关联:15-M0D2+任务书.md §1 全局约束 / 16-教联体协议模板-v1.md §4 / 17-隐私政策-v1.md / 18-用户协议-v1.md
0. 三句话说明(校长 + 董事长看这里)
- 数据放哪:全部存境内(微信云托管华南节点 + 阿里云华南 OSS),不出境;学生敏感个人信息额外加密存本地,不上传云端数据库
- 谁能看:按"最小必要"原则,默认教师只看本班、学生/家长只看自己,详见 §4 权限矩阵
- 出事怎么办:详见 §6 应急预案,24 小时内通报+ 启动备份恢复 + 配合监管
1. 数据分类与分级
1.1 三级分类
| 级别 |
类别 |
示例 |
加密要求 |
| L1 公开数据 |
学校基本信息 / 班级名 / 学生活动标题 |
不加密,公开可查 |
|
| L2 业务数据 |
学生姓名 / 学号 / 班级 / 5 维评价分数 / 教联体活动记录 |
TLS 传输 + 数据库加密(云托管默认) |
|
| L3 敏感个人信息 |
学生身份证号 / 监护人手机号 / 家庭住址 / 学生照片 |
单独加密存储(AES-256)+ 访问审计 + 严格权限 |
|
1.2 L3 敏感个人信息专项
| 字段 |
是否必存 |
处理方式 |
| 学生身份证号 |
⚠️ 避免 |
仅学籍异动时临时采集,不入数据库;用学号代 |
| 监护人手机号 |
✅ 必存 |
AES-256 加密 + 短信验证码二次校验 |
| 家庭住址 |
⚠️ 尽量不存 |
仅紧急联系人填居住街道即可,不存详细地址 |
| 学生照片 |
✅ 必存(活动) |
缩略图入云(OSS 私有 bucket),原图存学校 NAS |
1.3 法律依据
- 《个人信息保护法》(2021)第 19 条:敏感个人信息需单独同意
- 《数据安全法》(2021)第 21 条:数据分类分级保护
- 《未成年人保护法》(2020 修订)第 72/73 条:未成年人个人信息特殊保护
- 《等保 2.0》(GB/T 22239-2019):三级等保(教育行业)
2. 存储位置
2.1 存储分层
┌─────────────────────────────────────────────────────────┐
│ 微信云托管(华南节点) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ MySQL 数据库(云托管自带) │ │
│ │ ├─ L1 公开数据(明文) │ │
│ │ └─ L2 业务数据(数据库加密) │ │
│ └─────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Redis(缓存) │ │
│ │ └─ Session / Token(TTL 24h) │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 阿里云 OSS(华南私有 bucket) │
│ └─ 学生照片 / 活动照片 / 导出 PDF(私有读) │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ 学校本地 NAS(备份 + L3) │
│ ├─ 全量备份(每日凌晨 3:00) │
│ ├─ 增量备份(每 6 小时) │
│ └─ L3 敏感字段加密副本(AES-256) │
└─────────────────────────────────────────────────────────┘
2.2 出境控制
❌ 所有数据不出境
- 微信云托管华南节点(广州)
- 阿里云 OSS 华南(深圳)
- 备份 NAS 校内机房
❌ 不接入境外 SaaS
- 不接 Cloudflare Workers Paid / Vercel / OpenAI API(除非数据已脱敏)
- AI 智能诊断(M3 二期)如使用 LLM API,必须本地化推理或脱敏后调用,且数据不出境
3. 加密策略
3.1 传输加密
| 场景 |
协议 |
配置 |
| 微信小程序 ↔ API |
HTTPS |
微信云托管默认 TLS 1.3 |
| Web 后台 ↔ API |
HTTPS |
同上 |
| API ↔ MySQL |
TLS |
ssl-mode=REQUIRED |
| API ↔ OSS |
HTTPS + Signature |
OSS SDK V4 签名 |
3.2 存储加密
| 级别 |
算法 |
密钥管理 |
| 数据库字段 |
AES-256-GCM |
密钥存微信云托管 KMS(密钥不落代码) |
| L3 敏感字段 |
AES-256-GCM(双重加密) |
密钥独立保管在学校机房硬件密码机 |
| 备份文件 |
AES-256 + gzip |
密钥存学校机房 |
| OSS 对象 |
SSE-OSS(阿里云默认) |
RAM 角色控制访问 |
3.3 密钥轮换
| 密钥类型 |
轮换周期 |
流程 |
| 数据库字段密钥 |
90 天 |
KMS 自动轮换 + 双人复核 |
| L3 密钥 |
180 天 |
信息办主任 + 法务双人复核 + 纸质登记 |
| API 访问密钥 |
30 天 |
自动轮换 + 旧密钥 24h 灰度 |
4. 访问控制
4.1 权限矩阵(与 15 任务书 §2.1 一致)
| 角色 |
L1 |
L2 自己 |
L2 本班 |
L2 全部 |
L3 自己 |
L3 本班 |
L3 全部 |
| 学生 |
✅ |
✅ |
— |
— |
✅(自己) |
— |
❌ |
| 家长 |
✅ |
✅(孩子) |
— |
— |
✅(孩子) |
— |
❌ |
| 教师 |
✅ |
✅(自己) |
✅ |
— |
✅(本班学生) |
⚠️ 仅紧急 |
❌ |
| 教务 |
✅ |
— |
✅ |
✅ |
— |
⚠️ 仅紧急 |
⚠️ 仅审计 |
| 校长 |
✅ |
✅(自己) |
✅ |
✅ |
✅(全校) |
⚠️ 仅审计 |
⚠️ 仅审计 |
| 教联体 |
✅ |
⚠️ 仅参与学生 |
— |
❌ |
❌ |
❌ |
❌ |
| 管理员 |
✅ |
— |
— |
⚠️ 仅审计 |
— |
— |
⚠️ 仅审计 |
⚠️ = 需二次审批 + 审计日志
4.2 二次审批流程
L3 访问走两步:
1. 教师/教务发起申请 → 填写用途 + 预计范围
2. 校长审批 → 自动生成一次性访问 Token(24h 过期)
3. 访问日志全留痕(操作人 + 时间 + 字段 + 用途)
4.3 操作审计
所有 L2/L3 读写操作记录审计日志,保留 ≥ 180 天:
| 字段 |
内容 |
| userId |
操作人 |
| timestamp |
UTC 时间 |
| action |
READ / WRITE / EXPORT / DELETE |
| targetType |
Student / Evaluation / etc. |
| targetId |
目标对象 ID |
| fields |
涉及字段列表 |
| reason |
访问理由(教师填) |
| ip |
来源 IP |
5. 备份与恢复
5.1 备份策略(3-2-1 原则)
3 份副本
├─ 1 份生产数据(云托管主库)
├─ 1 份本地备份(学校 NAS 每日)
└─ 1 份异地备份(学校另一个校区机房)
2 种介质
├─ NAS(机械硬盘)
└─ 云备份(阿里云归档存储,华南节点)
1 份离线(每季度)
└─ 加密硬盘,校长办公室保险柜
5.2 备份窗口
| 类型 |
频率 |
时间 |
保留期 |
| 全量备份 |
每日 |
凌晨 3:00 |
30 天滚动 |
| 增量备份 |
每 6 小时 |
0/6/12/18 点 |
7 天滚动 |
| 差异备份 |
每周日 |
凌晨 4:00 |
90 天滚动 |
| 归档备份 |
每季度 |
学期末 |
永久 |
5.3 恢复演练
每学期演练 1 次(不迟于第 8 周):
1. 模拟数据库损坏
2. 从 NAS 全量 + 增量恢复
3. 核对数据完整性(5 维评价数 / 学生数 / 教联体活动数)
4. 恢复时间目标(RTO)< 4 小时
5. 数据损失目标(RPO)< 6 小时
6. 应急预案
6.1 事件分级
| 级别 |
触发 |
响应时间 |
| 🔴 重大 |
个人信息大规模泄露(>100 人)/ 数据被勒索 |
1 小时 |
| 🟠 较大 |
单条数据泄露 / 系统被入侵但数据未外泄 |
4 小时 |
| 🟡 一般 |
系统故障 / 数据损坏但可恢复 |
24 小时 |
6.2 应急流程(重大事件)
T+0 发现事件 → 立即冻结相关账号 + 切断外网
T+1h 通报校长 + 信息办主任 + 董事长 + 法务
T+2h 启动应急技术组排查 + 评估影响范围
T+4h 通报监管(教育主管部门 + 网信办)
T+24h 通知受影响用户(监护人) + 提供临时保护方案
T+72h 出具初步调查报告
T+30d 出具最终报告 + 整改方案 + 提交监管
6.3 数据泄露处置
- 立即冻结:涉事账号 + API 访问 + 数据库查询权限
- 影响评估:通过审计日志回溯泄露范围(学生数 + 字段)
- 阻断扩散:更换相关密钥 + 强制重置弱密码 + 推送二次验证
- 追溯定责:根据审计日志追责到人
- 补救措施:通知监护人 + 提供免费 1 年身份保护监控(如适用)
- 整改落地:30 天内提交整改报告并通过监管审核
6.4 灾难恢复
| 场景 |
恢复路径 |
RTO |
RPO |
| 数据库损坏 |
从最近全量备份恢复 + 增量回放 |
< 4h |
< 6h |
| 云托管不可用 |
切换到备用云(阿里云华南) |
< 8h |
< 6h |
| 学校 NAS 损坏 |
从异地备份恢复 + 新 NAS 重建 |
< 24h |
< 24h |
| 全站灾难(地震等) |
异地灾备中心接管 + 应急手工 |
< 72h |
< 48h |
7. 合规对账
7.1 与法规对应
| 法规 |
对应条款 |
| 《个人信息保护法》§19 敏感信息 |
§1.2 L3 字段清单 + 单独同意 |
| 《个人信息保护法》§24 自动化决策 |
5 维评价归集规则(07-5维评价详细设计.md §6) |
| 《数据安全法》§21 分类分级 |
§1 三级分类 |
| 《未成年人保护法》§72/73 |
§1.2 L3 最小化 + §4 二次审批 |
| 《等保 2.0》三级 |
§3 加密 + §4 权限 + §5 备份 + §6 应急 |
7.2 与泽湖文档对应
8. 备案与送审
8.1 备案时间线
| 时间 |
事项 |
| M0 W1(08-15~21) |
隐私政策 v1 + 数据本地化方案 v1(本文)+ 用户协议 v1 启动 |
| M0 W2(08-22~28) |
内部法务审 + 信息办主任签字 |
| M3 W8(10-03~09) |
备案材料汇总提交 |
| 上线后 1~3 月 |
等待审批 / 补充材料 |
8.2 备案材料清单
□ 隐私政策 v1([17-隐私政策-v1.md](17-隐私政策-v1.md))
□ 用户协议 v1([18-用户协议-v1.md](18-用户协议-v1.md))
□ 数据本地化方案 v1(本文)
□ 学校主体资质(办学许可证 + 法人证书)
□ 第三方安全评估报告(如需,等保 2.0 三级)
□ 法务意见书
□ 应急预案演练记录(首年)
9. 待办与待补
- [ ] 等保 2.0 三级测评(首年需 ¥30k~80k,上线后启动)
- [ ] 法务咨询协议签订(独立律所)
- [ ] 应急演练脚本(每学期)
- [ ] 异地灾备中心选址(如需)
变更日志
| 日期 |
版本 |
变更 |
作者 |
| 2026-08-16 |
v1.0 |
初稿(基于 04 计划书 §7 + PRD §6 + 16 协议模板 §4) |
👤 Claude |