安全概述
Pigsty 的安全能力总览与合规对照表。
Pigsty 提供多层次的安全防护,从网络边界到数据存储,全方位保护您的数据库。
安全层次
第一层:网络安全
| 组件 |
防护措施 |
| 防火墙 |
限制入站端口,仅开放必要服务 |
| HAProxy |
服务入口,隐藏后端拓扑 |
| SSL/TLS |
加密客户端与服务器之间的通信 |
第二层:认证安全
| 组件 |
防护措施 |
| HBA 规则 |
基于来源地址的访问控制 |
| 密码认证 |
SCRAM-SHA-256 加密存储 |
| 证书认证 |
可选的客户端证书验证 |
第三层:授权安全
| 组件 |
防护措施 |
| 角色系统 |
分层的权限角色 |
| 对象权限 |
精细的表/函数级权限 |
| 行级安全 |
可选的 RLS 策略 |
第四层:数据安全
| 组件 |
防护措施 |
| 数据校验 |
检测存储层数据损坏 |
| 备份加密 |
AES-256 加密备份文件 |
| 审计日志 |
记录所有重要操作 |
默认配置
用户与密码
| 用户 |
用途 |
默认密码 |
建议 |
postgres |
系统超级用户 |
无密码(仅本地) |
保持无密码 |
dbuser_dba |
管理员用户 |
DBUser.DBA |
必须修改 |
dbuser_monitor |
监控用户 |
DBUser.Monitor |
必须修改 |
replicator |
复制用户 |
DBUser.Replicator |
必须修改 |
重要:生产环境部署后,请立即修改这些默认密码!
HBA 规则
Pigsty 默认的 HBA 规则按来源地址分层:
| 来源 |
认证方式 |
说明 |
| 本地 Socket |
ident/peer |
OS 用户映射,最安全 |
| localhost |
scram-sha-256 |
密码认证 |
| 内网 (intra) |
scram-sha-256 |
密码认证 |
| 基础设施节点 |
scram-sha-256 + SSL |
管理员强制 SSL |
| 外网 (world) |
scram-sha-256 + SSL |
管理员强制 SSL |
SSL 配置
| 配置项 |
默认值 |
说明 |
| PostgreSQL SSL |
启用 |
客户端可选择使用 |
| Patroni SSL |
禁用 |
可配置启用 |
| Pgbouncer SSL |
禁用 |
可配置启用 |
| Nginx HTTPS |
启用 |
管理界面默认 HTTPS |
安全增强配置
启用密码强度检查
pg_libs: 'passwordcheck, pg_stat_statements, auto_explain'
强制 SSL 连接
pg_hba_rules:
- {user: all, db: all, addr: world, auth: ssl}
启用客户端证书认证
pg_hba_rules:
- {user: secure_user, db: all, addr: world, auth: cert}
启用 Patroni SSL
patroni_ssl_enabled: true
启用 Pgbouncer SSL
pgbouncer_sslmode: require
安全检查清单
部署前
部署后
定期维护
安全相关参数