Networking Security 高频易混淆

Security Group vs NACL

Security Group 与 Network ACL

Security GroupNACLNetworkingSAA-C03
最近整理

对比有状态的资源级安全控制与无状态的子网级访问控制,理解两者在架构设计和故障排查中的分工。

一句话选型结论

日常最小权限主要使用 Security Group;需要在子网边界显式拒绝某个 CIDR,或增加一层粗粒度控制时使用 Network ACL

核心差异

维度Security GroupNetwork ACL
作用层级ENI、实例等资源Subnet 边界
状态有状态无状态
规则类型仅 AllowAllow 与 Deny
评估方式所有允许规则合并编号从小到大,首条匹配
返回流量已允许连接自动放行必须显式允许反向流量
默认特点新建 SG 无入站,通常允许全部出站Default NACL 允许全部;Custom NACL 初始拒绝全部
典型用途ALB → App → DB 最小权限封锁恶意网段、子网边界防护
安全组引用支持不支持

典型架构

Internet → ALB SG(443) → App SG(只允许 ALB SG) → DB SG(只允许 App SG)

NACL 位于各子网边界,按需要允许业务流量与临时端口,或者拒绝特定 CIDR。

有状态 vs 无状态

  • SG 允许请求后,连接相关的返回流量会被自动允许。
  • NACL 对每个方向独立判断,因此 Web 请求的返回流量通常需要出站临时端口规则。

考试场景判断

  • 只允许 ALB 访问 EC2 → Security Group 引用。
  • 阻止特定来源 IP 或 CIDR → Network ACL。
  • 题目强调返回流量自动允许 → Security Group。
  • 题目强调规则编号、Allow / Deny、临时端口 → Network ACL。
  • Custom NACL 创建后突然断网 → 检查是否尚未添加双向允许规则。

常见陷阱

  • 有 SG 规则不代表一定能连通,路由、NACL 与应用监听也要正确。
  • NACL 的小编号规则可能遮蔽大编号规则。
  • “默认安全组”和“新建安全组”的入站默认规则不能混为一谈。
  • 同一子网内通信不经过子网边界,因此不要把 NACL 当作同子网资源间的唯一隔离方式。

面试回答

我使用 Security Group 做资源级最小权限,它有状态且只允许;NACL 用作子网边界的无状态补充,可以显式拒绝 CIDR。排错时按路由 → NACL 双向规则 → SG → 主机防火墙 → 应用监听逐层检查。

记忆口诀

SG:资源门卫、只允许、会记忆。NACL:子网检查站、可拒绝、不记忆、按编号。