达梦 DM9 K8s 密评合规部署|等保三级 + 密评双标准安全加固(金融级实测通过)

摘要

金融信创商用密码应用安全性评估(密评)+ 等级保护三级双合规,是达梦数据库落地的硬门槛。容器化部署后更是踩坑重灾区:密钥明文写 YAML、传输裸奔、审计日志重启就丢、权限一锅粥、加密用 AES 不算国密,很多团队整改两三次都过不了测评。

本文基于金融项目双测评实测通过的落地方案,严格对标 GB/T 22239-2019 等保三级 + GM/T 0054-2018 密评三级 双标准,从 K8s 平台层、达梦数据库层、密钥全生命周期管理三层深度加固,覆盖国密身份认证、SM4 透明存储加密、国密 SSL 传输加密、SM3 审计防篡改、三权分立权限收敛全链路。所有 SQL、YAML 配置均可直接复制,照着做一次性通过双测评。

政务选金仓,金融选达梦;MySQL 迁移选金仓,Oracle 迁移选达梦。全文无空泛理论,所有配置均经过测评机构现场验证,生产合规可用。


一、先搞懂:容器化达梦双合规到底查什么

📌 核心结论:容器化不是法外之地,等保 + 密评双标准下,数据库作为核心数据载体,要求只会比物理机更严。身份鉴别、访问控制、安全审计、传输加密、存储加密、密钥管理六项是一票否决项。

1.1 容器化场景的额外合规风险

相比物理机部署,K8s 场景多了三类高频扣分点:

  1. 密钥易泄露:K8s 原生 Secret 仅 Base64 编码,等于明文存储密钥,密评直接不通过
  2. 审计易断档:Pod 重建后审计日志丢失,追溯不连续,不符合不可篡改、可追溯要求
  3. 权限易失控:默认 root 运行、默认 ServiceAccount 权限过大、网络无边界,不符合最小权限原则

1.2 双测评六大必查核心项

类别 等保三级要求 密评三级要求
身份鉴别 口令复杂度、登录失败锁定、三权分立 基于国密算法的身份认证,支持双因素
访问控制 最小权限、角色分离、网络访问控制 密码技术保障访问控制有效性
安全审计 全操作审计、留存 180 天、不可篡改 审计日志完整性保护,国密签名防篡改
传输安全 传输加密、防止窃听篡改 国密算法传输加密,SM2/SM4 体系
存储安全 敏感数据加密、备份保护 国密算法存储加密,密钥与数据分离
密钥管理 - 全生命周期管控,硬件存储,定期轮换

二、双测评控制点全景映射表(对照查分用)

控制点 K8s 平台层落地措施 达梦 DM9 数据库层落地措施 测评权重
身份鉴别 RBAC 最小权限、ServiceAccount 身份绑定、禁止匿名访问 SM2 国密身份认证、三权分立账号、口令复杂度策略、登录失败锁定 ⭐⭐⭐⭐⭐
访问控制 NetworkPolicy 网络微隔离、SecurityContext 权限收敛、Secret 加密管理 角色权限分离、列级访问控制、IP 白名单、高危操作限制 ⭐⭐⭐⭐⭐
安全审计 K8s 审计日志开启、集中留存 180 天 全操作审计、SM3 签名防篡改、独立 PVC 持久化、留存 180 天 + ⭐⭐⭐⭐⭐
传输机密性 国密网关加密、Service 加密访问 国密 SSL 通信、SM4 应用层消息加密、全链路密文传输 ⭐⭐⭐⭐⭐
存储机密性 存储卷加密、Secret 加密存储、镜像加密 SM4 透明数据加密 (TDE)、敏感列级加密、备份数据加密 ⭐⭐⭐⭐⭐
数据完整性 配置文件签名、镜像签名校验 审计日志 SM3 摘要、重要数据完整性校验、备份签名校验 ⭐⭐⭐⭐
密钥管理 对接国密 KMS、密钥不落地明文 密钥与数据分离、外部 KMS 统一管理、支持密钥轮换 ⭐⭐⭐⭐⭐
备份恢复 PVC 快照、数据保护机制 全量 + 增量备份、备份加密、定期恢复演练 ⭐⭐⭐⭐

💡 双测评高分技巧:以上控制点全部落地,补充管理制度、应急预案、定期密码安全评估,基本可以稳过三级。其中密钥管理、审计防篡改、三权分立是最容易丢分的项,必须做扎实。


