4. 网络配置基础:VPC与子网规划、安全组规则、网络ACL策略
在蓝绿发布流水线中,网络配置是保障流量隔离与安全防护的第一道防线。错误的VPC规划或松散的访问控制策略,可能导致蓝绿环境流量串扰、攻击面扩大或发布回退失败。本章聚焦VPC与子网设计、安全组规则、网络ACL策略三个核心维度,为后续流水线集成防护验证奠定网络基础。
4.1 VPC与子网规划:蓝绿环境的网络隔离底座
VPC(Virtual Private Cloud)为蓝绿发布提供逻辑隔离的网络空间。子网划分决定了蓝绿集群、负载均衡器、数据库等组件的部署位置与路由策略。合理的规划应遵循以下原则:
- 独立VPC策略:为蓝绿环境分别创建独立的VPC,实现完全的网络隔离。适用于金融、医疗等强合规场景。
- 单VPC多子网策略:在同一个VPC内,为蓝绿环境分配不同的子网(如
10.0.1.0/24为蓝环境,10.0.2.0/24为绿环境),通过路由表和安全策略控制互通。适用于中小规模、追求资源复用率的团队。 - 子网粒度规划:每个子网至少预留
/24掩码(254个可用IP),避免后期扩容困难。将前端负载均衡子网、应用子网、数据子网分层规划。
规划要点:蓝绿环境的子网CIDR块不应重叠,且需预留至少一个备用子网用于紧急回退或灰度验证。建议使用
10.0.0.0/16 大段,按环境切分为 /24 子网。
4.2 安全组规则:实例级状态化访问控制
安全组(Security Group)作为实例级别的虚拟防火墙,支持状态化检测:允许规则自动生成反向回程流量放行。在蓝绿发布中,安全组规则需精确控制蓝绿集群之间的互访、负载均衡器到后端的流量、以及运维管理通道。
| 规则方向 | 源/目标 | 协议与端口 | 用途说明 |
|---|---|---|---|
| 入站(LB→应用) | 蓝-LB安全组 | TCP 8080 | 允许负载均衡器转发流量到蓝环境应用实例 |
| 入站(LB→应用) | 绿-LB安全组 | TCP 8080 | 允许负载均衡器转发流量到绿环境应用实例 |
| 入站(运维) | 堡垒机安全组 | TCP 22 | SSH管理通道,仅允许跳板机访问 |
| 出站(应用→数据) | 数据子网CIDR | TCP 3306 | 应用实例访问RDS数据库 |
| 出站(应用→外部) | 0.0.0.0/0 | TCP 443 | 应用实例对外HTTPS调用(需最小化) |
安全组避坑:蓝绿环境的安全组应使用安全组ID作为源/目标,而非CIDR。这样当蓝绿环境迁移或扩缩容时,安全组规则自动适配,无需手动修改IP列表。同时,拒绝所有入站流量(默认deny),仅显式放行必要端口。
4.3 网络ACL策略:子网级无状态访问控制
网络ACL(Access Control List)作用于子网边界,提供无状态的出入站规则。与安全组不同,ACL需要同时配置入站和出站规则,且规则按编号从小到大顺序匹配。在蓝绿发布场景中,ACL用于实现子网级别的粗粒度隔离,作为安全组的补充防线。
以下为蓝环境应用子网的ACL策略示例:
# 蓝环境应用子网网络ACL (10.0.1.0/24)
# 入站规则
Rule #100: 允许 LB子网 (10.0.5.0/24) → TCP 8080
Rule #110: 允许 堡垒机 (10.0.100.0/24) → TCP 22
Rule #120: 允许 蓝环境内部 (10.0.0.0/16) → 所有协议
Rule #*: 拒绝 所有流量
# 出站规则
Rule #100: 允许 → 数据子网 (10.0.3.0/24) TCP 3306
Rule #110: 允许 → 外部API (特定CIDR) TCP 443
Rule #120: 允许 → 蓝环境内部 (10.0.0.0/16) 所有协议
Rule #*: 拒绝 所有流量
ACL与安全组协同策略:网络ACL负责子网边界的粗粒度过滤(如禁止非LB子网流量进入应用子网),安全组负责实例级别的细粒度控制(如仅允许特定应用端口)。两者结合形成“边界+实例”纵深防御体系。
4.4 蓝绿发布中的网络配置验证清单
在流水线集成蓝绿发布前,需对网络配置进行逐项验证,确保流量隔离与安全防护符合预期。以下为验证清单:
| 验证项 | 检查内容 | 预期结果 |
|---|---|---|
| VPC隔离性 | 蓝绿VPC之间是否存在对等连接或路由泄露 | 无直接路由,流量完全隔离 |
| 子网CIDR唯一性 | 蓝绿子网CIDR是否重叠 | CIDR无重叠,预留备用段 |
| 安全组最小权限 | 是否仅放行LB→应用、堡垒机→应用等必要端口 | 无0.0.0.0/0入站放行(除LB健康检查外) |
| ACL规则顺序 | ACL规则编号是否合理,拒绝规则是否在末尾 | 显式允许在前,隐式拒绝在后 |
| 状态化回程 | 安全组是否依赖状态化自动放行回程流量 | 无需手动配置出站回程规则 |
| 蓝绿切换连通性 | 切换后LB能否正常转发到新环境应用实例 | 健康检查通过,流量正常分发 |
自动化验证建议:将上述验证清单集成到CI/CD流水线中,使用基础设施即代码(IaC)工具(如Terraform、AWS CloudFormation)进行网络配置的自动化校验。每次发布前执行网络预检,避免人为配置错误导致生产故障。