searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

私网建设指南:如何规划VPC、子网、路由表与安全组,构建一个安全隔离的企业级云上私网?

2026-05-14 14:17:17
1
0

一、VPC规划:私网的"地基",错了就全错了

VPC(虚拟私有云)是你在云上的专属网络空间,相当于你自己的"内城"。VPC规划的第一步,不是画子网,而是想清楚你要几座城、城和城之间怎么隔开

1.1 单VPC还是多VPC?

方案 适用场景 优缺点
单VPC + 多子网隔离 中小型企业,业务线不超过3条 管理简单,但隔离性依赖安全组,出了问题影响面大
多VPC互通 大型企业,多业务线/多环境/多部门 隔离性强,但需要配置对等连接,复杂度高
混合方案(推荐) 大多数企业 核心业务用独立VPC,非核心业务共用VPC,通过云企业网互通

我的建议是:生产环境必须独立VPC,测试环境和开发环境可以共用一个VPC但用子网隔开。

某金融科技公司的做法是:核心交易系统一个VPC,风控系统一个VPC,办公系统一个VPC,三个VPC通过云企业网互通,但默认不通,需要显式授权才能通信。等保测评一次通过,零扣分。

1.2 CIDR块怎么选?

VPC创建时需要指定一个CIDR块(私有地址段),比如10.0.0.0/16。这个选错了,后面全是坑。

CIDR块 可用IP数 适用规模 风险
10.0.0.0/16 65534 中大型企业 最常用,与大多数内网不冲突
172.16.0.0/12 1048574 超大型企业 够大但容易与Docker默认网段冲突
192.168.0.0/16 65534 小型企业 容易与家庭路由、办公网冲突,慎用

铁律:永远不要用192.168.x.x作为VPC CIDR,除非你确定不会和任何本地网络互通。 一旦地址冲突,排查起来能让你怀疑人生。


二、子网划分:把"内城"分成"功能区"

VPC是城,子网就是城里的"区"。生产区、测试区、数据区、管理区——每个区有自己的地址范围和访问规则。

2.1 子网划分的黄金法则

原则 说明
一个业务一个子网 不要把Web服务器和数据库塞在同一个子网里
按环境隔离 生产、预发、测试、开发,至少分4个子网
按功能隔离 前端区、后端区、数据区、运维区,各占一个子网
预留扩展空间 每个子网至少预留30%的IP余量,别把CIDR用满

2.2 实战划分方案(以中型企业为例)

子网名称 CIDR 用途 可用IP数
prod-web 10.0.1.0/24 生产环境Web服务器 251
prod-app 10.0.2.0/24 生产环境应用服务器 251
prod-db 10.0.3.0/24 生产环境数据库 251
test-web 10.0.10.0/24 测试环境Web服务器 251
test-app 10.0.11.0/24 测试环境应用服务器 251
mgmt 10.0.100.0/24 运维管理区(堡垒机、监控) 251

关键:生产子网和测试子网的CIDR不能相邻。 很多人图省事把测试网放在10.0.10.0/24,生产放在10.0.1.0/24——中间差了好几个段,路由表写起来麻烦不说,万一配错规则,测试网直接能访问生产库。

2.3 可用区(AZ)与子网的关系

每个子网必须绑定一个可用区(AZ)。高可用架构要求:同一业务的子网必须跨至少两个AZ。

比如:prod-web子网绑定AZ-A,同时在AZ-B再建一个prod-web-2子网,负载均衡把流量分到两个AZ——一个AZ挂了,另一个自动接管。


三、路由表:私网的"交通规则"

子网建好了,默认情况下,同一个VPC内的所有子网是互通的。这意味着你的测试环境可以直接访问生产数据库——这是灾难的开始。

路由表就是用来控制"谁能跟谁说话"的。

3.1 默认路由表 vs 自定义路由表

类型 作用 适用场景
默认路由表 VPC创建时自动生成,所有子网默认关联 不要改默认路由表,用它管"出公网"的流量
自定义路由表 手动创建,按需关联子网 用它管"内网隔离"——哪个子网能访问哪个子网

3.2 三张表打天下

