后端数据库安全隔离核心是“控得准”:专设无公网能力的私有子网,叠加网络acl与安全组双层控制,全程使用私网ip通信,并跨可用区部署但不手动互通子网。

后端数据库的安全隔离,核心不是“藏起来”,而是“控得准”——私有子网是第一道逻辑屏障,但真正起作用的是它的设计逻辑和配套控制策略。
子网必须专属且无公网能力
数据库所在子网不能与应用、缓存或其他服务混用,也不能承担任何公网出入口角色:
- 单独创建专用于数据库的子网(如命名为 subnet-db-prod),不分配弹性公网IP(EIP),不绑定NAT网关,也不配置公网路由
- 该子网的路由表中,只保留默认内网路由(如指向VPC内其他子网),明确删除或禁止添加指向互联网网关(IGW)或NAT网关的路由条目
- 避免将数据库子网设为“公有子网”(即关联了Internet Gateway的子网),哪怕没绑EIP,也存在路由误配风险
访问控制双层收敛:网络ACL + 安全组
单靠一层防护容易失效,必须叠加使用:
- 网络ACL(子网级):设置无状态规则,仅允许来自应用子网CIDR段的指定端口(如10.20.10.0/24 → 3306/TCP),拒绝所有其他入向流量;出向可限制仅允许DNS(53/UDP)和必要系统更新源
- 安全组(实例级):绑定到每台数据库服务器,规则更精细——只放行应用服务器私网IP(而非整个子网段),并限定协议+端口+源端口范围;禁用宽泛规则如“0.0.0.0/0”或“全部TCP”
- 二者配合形成“先过子网门禁,再验实例门锁”的双重校验,即使安全组配置疏漏,ACL仍能兜底拦截
通信路径全程私网化,禁用公网替代方案
任何与数据库的交互,都不得绕行公网或依赖不可控中间件:
- 应用服务连接数据库,必须使用私网IP(如10.20.20.5),严禁配置公网域名或通过SLB/WAF转发
- 主从同步、心跳检测(如Keepalived)、备份任务等内部机制,全部基于私网IP实现,关闭数据库监听的公网网卡接口(如MySQL的
bind-address = 10.20.20.5) - 禁止为数据库开启公网端口映射、反向代理或SSH隧道跳转;运维需通过跳板机(部署在独立运维子网)经私网访问,跳板机本身不直连数据库
子网部署要兼顾可用区与隔离边界
物理分布影响容灾,也影响隔离有效性:
- 数据库子网应在至少两个可用区(AZ)分别部署(如杭州-A、杭州-B),每个AZ内各一个子网,由RDS高可用版或自建集群跨AZ部署,避免单点故障
- 但不同AZ的数据库子网之间,不额外打通路由——它们通过云厂商底层高可用机制(如阿里云RDS的跨AZ同步)通信,而非用户手动配置的子网互通
- 绝不把测试库、开发库、生产库放在同一VPC下的不同子网里“假装隔离”,应分属不同VPC,从网络层彻底断开