三、第一层:K8s 平台层密评加固(底座合规)

平台层是双合规的底座,这层做不好,数据库层再加固也没用。

3.1 身份与权限:最小权限原则

  1. 专用 ServiceAccount:禁止使用默认 ServiceAccount,单独创建数据库专用账号,关闭自动挂载 Token,防止容器内越权访问 API Server。

yaml

复制代码
apiVersion: v1
kind: ServiceAccount
metadata:
  name: dmdb-sa
  namespace: dmdb
automountServiceAccountToken: false
  1. RBAC 权限收敛:仅授予运维必要的最小权限,禁止集群管理员账号直接操作业务数据库。

3.2 网络层:微隔离 + 传输加密

  1. NetworkPolicy 强制访问控制:默认拒绝所有入站,仅白名单放通业务网段,防止横向渗透。

yaml

复制代码
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: dmdb-miping-policy
  namespace: dmdb
spec:
  podSelector:
    matchLabels:
      app: dmdb
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          project: business-app
    ports:
    - protocol: TCP
      port: 5236
  egress:
  - to:
    - namespaceSelector: {}
      podSelector:
        matchLabels:
          k8s-app: kube-dns
    ports:
    - protocol: UDP
      port: 53
  1. 跨节点传输加密:应用到数据库强制国密加密连接,跨节点流量通过国密加密网关封装,禁止明文跨节点传输。

3.3 密钥存储:告别明文 Secret

K8s 原生 Secret 只是 Base64 编码,不属于加密存储,密评不认可。必须二选一:

  • 推荐方案:对接国密密钥管理系统(KMS)/ 密码机,数据库密钥统一由 KMS 管理,容器运行时动态拉取,密钥不落地
  • 轻量方案:使用 SealedSecret 等加密工具,Secret 落盘为密文,仅集群内解密使用

⚠️ 双测评红线:绝对不能把数据库加密密钥、管理员密码明文写在 YAML、ConfigMap 里,Base64 编码不算加密。

3.4 运行时安全:收敛系统权限

达梦容器必须以 dmdba 非 root 用户运行,丢弃所有多余系统能力:

yaml

复制代码
securityContext:
  runAsUser: 5236
  runAsGroup: 5236
  fsGroup: 5236
  runAsNonRoot: true
  readOnlyRootFilesystem: true
  allowPrivilegeEscalation: false
  capabilities:
    drop:
    - ALL
    add:
    - IPC_LOCK
  seccompProfile:
    type: RuntimeDefault

3.5 镜像与部署合规

  • 镜像必须经过漏洞扫描,高危漏洞清零
  • 生产镜像必须经过签名验证,只允许运行可信镜像
  • 所有配置变更走审批流程,操作全留痕可审计

四、第二层:达梦 DM9 数据库层国密全链路加固

达梦 DM9 企业版原生支持完整国密算法体系(SM2/SM3/SM4),内置三权分立、透明加密、审计签名等能力,完全满足密评三级要求。

4.1 身份鉴别:国密认证 + 三权分立

1. 三权分立账号体系(双测评必查)

达梦原生支持三权分立,三个管理员账号相互独立、相互制约,权限完全隔离。

角色 默认账号 核心职责 权限边界
系统管理员 SYSDBA 实例运维、对象创建、性能调优 无权管理用户权限、无权查看审计日志
安全管理员 SYSSSO 用户管理、权限分配、安全策略、加密配置 无权访问业务数据、无权修改系统配置
审计管理员 SYSAUDITOR 审计策略配置、审计日志管理、违规分析 无权修改业务数据、无权调整系统参数
2. 口令安全策略(SYSSSO 配置)

sql

复制代码
-- 口令复杂度:大小写+数字+特殊字符
SP_SET_PARA_VALUE(1, 'PWD_POLICY', 7);
-- 最小长度12位
SP_SET_PARA_VALUE(1, 'PWD_MIN_LEN', 12);
-- 口令有效期90天
SP_SET_PARA_VALUE(1, 'PWD_MAX_AGE', 90);
-- 连续5次登录失败锁定
SP_SET_PARA_VALUE(1, 'FAILED_LOGIN_ATTEMPS', 5);
-- 锁定时间30分钟
SP_SET_PARA_VALUE(1, 'PASSWORD_LOCK_TIME', 30);
3. 国密 SM2 身份认证

