AWS VPC 网络架构完全指南:子网划分、安全组与路由表配置实战

一家出海 SaaS 企业在迁移上 AWS 三个月后,遭遇了严重的安全事故:由于 RDS 数据库实例被错误放置在公有子网,且安全组规则过于宽松,导致数据库端口暴露在公网,引发了一次数据泄露风险告警。

这个案例在出海企业上云初期并不罕见。很多团队急于完成迁移,对 VPC 网络架构的理解停留在”能跑起来就行”的阶段,结果为后续的安全和运维埋下隐患。

VPC(Virtual Private Cloud)是 AWS 上所有资源的网络基础。本文从核心概念到实战配置,帮你把这个基础打牢。


什么是 AWS VPC?

VPC 是你在 AWS 云中专属的虚拟网络环境。你可以完全控制这个网络的 IP 地址范围、子网划分、路由规则和网络安全策略,就像在自己的数据中心里管理网络一样,但无需购买任何物理硬件。

每个 AWS 账户在每个 Region 会自动创建一个默认 VPC,方便快速启动资源。但对于生产环境,强烈建议创建自定义 VPC,以获得更精细的控制权。

VPC 的核心组成

组件 作用
CIDR 块 定义 VPC 的 IP 地址范围(如 10.0.0.0/16)
子网(Subnet) 将 VPC 划分为更小的网段,分布在不同可用区
路由表(Route Table) 控制子网内流量的转发规则
互联网网关(IGW) 允许公有子网与互联网通信
NAT 网关 允许私有子网访问互联网,但阻止外部主动访问
安全组(Security Group) 实例级别的虚拟防火墙,控制入站/出站流量
网络 ACL(NACL) 子网级别的防火墙,提供额外的访问控制层

子网规划:公有子网 vs 私有子网

合理的子网划分是 VPC 架构设计的第一步,也是最关键的一步。

公有子网(Public Subnet)

公有子网是指路由表中包含指向互联网网关(IGW)路由的子网。放置在公有子网中的资源可以拥有公网 IP,直接与互联网通信。

适合放入公有子网的资源:

  • 应用负载均衡器(ALB/ELB)
  • NAT 网关
  • 堡垒机(Bastion Host)
  • 需要直接面向互联网的 Web 服务器(特殊场景)

私有子网(Private Subnet)

私有子网的路由表不包含直接通向 IGW 的路由,资源无法从互联网直接访问。私有子网中的资源若需访问互联网(如下载软件包、调用外部 API),需通过 NAT 网关中转。

适合放入私有子网的资源:

  • 应用服务器(EC2 实例)
  • 数据库(RDS、Aurora、ElastiCache)
  • 内部 API 服务
  • 批处理任务

标准三层架构示意

互联网
    ↓
[公有子网] — 负载均衡器(ALB)
    ↓
[私有子网] — 应用服务器(EC2)
    ↓
[私有子网] — 数据库(RDS)

这种分层架构确保数据库和应用服务器永远不直接暴露在公网,大幅降低攻击面。

多可用区(Multi-AZ)规划

生产环境必须在至少两个可用区(Availability Zone)部署子网。AWS 的可用区是独立的物理数据中心,跨 AZ 部署可以在单个 AZ 故障时保证服务连续性。

推荐的子网规划(以 ap-northeast-1 东京 Region 为例):

子网名称 CIDR 可用区 类型
public-subnet-1a 10.0.1.0/24 ap-northeast-1a 公有
public-subnet-1c 10.0.2.0/24 ap-northeast-1c 公有
private-app-1a 10.0.11.0/24 ap-northeast-1a 私有
private-app-1c 10.0.12.0/24 ap-northeast-1c 私有
private-db-1a 10.0.21.0/24 ap-northeast-1a 私有
private-db-1c 10.0.22.0/24 ap-northeast-1c 私有

路由表配置

每个子网必须关联一张路由表。路由表决定了该子网内的流量如何转发。

公有子网路由表

公有子网路由表需要包含两条核心路由:

第一条是本地路由,目标为 VPC 的 CIDR 块(如 10.0.0.0/16),目标为 local,这条路由由 AWS 自动添加,允许 VPC 内部资源互相通信。

第二条是互联网路由,目标为 0.0.0.0/0(所有流量),目标指向互联网网关(igw-xxxxxxxx),这条路由使公有子网中的资源可以访问和被访问互联网。

私有子网路由表

私有子网路由表同样有本地路由(自动创建),但不包含直接的 IGW 路由。如果私有子网中的资源需要访问互联网,则需添加一条 0.0.0.0/0 指向 NAT 网关的路由。

