合规清单

等保三级与 SOC2 Type II 详细合规对照。

本文档详细对照 Pigsty 的安全能力与 中国等保三级(GB/T 22239-2019)和 SOC 2 Type II 的合规要求。


等保三级对照

身份鉴别

应对登录的用户进行身份标识和鉴别,身份标识具有唯一性

要求项 默认满足 配置可达 Pigsty 实现
身份唯一性 PostgreSQL 角色系统保证用户名唯一
口令复杂度 ⚠️ 启用 passwordcheckcredcheck 扩展
口令定期更换 ⚠️ 使用 expire_in/expire_at 设置用户有效期
登录失败处理 ⚠️ 日志记录 + fail2ban 自动封禁
双因素认证 ⚠️ 密码 + 客户端 SSL 证书

访问控制

应授予管理用户所需的最小权限,实现管理用户的权限分离

要求项 默认满足 配置可达 Pigsty 实现
访问控制 HBA 规则 + RBAC + 可选 SELinux
最小权限 分层角色体系
权限分离 DBA / Monitor / 业务用户分离
默认拒绝 无匹配 HBA 规则时拒绝连接

安全审计

应启用安全审计功能,审计覆盖到每个用户

要求项 默认满足 配置可达 Pigsty 实现
审计日志 记录 DDL、慢查询、认证事件
日志保护 文件权限 0640 + VictoriaLogs 集中存储
审计范围 ⚠️ 启用 pgaudit 扩展记录所有操作

通信安全

应采用密码技术保证通信过程中数据的完整性和保密性

要求项 默认满足 配置可达 Pigsty 实现
通信加密 默认启用 SSL,可强制 SSL
数据完整性 数据校验和默认启用

数据安全

应采用密码技术保证重要数据在存储过程中的保密性

要求项 默认满足 配置可达 Pigsty 实现
存储加密 ⚠️ 备份加密 + Percona TDE 内核支持
备份恢复 pgBackRest 自动备份,PITR 恢复

网络安全

应在网络边界部署访问控制设备

要求项 默认满足 配置可达 Pigsty 实现
网络隔离 防火墙 + HBA 规则
入侵防范 ⚠️ 日志监控告警 + fail2ban

SOC 2 Type II 对照

安全性(Security)

控制点 默认满足 配置可达 Pigsty 实现
CC6.1 逻辑访问控制 HBA + RBAC
CC6.2 用户注册授权 Ansible 声明式管理
CC6.3 最小权限 分层角色体系
CC6.6 传输加密 SSL/TLS 全局启用
CC6.7 静态加密 ⚠️ 备份加密 + 可选 TDE
CC6.8 恶意软件防护 ⚠️ 最小安装 + 审计

可用性(Availability)

控制点 默认满足 配置可达 Pigsty 实现
A1.1 容量规划 监控指标 + 告警
A1.2 数据恢复 PITR 备份恢复
CC9.1 业务连续性 HA + 自动故障转移

监控(Monitoring)

控制点 默认满足 配置可达 Pigsty 实现
CC7.1 入侵检测 ⚠️ 认证失败告警
CC7.2 系统监控 VictoriaMetrics + Grafana
CC7.3 事件响应 AlertManager 告警通知

实现合规的配置

等保三级完整配置

# 密码策略
pg_libs: 'passwordcheck, pg_stat_statements, auto_explain'

# 强制 SSL
pg_default_hba_rules:
  - {user: all, db: all, addr: world, auth: ssl}

# 用户有效期
pg_users:
  - name: dbuser_app
    password: 'xxx'
    expire_in: 90  # 90天后过期

# 审计日志
pg_parameters:
  log_statement: all
  log_connections: 'on'
  log_disconnections: 'on'

# 启用 pgaudit
pg_extensions:
  - pgaudit

SOC 2 完整配置

# 同步复制(零数据丢失)
pg_conf: crit.yml
pg_rpo: 0

# 备份加密
pgbackrest_method: minio
pgbackrest_repo:
  minio:
    cipher_type: aes-256-cbc
    cipher_pass: 'YourSecurePassword!'

# Patroni SSL
patroni_ssl_enabled: true

# Pgbouncer SSL
pgbouncer_sslmode: require

合规检查脚本

可以使用以下命令检查当前配置的合规状态:

# 检查 SSL 配置
psql -c "SHOW ssl;"

# 检查密码加密方式
psql -c "SHOW password_encryption;"

# 检查 HBA 规则
psql -c "SELECT * FROM pg_hba_file_rules;"

# 检查用户过期时间
psql -c "SELECT usename, valuntil FROM pg_user WHERE valuntil IS NOT NULL;"

# 检查数据校验和
psql -c "SHOW data_checksums;"

合规文档

进行合规审计时,可能需要提供以下文档:

  1. 架构文档:系统架构图、网络拓扑图
  2. 配置清单pigsty.yml 配置文件
  3. 用户清单:用户列表、角色分配
  4. 审计日志:PostgreSQL 日志、操作日志
  5. 备份记录:备份策略、恢复测试记录
  6. 监控告警:告警规则、响应流程