路由表名称 关联子网 规则
rt-public 所有需要出公网的子网(如prod-web) 默认路由指向NAT网关/弹性IP
rt-prod prod-web、prod-app 允许prod-web访问prod-app的3306端口,拒绝其他一切
rt-isolate test-web、test-app 只允许test-web访问test-app,禁止访问任何prod开头的子网

核心思路:生产环境的路由表只允许必要的通信,其他全部拒绝。测试环境的路由表完全隔离生产。

某电商平台就是靠这套路由表策略,在一次内网渗透测试中,攻击者从测试环境拿到了一台主机的权限,但因为路由表隔离,无法访问生产数据库——攻击链在第一步就被掐断了。

3.3 路由表的优先级

当一个子网关联了多张路由表时,系统按自定义路由表优先于默认路由表的原则匹配。所以:

  • 需要出公网的子网:关联rt-public + 默认路由表
  • 需要严格隔离的子网:只关联rt-isolate,不关联默认路由表

四、安全组:主机级别的"门禁系统"

如果说路由表是"区与区之间的关卡",那安全组就是"每台主机的门禁"。路由表管的是"能不能到这个区",安全组管的是"能不能进这台机器"。

4.1 安全组的核心原则

原则 说明 反面教材
最小权限 只开放业务必需的端口 一台Web服务器开放了22、3389、80、443、3306、6379……
白名单机制 只允许特定IP/安全组访问 0.0.0.0/0开放22端口,等于把门敞开
分层设计 Web层、应用层、数据层各有自己的安全组 所有主机用同一个安全组
默认拒绝 入站规则默认拒绝所有,只添加允许的 默认允许所有,再手动加拒绝——容易漏

4.2 四层安全组架构(生产环境推荐)

层级 安全组名称 入站规则 出站规则
Web层 sg-prod-web 允许负载均衡的安全组访问80/443 允许访问应用层的8080端口
应用层 sg-prod-app 只允许Web层访问8080端口 允许访问数据层的3306端口
数据层 sg-prod-db 只允许应用层访问3306端口 不允许出站(或只允许到备份服务的端口)
运维层 sg-mgmt 只允许堡垒机IP访问22端口 允许访问所有内网(用于运维)

关键:数据层的安全组,入站规则只允许应用层的安全组访问,不允许任何其他来源。 即使攻击者拿到了Web层的权限,也碰不到数据库。

4.3 安全组 vs 网络ACL:别搞混了

维度 安全组 网络ACL
作用范围 主机级别 子网级别
规则类型 允许(白名单) 允许 + 拒绝(黑白名单)
状态 有状态(回包自动放行) 无状态(回包需单独配置)
优先级 先判断 后判断

最佳实践:安全组做精细控制(白名单),网络ACL做粗粒度兜底(黑名单)。 比如安全组允许Web访问App,ACL拒绝测试网访问生产网——双保险。


五、实战 checklist:上线前逐条对照

检查项 状态
VPC CIDR与本地网络不冲突
生产环境独立VPC
每个业务至少一个独立子网
生产/测试子网CIDR不相邻
跨AZ部署高可用架构
自定义路由表隔离生产与测试
数据库安全组只允许应用层访问
没有0.0.0.0/0开放22/3389
运维只能通过堡垒机访问
网络ACL配置了黑名单兜底
弹性IP不用时已解绑
僵尸子网已清理

六、写在最后:私网规划不是一次性的,是持续性的

很多团队上线前认真规划了一周,上线后就再也没管过。三个月后,测试环境和子网合并了,安全组规则越加越多,路由表变成了一团乱麻——等到出事的时候,没人说得清内网到底长什么样。

私网规划是活的,它必须跟着业务一起成长。

每新增一条业务线,先画子网图;每开一个端口,先过安全组评审;每改一条路由,先想清楚影响面。

你写的代码跑在云上,云上的网络就是你的"地基"。地基打不好,楼盖得再高也是危楼。

私网不是运维的事,是每个开发工程师都该懂的事。因为你的代码,就跑在这张网上。

现在就打开控制台,对照上面的checklist,逐条检查你的私网。如果有一项没打勾——那就是你下一个事故的隐患。

