子网级网络 ACL 的定位
云上子网级网络 ACL(AWS 叫 Network ACL,其它云有对应概念)作用在子网边界,可以对整个网段统一放行或拒绝,例如全子网封禁 3389 入向。它与安全组互补:安全组作用在实例网卡且有状态,网络 ACL 作用在子网且无状态,回包必须显式放行,否则连接建不起来。
基本信息
| 加固项 | 子网级边界控制 |
|---|---|
| 适用平台 | 云 VPC(以 AWS NACL 为例) |
| 生效层级 | 子网 |
| 关键特性 | 无状态,出入向分别评估 |
| 典型用途 | 网段级兜底拒绝 |
| 风险等级 | 中 |
典型使用场景
- 兜底拒绝:安全组漏配时的第二道闸
- 高危端口全子网封禁:远程管理端口只允许跳板机网段
- 分层子网:数据库子网仅允许应用子网访问
- 应急隔离:事件处置时用子网级拒绝快速切断流量
- 临时放行:配合运维窗口在子网层开放再关闭
查看与核查
查看与核查
# 列出各子网关联的 ACL 及规则
aws ec2 describe-network-acls --query 'NetworkAcls[].{Id:NetworkAclId,Subnets:Associations[].SubnetId,Entries:Entries}'
# 单看某个 ACL 的规则:注意 RuleNumber 顺序与 Egress 标记
aws ec2 describe-network-acls --network-acl-ids acl-xxxxxxxx --query 'NetworkAcls[0].Entries[].{No:RuleNumber,Egress:Egress,Action:RuleAction,Cidr:CidrBlock,Port:PortRange}'网络 ACL 与安全组对比
| 对比项 | 安全组 | 网络 ACL |
|---|---|---|
| 作用层级 | 实例网卡 | 子网 |
| 状态 | 有状态,回包自动放行 | 无状态,回包需显式放行 |
| 规则类型 | 通常只支持允许 | 允许与拒绝都支持 |
| 匹配方式 | 整体评估 | 按规则编号从小到大匹配 |
| 典型用途 | 端口与来源精细化 | 网段级兜底 |
NACL 无状态:放行入向端口时别忘了对应的出向临时端口(1024-65535),否则连接建立不了。
规则按编号从小到大匹配,拒绝规则必须排在对应的允许规则之前才会生效。
默认 NACL 是全放行的,别以为配了安全组就够了,子网级兜底要显式配置。
落地检查点
- 给每个子网标注用途,明确哪些子网必须配兜底拒绝规则
- 拒绝规则编号排在允许规则之前,改完先在测试子网验证连通性
- 单独核查无状态特性带来的回包放行是否完整
- 开启 VPC 流日志,让被拒绝的连接有据可查