支持基于 SM2 证书的双向身份认证,替代传统口令,满足强身份鉴别要求:

ini

复制代码
# dm.ini 配置
ENABLE_ENCRYPT = 1
COMM_ENCRYPT_NAME = 'SM4'
SSL_CERT_FILE = 'server_sm2.crt'
SSL_KEY_FILE = 'server_sm2.key'
SSL_CA_FILE = 'root_sm2.crt'

客户端使用 SM2 客户端证书连接,实现双向国密身份认证。

4.2 传输加密:全链路国密加密

达梦支持两种国密传输加密方式,推荐应用层消息加密,配置简单、性能损耗小。

方案一:应用层消息加密(推荐,零改造)

sql

复制代码
-- 服务端开启SM4国密通信加密,客户端自动适配
SP_SET_PARA_VALUE(2, 'COMM_ENCRYPT_NAME', 'SM4');

✅ 优势:应用层数据包 SM4 加密,无需 SSL 证书,业务代码零改造,性能损耗 < 3%,完全满足密评传输机密性要求。

方案二:国密 SSL 传输加密

ini

复制代码
# dm.ini 配置
SSL = 1
SSL_CIPHERS = 'SM2-SM3-SM4'

适合有双向认证强需求的场景,配合国密证书使用。

4.3 存储加密:SM4 透明数据加密(TDE)

敏感数据落盘必须加密,防止物理硬盘泄露导致数据失密。达梦支持全库级、表空间级 SM4 透明加密,业务零改造。

1. 表空间级透明加密

sql

复制代码
-- 由SYSSSO创建SM4加密表空间
CREATE TABLESPACE encrypt_ts
DATAFILE 'encrypt_ts01.dbf' SIZE 10240
ENCRYPT WITH SM4;

-- 敏感业务表建在加密表空间,落盘自动SM4加密
CREATE TABLE user_info (
  id INT PRIMARY KEY,
  id_card VARCHAR(18),
  acct_no VARCHAR(32),
  name VARCHAR(50)
) TABLESPACE encrypt_ts;

✅ 优势:透明加解密,业务完全无感知,性能损耗 < 5%,支持索引加密、日志加密。

2. 列级加密补充

极高敏感字段(账号、身份证)可叠加列级加密,双重防护:

sql

复制代码
-- 敏感字段SM4加密存储
CREATE TABLE user_sensitive (
  id INT PRIMARY KEY,
  acct_enc VARBINARY(256)
);
3. 重做日志与归档加密

ini

复制代码
# dm.ini 开启重做日志加密
RLOG_ENCRYPT_NAME = 'SM4'

重做日志、归档日志同步国密加密,全链路落盘都是密文。

4.4 数据完整性:SM3 摘要校验

对重要业务数据、审计日志计算 SM3 摘要,防止篡改:

sql

复制代码
-- SM3哈希计算,用于数据完整性校验
SELECT SF_HASH(3, 敏感字段) FROM 重要表;

3 代表 SM3 算法,审计日志、备份文件必须附带 SM3 摘要,验证时比对一致即可确认完整未篡改。


五、核心硬骨头:密钥全生命周期管理方案

密钥管理是密评三级的核心扣分点,必须严格遵循密钥与数据分离、专人管控、全生命周期可审计原则。

5.1 三级密钥架构

  1. 主密钥:存储在国密密码机 / KMS 中,用于加密工作密钥,永不落地明文
  2. 工作密钥:由主密钥加密保护,用于表空间 / 列数据加密,可定期轮换
  3. 数据密钥:具体表 / 列的加密密钥,由工作密钥加密存储在数据库中

5.2 全生命周期管控要求

生命周期阶段 密评三级要求 达梦落地方式
密钥生成 真随机数生成,符合 GM/T 0005 国密 KMS / 密码机生成,禁止软件伪随机
密钥分发 加密传输,身份认证 SM2 加密分发,双人复核
密钥存储 硬件存储,不落地明文 KMS / 密码机硬件存储,数据库只存密文
密钥使用 权限控制,操作全审计 仅安全管理员可操作,全流程审计
密钥更新 定期 + 事件触发轮换 每季度自动轮换,泄露时立即更换
密钥归档 加密归档,可追溯 历史密钥加密归档,双人授权访问
密钥销毁 安全销毁,不可恢复 KMS 安全销毁,所有副本同步销毁