0条评论
0 / 1000
思念如故
1810文章数
3粉丝数
思念如故
1810 文章 | 3 粉丝
原创

私网建设指南:如何规划VPC、子网、路由表与安全组,构建一个安全隔离的企业级云上私网?

2026-05-14 14:17:17
1
0

一、VPC规划:私网的"地基",错了就全错了

VPC(虚拟私有云)是你在云上的专属网络空间,相当于你自己的"内城"。VPC规划的第一步,不是画子网,而是想清楚你要几座城、城和城之间怎么隔开

1.1 单VPC还是多VPC?

方案 适用场景 优缺点
单VPC + 多子网隔离 中小型企业,业务线不超过3条 管理简单,但隔离性依赖安全组,出了问题影响面大
多VPC互通 大型企业,多业务线/多环境/多部门 隔离性强,但需要配置对等连接,复杂度高
混合方案(推荐) 大多数企业 核心业务用独立VPC,非核心业务共用VPC,通过云企业网互通

我的建议是:生产环境必须独立VPC,测试环境和开发环境可以共用一个VPC但用子网隔开。

某金融科技公司的做法是:核心交易系统一个VPC,风控系统一个VPC,办公系统一个VPC,三个VPC通过云企业网互通,但默认不通,需要显式授权才能通信。等保测评一次通过,零扣分。

1.2 CIDR块怎么选?

VPC创建时需要指定一个CIDR块(私有地址段),比如10.0.0.0/16。这个选错了,后面全是坑。

CIDR块 可用IP数 适用规模 风险
10.0.0.0/16 65534 中大型企业 最常用,与大多数内网不冲突
172.16.0.0/12 1048574 超大型企业 够大但容易与Docker默认网段冲突
192.168.0.0/16 65534 小型企业 容易与家庭路由、办公网冲突,慎用

铁律:永远不要用192.168.x.x作为VPC CIDR,除非你确定不会和任何本地网络互通。 一旦地址冲突,排查起来能让你怀疑人生。


二、子网划分:把"内城"分成"功能区"

VPC是城,子网就是城里的"区"。生产区、测试区、数据区、管理区——每个区有自己的地址范围和访问规则。

2.1 子网划分的黄金法则

原则 说明
一个业务一个子网 不要把Web服务器和数据库塞在同一个子网里
按环境隔离 生产、预发、测试、开发,至少分4个子网
按功能隔离 前端区、后端区、数据区、运维区,各占一个子网
预留扩展空间 每个子网至少预留30%的IP余量,别把CIDR用满

2.2 实战划分方案(以中型企业为例)

子网名称 CIDR 用途 可用IP数
prod-web 10.0.1.0/24 生产环境Web服务器 251
prod-app 10.0.2.0/24 生产环境应用服务器 251
prod-db 10.0.3.0/24 生产环境数据库 251
test-web 10.0.10.0/24 测试环境Web服务器 251
test-app 10.0.11.0/24 测试环境应用服务器 251
mgmt 10.0.100.0/24 运维管理区(堡垒机、监控) 251

关键:生产子网和测试子网的CIDR不能相邻。 很多人图省事把测试网放在10.0.10.0/24,生产放在10.0.1.0/24——中间差了好几个段,路由表写起来麻烦不说,万一配错规则,测试网直接能访问生产库。

2.3 可用区(AZ)与子网的关系

每个子网必须绑定一个可用区(AZ)。高可用架构要求:同一业务的子网必须跨至少两个AZ。

比如:prod-web子网绑定AZ-A,同时在AZ-B再建一个prod-web-2子网,负载均衡把流量分到两个AZ——一个AZ挂了,另一个自动接管。


三、路由表:私网的"交通规则"

子网建好了,默认情况下,同一个VPC内的所有子网是互通的。这意味着你的测试环境可以直接访问生产数据库——这是灾难的开始。

路由表就是用来控制"谁能跟谁说话"的。

3.1 默认路由表 vs 自定义路由表

类型 作用 适用场景
默认路由表 VPC创建时自动生成,所有子网默认关联 不要改默认路由表,用它管"出公网"的流量
自定义路由表 手动创建,按需关联子网 用它管"内网隔离"——哪个子网能访问哪个子网

3.2 三张表打天下

