公网与私网规划需分层设防:网络acl作为子网边界守门人,按顺序匹配允许/拒绝规则,控制五元组流量;安全组绑定实例,仅支持允许规则,实现最小必要访问。两者递进生效,不可互替。

公网与私网规划的核心,是把“谁可以访问”和“从哪里访问”拆开控制——安全组管实例级的精细放行,网络ACL管子网级的批量拦截,两者叠加才能形成真正的多层防护。不是简单重复配置,而是分层设防、各司其职。
明确分工:安全组负责“最小必要访问”
安全组是绑定到单台ECS、RDS或SLB等资源上的虚拟防火墙,它的规则只决定这台资源本身能否收发某类流量。
- 入方向默认全拒,必须显式添加允许规则;出方向默认全通,如需限制可手动收紧
- 适用于按角色划分访问权限,比如:只允许运维IP访问22端口,只允许应用服务器访问数据库3306端口
- 一台ECS可加入多个安全组,规则取并集生效,适合组合不同策略(如“基础防护组+DB访问组+监控探针组”)
- 不支持拒绝规则,所有规则都是“允许”,靠顺序和范围控制粒度
网络ACL承担“子网边界守门人”角色
网络ACL作用在交换机(vSwitch)层面,控制进出整个子网的流量,是比安全组更前置的一道过滤网。
- 支持“允许”和“拒绝”两种动作,且规则按顺序匹配,越靠前优先级越高
- 适合做统一拦截策略,例如:在面向公网的子网中,直接拒绝所有对TCP 445/139/3389等高危端口的入站请求
- 能识别五元组(协议、源IP、源端口、目的IP、目的端口),比安全组的三元组更细,但配置稍复杂
- 默认拒绝所有非白名单流量,需主动添加放行规则(如放行VPC内网互通、放行元数据服务169.254.169.254:80)
典型公网/私网分层部署示例
以一个Web应用系统为例:
- 公网接入层:ALB/NLB挂载EIP,所在子网关联网络ACL,入方向拒绝所有非HTTP/HTTPS端口,出方向放行至应用子网;ALB后端ECS仅加入“仅允许负载均衡健康检查”的安全组
- 应用层(私网):部署在无EIP、无互联网路由的子网中,该子网网络ACL默认阻断所有公网入向;ECS加入安全组,仅开放8080端口给ALB私网IP、22端口给跳板机IP
- 数据库层(强隔离):独立子网,网络ACL彻底关闭公网出入向;ECS安全组只允许来自应用子网特定IP段的3306访问,禁止任何ICMP、SSH等调试协议
关键协同要点
安全组和网络ACL不是互备关系,而是递进关系——流量先过网络ACL,再过安全组。一次失败即终止通行。
- 不要在安全组里放通“0.0.0.0/0”然后指望网络ACL来补救,那等于把第一道门钥匙交出去
- 网络ACL适合封禁已知风险(如勒索病毒常用端口、扫描器高频端口),安全组适合定义可信交互(如A服务调用B服务的特定端口)
- 当需要审计或合规留痕时,网络ACL的日志更易聚合分析(因作用范围大),安全组日志则更适合定位单实例异常行为









