安全组策略是实现生产与测试环境网络隔离最直接、最可控的手段,需按通信方向、服务角色和最小权限原则逐链路定义规则,默认拒绝所有跨环境流量,再按需开通极少数白名单连接。

安全组策略是实现生产与测试环境网络隔离最直接、最可控的手段之一。关键不在于“全通”或“全禁”,而在于按通信方向、服务角色和最小权限原则,逐链路定义规则。
明确环境边界与通信关系
先画出两张网:一张是生产环境(含Web、App、DB等服务),一张是测试环境(同构但独立部署)。它们之间通常不需要双向互通。常见真实需求只有两类:
- 运维人员从跳板机或办公网,单向访问测试环境做调试(SSH、HTTP);
- 测试环境偶尔需要拉取生产环境的只读数据快照(如脱敏后的数据库备份、配置中心只读接口),但绝不能反向写入。
这意味着:安全组规则应默认拒绝所有跨环境流量,再按需开通极少数白名单连接。
按角色分设安全组,避免混用
不要给一台机器同时打上“prod-web”和“test-db”标签。每类服务单独定义安全组:
-
sg-prod-web:仅开放80/443给公网或CDN,禁止任何来自测试网段的入站; -
sg-test-app:允许来自测试跳板机IP的22端口,允许访问sg-test-db的3306端口,禁止访问任何生产安全组; -
sg-prod-db:只允许sg-prod-app的3306入站,显式拒绝测试网段CIDR(如10.20.0.0/16)的所有协议。
注意:拒绝规则不是靠“没放行”来隐含,默认策略已是拒绝,重点是避免误配允许规则。
严格限制跨环境访问的源与目标
如果真有少量必要互通(如测试环境调用生产配置中心的只读API),必须满足三个条件:
- 源地址精确到跳板机或特定测试服务器的IP,不用网段;
- 目标端口限定为该服务实际使用的端口(如配置中心的8080,非全端口);
- 协议明确指定(TCP/UDP),不选“全部”。
例如:
方向:入站 源:10.20.10.5/32 端口:8080 协议:TCP 说明:测试配置同步节点访问生产Apollo配置中心
配合底层网络隔离增强可靠性
安全组是逻辑层控制,建议叠加物理或虚拟网络隔离:
- 生产与测试环境部署在不同VPC或VMware自定义网络(如前文提到的“仅主机模式”私有网络);
- 若共用同一VPC,务必使用不同子网,并在路由表中不配置跨子网路由;
- 数据库等核心组件开启白名单IP访问(如MySQL的
GRANT ... FROM 'user'@'10.10.1.5'),形成双重校验。
这样即使安全组配置出错,底层网络仍能兜底。

