路由表名称 关联子网 规则
rt-public 所有需要出公网的子网(如prod-web) 默认路由指向NAT网关/弹性IP
rt-prod prod-web、prod-app 允许prod-web访问prod-app的3306端口,拒绝其他一切
rt-isolate test-web、test-app 只允许test-web访问test-app,禁止访问任何prod开头的子网

核心思路:生产环境的路由表只允许必要的通信,其他全部拒绝。测试环境的路由表完全隔离生产。

某电商平台就是靠这套路由表策略,在一次内网渗透测试中,攻击者从测试环境拿到了一台主机的权限,但因为路由表隔离,无法访问生产数据库——攻击链在第一步就被掐断了。

3.3 路由表的优先级

当一个子网关联了多张路由表时,系统按自定义路由表优先于默认路由表的原则匹配。所以:

  • 需要出公网的子网:关联rt-public + 默认路由表
  • 需要严格隔离的子网:只关联rt-isolate,不关联默认路由表

四、安全组:主机级别的"门禁系统"

如果说路由表是"区与区之间的关卡",那安全组就是"每台主机的门禁"。路由表管的是"能不能到这个区",安全组管的是"能不能进这台机器"。

4.1 安全组的核心原则

原则 说明 反面教材
最小权限 只开放业务必需的端口 一台Web服务器开放了22、3389、80、443、3306、6379……
白名单机制 只允许特定IP/安全组访问 0.0.0.0/0开放22端口,等于把门敞开
分层设计 Web层、应用层、数据层各有自己的安全组 所有主机用同一个安全组
默认拒绝 入站规则默认拒绝所有,只添加允许的 默认允许所有,再手动加拒绝——容易漏

4.2 四层安全组架构(生产环境推荐)

层级 安全组名称 入站规则 出站规则
Web层 sg-prod-web 允许负载均衡的安全组访问80/443 允许访问应用层的8080端口
应用层 sg-prod-app 只允许Web层访问8080端口 允许访问数据层的3306端口
数据层 sg-prod-db 只允许应用层访问3306端口 不允许出站(或只允许到备份服务的端口)
运维层 sg-mgmt 只允许堡垒机IP访问22端口 允许访问所有内网(用于运维)

关键:数据层的安全组,入站规则只允许应用层的安全组访问,不允许任何其他来源。 即使攻击者拿到了Web层的权限,也碰不到数据库。

4.3 安全组 vs 网络ACL:别搞混了

维度 安全组 网络ACL
作用范围 主机级别 子网级别
规则类型 允许(白名单) 允许 + 拒绝(黑白名单)
状态 有状态(回包自动放行) 无状态(回包需单独配置)
优先级 先判断 后判断

最佳实践:安全组做精细控制(白名单),网络ACL做粗粒度兜底(黑名单)。 比如安全组允许Web访问App,ACL拒绝测试网访问生产网——双保险。


五、实战 checklist:上线前逐条对照

检查项 状态
VPC CIDR与本地网络不冲突
生产环境独立VPC
每个业务至少一个独立子网
生产/测试子网CIDR不相邻
跨AZ部署高可用架构
自定义路由表隔离生产与测试
数据库安全组只允许应用层访问
没有0.0.0.0/0开放22/3389
运维只能通过堡垒机访问
网络ACL配置了黑名单兜底
弹性IP不用时已解绑
僵尸子网已清理

六、写在最后:私网规划不是一次性的,是持续性的

很多团队上线前认真规划了一周,上线后就再也没管过。三个月后,测试环境和子网合并了,安全组规则越加越多,路由表变成了一团乱麻——等到出事的时候,没人说得清内网到底长什么样。

私网规划是活的,它必须跟着业务一起成长。

每新增一条业务线,先画子网图;每开一个端口,先过安全组评审;每改一条路由,先想清楚影响面。

你写的代码跑在云上,云上的网络就是你的"地基"。地基打不好,楼盖得再高也是危楼。

私网不是运维的事,是每个开发工程师都该懂的事。因为你的代码,就跑在这张网上。

现在就打开控制台,对照上面的checklist,逐条检查你的私网。如果有一项没打勾——那就是你下一个事故的隐患。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0