5.3 K8s 场景适配方案

  • 数据库启动时通过 Sidecar 从 KMS 动态拉取密钥,注入内存,不写入磁盘
  • Pod 销毁时自动清除内存密钥,不留痕迹
  • 密钥轮换由 KMS 统一调度,数据库热加载,无需重启实例

⚠️ 密评否决项:密钥明文存储在数据库本地、配置文件、镜像中,直接不通过。


六、审计合规:SM3 签名防篡改 + 持久化不丢档

审计日志是双测评必查项,要求可追溯、不可篡改、留存 180 天以上

6.1 全量审计开启(SYSAUDITOR 操作)

sql

复制代码
-- 开启全局审计
SP_SET_ENABLE_AUDIT(1);

-- 审计登录登出
SP_AUDIT_LOGIN('ALL', 'SUCCESS');
SP_AUDIT_LOGIN('ALL', 'FAIL');

-- 审计所有DDL操作
SP_AUDIT_STMT('ALL', 'ALL', 'ALL');

-- 审计敏感表的增删改操作
SP_AUDIT_OBJECT('INSERT', 'ALL', 'SYSDBA', 'USER_INFO', 'ALL');
SP_AUDIT_OBJECT('UPDATE', 'ALL', 'SYSDBA', 'USER_INFO', 'ALL');
SP_AUDIT_OBJECT('DELETE', 'ALL', 'SYSDBA', 'USER_INFO', 'ALL');

6.2 审计日志防篡改(密评加分项)

ini

复制代码
# dm.ini 审计日志配置
AUDIT_FILE_ENCRYPT = 1
AUDIT_FILE_ENCRYPT_KEY = '密钥标识由KMS管理'
AUDIT_FILE_SIGN = 1
AUDIT_FILE_SIZE = 1024
AUDIT_MAX_FILES = 180
  • 审计日志 SM4 国密加密存储
  • 每条日志附带 SM3 数字签名,篡改即可识别
  • 单文件 1G,最多保留 180 个文件,满足 180 天留存要求

6.3 K8s 场景审计连续性保障

  • 审计日志独立 PVC 挂载,Pod 重建不丢失
  • Sidecar 实时同步到集中审计平台,双份留存
  • 审计日志仅审计管理员可访问,其他账号无权限
  • 日志平台开启写保护,只追加不修改删除

七、权限深度收敛:从平台到数据库全链路最小权限

7.1 数据库端权限收敛

  1. 业务账号最小权限:仅授予必要的表权限,禁止 DBA、RESOURCE 角色跑业务
  2. 敏感列级权限:身份证、账号等敏感字段,仅授权特定账号访问
  3. 高危操作管控:DROP TABLE、TRUNCATE、ALTER SYSTEM 等高危操作,仅 SYSDBA 可执行
  4. IP 白名单限制:管理员账号仅允许从运维网段登录,禁止业务网段访问

7.2 K8s 端权限收敛

  1. 数据库 Pod 禁止挂载宿主机敏感目录
  2. 禁止特权容器、禁止权限提升
  3. 运维操作必须通过堡垒机,禁止直接 kubectl exec
  4. 所有配置变更走 GitOps 流程,留痕可审计

八、避坑红线:10 个双测评常见致命错误

⚠️ 红线 1:用 Base64 编码的 Secret 存密钥,当加密用

  • 后果:密评直接不通过,Base64 是编码不是加密,等于明文存储
  • 整改:对接国密 KMS,密钥硬件存储,不落地明文

⚠️ 红线 2:用 AES、RSA 等非国密算法凑数

  • 后果:密评要求使用国密算法,非国密不算有效密码应用
  • 整改:全部替换为 SM2/SM3/SM4 国密算法体系

⚠️ 红线 3:三权分立形同虚设,SYSDBA 一个账号走天下

  • 后果:权限分离项直接丢分,不符合等保、密评身份鉴别要求
  • 整改:三个管理员账号独立设置,权限严格隔离,各管各的

⚠️ 红线 4:审计日志存在容器里,重启就丢

  • 后果:审计追溯断档,等保、密评都不通过
  • 整改:审计日志独立 PVC 持久化,集中留存 180 天以上

⚠️ 红线 5:只做存储加密,不做传输加密

  • 后果:传输过程明文裸奔,不符合传输机密性要求
  • 整改:全链路国密加密,传输、存储双加密

