数据库集群必须与公网完全隔离,私网访问策略核心是“谁能在什么条件下、以什么方式访问”,关键在于切断公网路径、收缩入口、分层校验权限,通过物理与逻辑双层隔离从架构上杜绝公网可达性,并实施最小化源IP控制、TLS加密、跳板机管控及基础服务本地化。

数据库集群必须与公网完全隔离,私网访问策略的核心不是“能不能通”,而是“谁能在什么条件下、以什么方式访问”。关键在于切断公网路径、收缩访问入口、分层校验权限。
物理与逻辑双层隔离
不依赖防火墙单点控制,从网络架构上杜绝公网可达性:
- 数据库服务器只配置私网网卡(如 eth1),禁用或拔除公网网卡;不分配任何公网 IP 或 EIP
- 部署在专有网络(VPC/VNet)内,子网路由表中不配置指向互联网网关(IGW)或 NAT 网关的默认路由
- 若使用云平台(如阿里云、Azure),启用 VPC 流日志 + 安全组“拒绝所有入向”默认策略,仅显式放行应用服务器所在子网的特定端口(如 3306、5432)
最小化访问源与协议控制
即使在私网内,也不能默认信任所有内部流量:
- 安全组/网络 ACL 中限制源 IP 仅为应用服务所在的 CIDR 段(例如 10.10.20.0/24),禁止 0.0.0.0/0 或整个 VPC 网段
- 数据库监听地址绑定为私网 IP(如 bind-address = 10.10.30.10),而非 0.0.0.0;关闭 skip-networking
- 强制使用 TLS 加密连接(MySQL 的 require_secure_transport=ON,PostgreSQL 的 ssl = on + sslmode=require),并校验客户端证书(双向 TLS 可选)
访问路径收敛与跳转管控
避免“内网即安全”的误区,阻断横向移动可能:
- 禁止应用服务器直连数据库公网域名或公共 DNS;全部使用内网 DNS 解析(如私有 Route 53 / Azure Private DNS),且数据库域名仅返回私网 IP
- 不开放数据库管理端口(如 MySQL 3306 的 root 远程登录、PostgreSQL 的 postgres 用户密码登录);DBA 操作统一通过跳板机(Bastion Host)或会话管理工具(如阿里云 Workbench、AWS Session Manager)进行,跳板机本身无公网暴露
- 对敏感操作(如 DROP TABLE、SELECT * FROM user_info)启用数据库审计日志,并对接 SIEM 系统实时告警
配套基础服务本地化
消除私网对公网基础设施的隐式依赖:
- 私网内独立部署 DNS 服务(如 CoreDNS 或 dnsmasq),缓存并权威解析数据库服务名,不转发至公网 DNS
- 部署本地 NTP 服务器(如 chrony 集群),避免数据库因时间不同步导致证书失效或主从延迟误判
- 若使用 PKI(如自签名 CA 或私有证书体系),CA 根证书和 OCSP 响应器均部署于私网,不调用公网证书链验证服务


















