外观
TiDB 等级保护合规
等级保护基本概念
什么是等级保护
等级保护(全称:信息安全等级保护)是中国信息安全保障体系的重要组成部分,是对信息系统分等级实行安全保护、对安全保护工作实施监督管理的一项法定制度。
等级保护分级标准
根据《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-2019),信息系统分为五个安全保护等级:
| 等级 | 名称 | 适用场景 | 保护要求 |
|---|---|---|---|
| 第一级 | 用户自主保护级 | 一般信息系统 | 基本的安全保护 |
| 第二级 | 系统审计保护级 | 一般业务系统 | 较强的安全保护 |
| 第三级 | 安全标记保护级 | 重要业务系统 | 强安全保护 |
| 第四级 | 结构化保护级 | 特别重要业务系统 | 很强的安全保护 |
| 第五级 | 访问验证保护级 | 核心要害业务系统 | 极强的安全保护 |
等级保护合规流程
- 系统定级:根据系统重要程度和数据敏感程度确定保护等级
- 备案:向公安机关备案
- 安全建设整改:按照等级保护要求进行安全建设和整改
- 等级测评:委托第三方测评机构进行等级测评
- 监督检查:接受公安机关的监督检查
TiDB 等级保护合规架构
总体合规架构
TiDB 组件与等保要求映射
| 等保要求 | TiDB 实现方式 |
|---|---|
| 身份鉴别 | TiDB 用户名密码认证、证书认证、LDAP 集成 |
| 访问控制 | 基于角色的访问控制(RBAC)、细粒度权限管理 |
| 安全审计 | 审计日志、慢查询日志、TiDB Dashboard 审计功能 |
| 数据完整性 | Raft 共识算法、数据校验和 |
| 数据保密性 | TLS 加密、存储加密、传输加密 |
| 备份恢复 | BR 工具、增量备份、PITR 恢复 |
| 入侵防范 | 基于角色的权限控制、IP 白名单 |
| 恶意代码防范 | 操作系统级防护、容器安全 |
| 资源控制 | 连接数限制、内存限制、CPU 限制 |
等级保护技术措施
身份鉴别
用户名密码认证
TiDB 支持强密码策略,包括密码复杂度要求、密码有效期、密码历史记录等:
sql
-- 设置密码策略
SET GLOBAL validate_password_length = 12;
SET GLOBAL validate_password_mixed_case_count = 2;
SET GLOBAL validate_password_number_count = 2;
SET GLOBAL validate_password_special_char_count = 2;证书认证
TiDB 支持使用 TLS 证书进行身份认证,配置步骤:
- 生成证书和密钥
- 配置 TiDB、TiKV、PD 使用证书
- 启用客户端证书认证
配置示例:
yaml
tidb_servers:
- host: 10.0.0.1
port: 4000
status_port: 10080
config:
security:
ssl-cert: /path/to/tidb-cert.pem
ssl-key: /path/to/tidb-key.pem
ssl-ca: /path/to/ca.pem
require-secure-transport: trueLDAP 集成
TiDB 支持与 LDAP 系统集成,实现统一身份认证:
sql
-- 创建 LDAP 认证用户
CREATE USER 'ldap_user'@'%' IDENTIFIED WITH ldap AS 'uid=ldap_user,ou=users,dc=example,dc=com';访问控制
基于角色的访问控制(RBAC)
TiDB 实现了完善的 RBAC 机制,支持:
- 创建自定义角色
- 角色权限继承
- 细粒度权限控制
- 动态权限调整
示例:
sql
-- 创建角色
CREATE ROLE read_only_role;
-- 授予权限
GRANT SELECT ON *.* TO read_only_role;
-- 授予角色给用户
GRANT read_only_role TO 'user'@'%';最小权限原则
遵循最小权限原则,只授予用户完成工作所需的最小权限:
sql
-- 只授予特定表的 SELECT 权限
GRANT SELECT ON db.table TO 'user'@'%';
-- 只授予特定数据库的读写权限
GRANT SELECT, INSERT, UPDATE, DELETE ON db.* TO 'user'@'%';安全审计
审计日志配置
TiDB 支持详细的审计日志,包括用户登录、查询操作、权限变更等:
yaml
tidb_servers:
- host: 10.0.0.1
config:
audit:
enable: true
log-file: /path/to/audit.log
log-rotate: true
format: json
slow-threshold: 1000审计日志内容
审计日志包含以下关键信息:
- 事件时间
- 事件类型
- 用户名和主机
- 数据库和表
- SQL 语句
- 执行结果
- 执行时间
TiDB Dashboard 审计功能
TiDB Dashboard 提供了可视化的审计功能,可以:
- 查看审计日志
- 搜索和过滤审计事件
- 生成审计报告
- 设置审计告警
数据完整性与保密性
数据完整性
TiDB 使用多种机制确保数据完整性:
- Raft 共识算法:确保数据在多个副本之间的一致性
- 数据校验和:在存储和传输过程中验证数据完整性
- 事务机制:确保数据修改的原子性、一致性、隔离性和持久性
数据加密
TiDB 支持多层级的数据加密:
传输加密
使用 TLS 加密客户端与 TiDB 之间、TiDB 组件之间的通信:
yaml
tidb_servers:
- host: 10.0.0.1
config:
security:
ssl-cert: /path/to/tidb-cert.pem
ssl-key: /path/to/tidb-key.pem
ssl-ca: /path/to/ca.pem
tikv_servers:
- host: 10.0.0.2
config:
security:
cert-path: /path/to/tikv-cert.pem
key-path: /path/to/tikv-key.pem
ca-path: /path/to/ca.pem存储加密
TiKV 支持透明数据加密(TDE),对存储在磁盘上的数据进行加密:
yaml
tikv_servers:
- host: 10.0.0.2
config:
security:
enable-encryption: true
data-encryption-method: aes-256-ctr
data-key-rotation-period: 7d备份与恢复
定期备份策略
TiDB 提供了多种备份方式,满足等保要求:
全量备份
使用 BR 工具进行全量备份:
bash
br backup full --pd "${PD_ADDR}" --storage "s3://backup-bucket/full" --ratelimit 128增量备份
使用 BR 工具进行增量备份:
bash
br backup incremental --pd "${PD_ADDR}" --storage "s3://backup-bucket/incr" --last-backup "s3://backup-bucket/full" --ratelimit 128PITR(Point-in-Time Recovery)
支持基于时间点的恢复,精确到秒级别:
bash
br restore point --pd "${PD_ADDR}" --storage "s3://backup-bucket" --restore-ts "${RESTORE_TS}"入侵防范
IP 白名单
配置 IP 白名单,限制允许访问 TiDB 集群的 IP 地址:
yaml
tidb_servers:
- host: 10.0.0.1
config:
security:
whitelist:
ips: ["10.0.0.0/24", "192.168.1.0/24"]防火墙配置
在 TiDB 集群前端部署防火墙,限制访问端口:
# 只允许必要的端口访问
-A INPUT -p tcp -m tcp --dport 4000 -s 10.0.0.0/24 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2379 -s 10.0.0.0/24 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20160 -s 10.0.0.0/24 -j ACCEPT入侵检测系统(IDS)
部署 IDS 系统,监控 TiDB 集群的网络流量,检测异常访问:
- 配置 IDS 规则,检测 SQL 注入、暴力破解等攻击
- 实时告警异常访问行为
- 生成入侵检测报告
资源控制
连接数限制
限制单个用户和整个系统的连接数:
sql
-- 设置全局最大连接数
SET GLOBAL max_connections = 1000;
-- 设置单个用户最大连接数
CREATE USER 'user'@'%' WITH MAX_USER_CONNECTIONS 100;资源限制
限制单个查询的资源使用:
sql
-- 设置查询超时时间
SET GLOBAL tidb_query_timeout = 300;
-- 设置事务大小限制
SET GLOBAL tidb_txn_total_size_limit = 1073741824;
-- 设置内存使用限制
SET GLOBAL tidb_mem_quota_query = 1073741824;等级保护管理措施
安全管理制度
建立安全管理制度
- 制定信息安全方针和策略
- 建立安全管理制度体系
- 定期更新安全管理制度
- 确保制度的有效执行
安全管理机构
- 设立专门的安全管理机构
- 明确安全管理职责
- 配备专职安全管理人员
- 建立安全管理工作流程
人员安全管理
人员录用
- 进行背景调查
- 签订保密协议
- 明确安全责任
人员培训
- 定期进行安全意识培训
- 进行安全技能培训
- 开展等级保护专项培训
- 培训效果评估
人员离职
- 办理离职手续
- 回收访问权限
- 归还设备和资料
- 进行离职审计
系统建设管理
系统定级与备案
- 确定系统安全保护等级
- 编写定级报告
- 向公安机关备案
- 获得备案证明
安全方案设计
- 制定安全方案
- 进行安全方案评审
- 确保方案符合等级保护要求
- 方案变更管理
产品采购与使用
- 采购符合等保要求的产品
- 审核产品安全资质
- 进行产品安全测试
- 建立产品使用台账
工程实施
- 按照安全方案实施
- 进行安全测试
- 完成系统上线前评估
- 建立系统配置基线
系统测评
- 委托第三方测评机构
- 进行等级测评
- 整改测评发现的问题
- 获得测评报告
系统运维管理
环境管理
- 机房环境管理
- 设备物理安全
- 环境监控
- 电力保障
资产管理
- 建立资产台账
- 资产分类管理
- 资产变更管理
- 资产报废管理
配置管理
- 建立配置基线
- 配置变更管理
- 配置审计
- 配置备份
日志管理
- 集中日志管理
- 日志存储安全
- 日志备份与恢复
- 日志审计与分析
安全事件管理
- 建立安全事件响应流程
- 及时处置安全事件
- 进行安全事件调查
- 提交安全事件报告
应急预案管理
- 制定应急预案
- 定期进行应急演练
- 预案评估与更新
- 应急资源保障
等级保护合规实施步骤
1. 系统定级
确定系统重要程度
- 评估系统的业务重要性
- 评估系统处理数据的敏感程度
- 评估系统遭到破坏后的影响
确定安全保护等级
- 根据评估结果确定等级
- 编写《信息系统安全等级保护定级报告》
- 组织专家评审
- 获得主管部门批准
2. 系统备案
准备备案材料
- 《信息系统安全等级保护定级报告》
- 《信息系统安全等级保护备案表》
- 系统拓扑结构图
- 系统安全管理制度
向公安机关备案
- 向当地公安机关网安部门备案
- 提交备案材料
- 获得《信息系统安全等级保护备案证明》
3. 安全建设整改
差距分析
- 对照等级保护要求进行差距分析
- 识别安全隐患和不足
- 制定整改计划
安全整改
- 按照整改计划实施
- 完善技术措施
- 建立管理体系
- 进行内部测试
4. 等级测评
选择测评机构
- 选择具有资质的第三方测评机构
- 签订测评合同
- 明确测评范围和要求
测评准备
- 准备测评环境
- 提供测评所需资料
- 配合测评机构工作
进行等级测评
- 测评机构进行现场测评
- 进行技术测试和管理检查
- 生成测评报告
整改测评问题
- 针对测评发现的问题进行整改
- 提交整改报告
- 重新测评(如有必要)
5. 监督检查
接受公安机关检查
- 配合公安机关的监督检查
- 提供相关资料和证明
- 整改检查发现的问题
定期自查
- 定期进行安全自查
- 及时发现和解决问题
- 持续改进安全状况
TiDB 等级保护合规最佳实践
技术层面最佳实践
1. 实施多层次安全防护
- 网络层:防火墙、IDS/IPS、VPN
- 系统层:操作系统加固、防病毒软件
- 数据库层:TLS 加密、访问控制、审计日志
- 应用层:SQL 注入防护、XSS 防护
2. 定期安全评估
- 定期进行漏洞扫描
- 开展渗透测试
- 进行安全配置检查
- 评估安全措施有效性
3. 数据分类分级
- 对数据进行分类分级
- 不同级别数据采用不同的保护措施
- 重点保护敏感数据
- 数据访问控制精细化
4. 建立安全监控体系
- 实时监控系统状态
- 监控安全事件
- 建立告警机制
- 定期生成安全报告
管理层面最佳实践
1. 建立完善的安全管理体系
- 制定安全管理制度
- 明确安全管理职责
- 建立安全管理流程
- 确保制度有效执行
2. 加强人员安全管理
- 提高安全意识
- 加强安全培训
- 严格权限管理
- 定期进行人员审计
3. 定期进行应急演练
- 制定应急预案
- 定期演练
- 评估演练效果
- 更新应急预案
4. 持续改进安全状况
- 定期进行安全评审
- 跟踪安全技术发展
- 及时更新安全措施
- 持续提升安全水平
常见问题(FAQ)
Q1: TiDB 支持哪些等级保护等级?
A1: TiDB 可以支持从第一级到第四级的等级保护要求。通过合理的配置和部署,TiDB 集群可以满足不同等级的安全保护要求。对于第五级保护要求,需要根据具体情况进行定制化设计和实施。
Q2: TiDB 如何满足等保要求中的审计日志留存时间?
A2: TiDB 支持将审计日志导出到外部系统(如 ELK Stack、Splunk 等),可以根据等保要求配置日志留存时间。默认情况下,TiDB 的审计日志会进行轮转和压缩,建议将日志导出到专门的日志管理系统,以满足长期留存需求。
Q3: TiDB 的备份数据如何保证安全性?
A3: TiDB 的备份数据可以通过以下方式保证安全:
- 加密备份数据:使用 BR 工具的加密功能
- 访问控制:限制备份数据的访问权限
- 存储安全:将备份数据存储在安全的存储介质上
- 定期测试:定期测试备份数据的可恢复性
Q4: 如何验证 TiDB 集群的等保合规性?
A4: 可以通过以下方式验证:
- 进行内部安全评估
- 委托第三方进行等级测评
- 对照等保要求进行自查
- 接受公安机关的监督检查
Q5: TiDB 支持哪些身份认证方式?
A5: TiDB 支持多种身份认证方式:
- 用户名密码认证
- TLS 证书认证
- LDAP 集成
- OAuth 2.0 集成(通过插件)
Q6: 如何配置 TiDB 的访问控制以满足等保要求?
A6: 可以通过以下方式配置:
- 实现基于角色的访问控制(RBAC)
- 遵循最小权限原则
- 定期 review 权限配置
- 启用细粒度权限控制
- 配置 IP 白名单
Q7: TiDB 如何处理安全漏洞?
A7: TiDB 采用以下方式处理安全漏洞:
- 建立漏洞响应机制
- 及时修复发现的漏洞
- 发布安全公告
- 提供安全补丁
- 定期进行安全审计
Q8: 等保合规对 TiDB 性能有影响吗?
A8: 等保合规措施可能会对 TiDB 性能产生一定影响,但影响通常在可接受范围内:
- TLS 加密会增加网络延迟
- 审计日志会增加 IO 开销
- 访问控制会增加认证开销
可以通过合理的配置和优化,将性能影响降到最低。
Q9: 如何准备 TiDB 等保测评?
A9: 准备 TiDB 等保测评需要:
- 了解等保测评要求
- 完成系统定级和备案
- 进行安全建设和整改
- 准备测评所需资料
- 配合测评机构工作
Q10: TiDB Cloud 是否符合等保要求?
A10: TiDB Cloud 提供了符合等保要求的服务,包括:
- 物理安全保障
- 网络安全防护
- 数据加密保护
- 访问控制机制
- 审计日志功能
- 备份恢复机制
TiDB Cloud 可以根据客户需求,提供相应的安全合规证明和支持。