⚠️ 红线 6:密钥自己生成存在数据库里

  • 后果:密钥管理不符合要求,数据与密钥同存等于没加密
  • 整改:密钥与数据分离,独立 KMS / 密码机统一管理

⚠️ 红线 7:审计日志可修改、可删除

  • 后果:不符合审计数据完整性、不可篡改要求
  • 整改:开启加密 + 数字签名,只追加不修改删除

⚠️ 红线 8:密钥从不轮换,一套用到底

  • 后果:不符合密钥生命周期管理要求
  • 整改:建立密钥轮换机制,定期轮换,泄露时立即更换

⚠️ 红线 9:root 用户运行数据库容器

  • 后果:不符合最小权限原则,等保访问控制项扣分
  • 整改:切换为 dmdba 非 root 用户运行,配置 securityContext 强制校验

⚠️ 红线 10:只做技术加固,没有管理制度

  • 后果:等保、密评不仅查技术,还要查管理,制度缺失同样不通过
  • 整改:配套密码安全管理制度、密钥管理细则、应急预案、定期评估机制

九、自测验证清单:照着查,提前知道能不能过

加固完成后,按以下清单自测,全部通过基本可以稳过双测评。

检测项 检测方法 达标标准
三权分立 验证三个管理员账号权限相互隔离 SYSDBA 看不到审计日志,SYSAUDITOR 改不了业务数据
国密传输 抓包数据库端口流量 无明文 SQL 与数据,使用国密算法加密
存储加密 查看敏感表空间加密属性 敏感表使用 SM4 透明加密,落盘为密文
密钥管理 核查密钥存储位置、生成方式 密钥存储在 KMS / 密码机,不落地明文,全生命周期可审计
审计完整性 检查审计日志签名、留存时间 日志不可篡改,留存≥180 天,覆盖所有关键操作
口令策略 测试弱口令是否可创建 无法创建弱口令,复杂度、有效期、锁定策略生效
权限最小化 核查业务账号权限 无 DBA 权限,仅业务必要权限
网络隔离 非授权网段尝试连接数据库 连接被拒绝,仅白名单可访问
非 root 运行 进入容器执行 id 命令 UID 不为 0,运行用户为 dmdba
管理制度 检查制度文档 有密码安全管理、密钥管理、应急演练等制度文件

总结

达梦 DM9 在 K8s 环境下过等保 + 密评双三级,核心不是堆加密功能,而是全链路符合国密要求、密钥管理闭环、权限最小化、审计可追溯。从 K8s 底座到达梦数据库内核,再到密钥管理体系,每一层都对标双标准做实,才能一次性顺利通过测评。

双合规不是一次性工作,而是持续运营的过程。技术加固只是基础,配套的管理制度、定期巡检、密钥轮换、应急演练同样重要。

政务选金仓,金融选达梦;MySQL 迁移选金仓,Oracle 迁移选达梦。

📚 专栏推荐:专注 SpringBoot3 + 人大金仓 + 达梦信创实战,持续输出生产级部署、性能调优、安全合规、避坑指南干货,关注不迷路。

觉得文章有用的话,欢迎点赞、收藏、关注三连,后续更新更多信创数据库云原生落地的硬核内容。

相关推荐
风曦Kisaki1 小时前
# Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)
linux·笔记·云原生·容器·kubernetes
数据知道3 小时前
SSRF 漏洞实战:内网探测、云元数据窃取一条龙
网络·安全·网络安全
yunwei374 小时前
eBPF 教程:精准隔离已建立的 TCP 连接
linux·安全·开源
潘志宏_ZHPAN4 小时前
智能体互联网:原理、架构与开发实践—项目6:智能体安全与生命周期管理
网络·安全
戴西软件5 小时前
戴西CAxWorks.VPG车辆工程仿真软件技术解析(上)——安全仿真体系的自动化构建
运维·网络·数据库·人工智能·算法·安全·自动化
ZENERGY-众壹5 小时前
电力监控系统安全防护实战:如何将生产大区逆变器数据安全穿透至 SIS 平台
安全·系统安全
砚凝霜5 小时前
软考网络工程师|第 6 章 应用层安全协议、防火墙完整备考笔记
网络·笔记·安全
gnhpc15 小时前
国产龙芯主板为智能电网网络安全升级筑牢防护屏障
安全
小马过河R6 小时前
AI Coding应用上线安全实践指南
人工智能·安全·安全架构·engineering·ai coding·harness