重要提示:NAT 网关本身必须部署在公有子网中,并拥有弹性 IP(EIP)。每个可用区应部署独立的 NAT 网关,避免单点故障。


安全组配置最佳实践

安全组是 AWS 中最常用的网络安全控制手段,它工作在实例级别,属于有状态防火墙(允许的入站流量,回程流量自动放行)。

最小权限原则

安全组配置的核心原则是:只开放必要的端口,只允许必要的来源。

反例(危险配置):

类型 协议 端口 来源
入站 TCP 22 (SSH) 0.0.0.0/0
入站 TCP 3306 (MySQL) 0.0.0.0/0
入站 All Traffic All 0.0.0.0/0

上述配置将 SSH 和数据库端口暴露给全球所有 IP,极度危险。

正例(推荐配置):

应用服务器安全组:

类型 协议 端口 来源
入站 TCP 80/443 ALB 安全组 ID
入站 TCP 22 堡垒机安全组 ID
出站 All All 0.0.0.0/0

数据库安全组:

类型 协议 端口 来源
入站 TCP 3306 应用服务器安全组 ID
出站 All All 0.0.0.0/0

通过安全组 ID 相互引用,而不是使用 IP 地址,可以确保即使 EC2 实例 IP 发生变化,安全规则依然有效。

安全组 vs 网络 ACL

特性 安全组 网络 ACL
作用范围 实例级别 子网级别
状态类型 有状态 无状态
规则类型 仅允许规则 允许 + 拒绝规则
规则顺序 无序(取并集) 有序(按编号匹配)
适用场景 日常访问控制 额外安全层/紧急封锁

对于大多数场景,安全组已足够。网络 ACL 主要用于需要明确拒绝特定 IP 段(如封锁已知恶意 IP)或增加额外合规审计层的场景。


VPC 对等连接与 Transit Gateway

当企业业务规模扩大,需要在多个 VPC 之间打通网络时(例如开发、测试、生产环境分属不同 VPC),有两种主要方案:

VPC 对等连接(VPC Peering)

两个 VPC 之间建立一对一的私有网络连接,流量不经过互联网,延迟低、成本低。

适合场景:VPC 数量较少(3个以内),需要简单的点对点连接。

限制:VPC Peering 不支持传递性路由,即 A-B 对等、B-C 对等,并不意味着 A 能访问 C。

Transit Gateway

Transit Gateway 是 AWS 提供的网络枢纽服务,可以将多个 VPC 和本地网络连接到同一个中心节点,实现全互联或受控互联。

适合场景:VPC 数量较多(4个及以上)、有混合云(本地数据中心+云)需求、需要集中管理路由策略的企业。


常见 VPC 配置错误与避坑指南

根据我们服务出海企业上云的经验,以下是最常见的 VPC 配置错误:

错误一:数据库放在公有子网

很多初学者为了方便连接,把 RDS 放在公有子网并开放公网访问。正确做法是将 RDS 始终放在私有子网,通过堡垒机或 AWS Systems Manager Session Manager 进行运维访问。

错误二:生产环境使用默认 VPC

默认 VPC 的安全组和路由配置过于宽松,且所有子网都是公有子网。生产环境必须使用自定义 VPC。

错误三:NAT 网关只部署一个

如果只在一个可用区部署 NAT 网关,当该 AZ 出现故障时,所有私有子网的出站流量都会中断。高可用架构要求每个使用的可用区都有独立的 NAT 网关。

错误四:忽略 VPC 流日志

VPC 流日志(VPC Flow Logs)记录所有进出 VPC 的网络流量信息,是安全审计和故障排查的重要工具。建议从搭建 VPC 时就开启流日志,输出到 CloudWatch Logs 或 S3。


总结:VPC 架构设计核心原则

一个健壮的 AWS VPC 架构应遵循以下原则:

  • 纵深防御:公有子网 + 私有应用子网 + 私有数据库子网,三层隔离
  • 最小权限:安全组只开放必要端口,来源精确到安全组 ID
  • 高可用:跨至少两个可用区部署,每个 AZ 独立 NAT 网关
  • 可观测:开启 VPC 流日志,接入 CloudWatch 监控告警
  • 自定义优先:生产环境禁止使用默认 VPC

VPC 是 AWS 架构的基石,前期规划好,后期省心省力。如果你正在规划企业的 AWS 上云架构,或者现有 VPC 配置存在安全隐患,欢迎与我们联系,进行免费的云架构评估。

→ 申请免费 AWS 架构评估:aws-oncloudai.com/contact


本文由 aws-oncloudai.com 云架构团队撰写。我们专注为中国出海企业提供 AWS 云服务咨询、架构设计与成本优化服务。

更多探索

Tell me what you need