Skip to content

TiDB 等级保护合规

等级保护基本概念

什么是等级保护

等级保护(全称:信息安全等级保护)是中国信息安全保障体系的重要组成部分,是对信息系统分等级实行安全保护、对安全保护工作实施监督管理的一项法定制度。

等级保护分级标准

根据《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-2019),信息系统分为五个安全保护等级:

等级名称适用场景保护要求
第一级用户自主保护级一般信息系统基本的安全保护
第二级系统审计保护级一般业务系统较强的安全保护
第三级安全标记保护级重要业务系统强安全保护
第四级结构化保护级特别重要业务系统很强的安全保护
第五级访问验证保护级核心要害业务系统极强的安全保护

等级保护合规流程

  1. 系统定级:根据系统重要程度和数据敏感程度确定保护等级
  2. 备案:向公安机关备案
  3. 安全建设整改:按照等级保护要求进行安全建设和整改
  4. 等级测评:委托第三方测评机构进行等级测评
  5. 监督检查:接受公安机关的监督检查

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 证书进行身份认证,配置步骤:

  1. 生成证书和密钥
  2. 配置 TiDB、TiKV、PD 使用证书
  3. 启用客户端证书认证

配置示例

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: true

LDAP 集成

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 128
PITR(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 可以根据客户需求,提供相应的安全合规证明和支持。