Networking Security 頻出比較

Security Group vs NACL

Security Group と Network ACL

Security GroupNACLNetworkingSAA-C03
最終整理

ステートフルなリソースレベル制御と、ステートレスな Subnet レベル制御の違いを設計と障害調査の観点から比較します。

一言で選ぶ

日常のリソースレベル最小権限には Security Group を使います。Subnet 境界で特定 CIDR を明示的に拒否したい場合や、粗い追加制御が必要な場合は Network ACL を使います。

主な違い

項目Security GroupNetwork ACL
対象ENI / 対応リソースSubnet 境界
状態ステートフルステートレス
ルールAllow のみAllow と Deny
評価Allow ルールの和集合番号順で最初に一致
戻り通信確立済み接続は自動許可明示的な許可が必要
デフォルト新規 SG は受信なし、通常は送信許可Default NACL は全許可、Custom NACL は全拒否
主な用途ALB → App → DB の最小権限CIDR 遮断、Subnet 境界の追加防御
SG 参照対応非対応

代表的な構成

Internet → ALB SG (443) → Application SG (ALB SG のみ) → Database SG (Application SG のみ)

NACL は各 Subnet 境界で、業務通信と Ephemeral Port を許可したり、特定 CIDR を拒否したりします。

ステートフルとステートレス

  • Security Group は許可した接続の戻り通信を自動的に許可する。
  • NACL は方向ごとに独立評価するため、戻り通信の Ephemeral Port も明示的に許可する。

試験での判断

  • ALB だけが EC2 に接続 → Security Group 参照。
  • 特定 IP / CIDR を遮断 → Network ACL。
  • 戻り通信を自動許可 → Security Group。
  • ルール番号、Allow / Deny、Ephemeral Port → Network ACL。
  • Custom NACL 作成後に通信断 → 受信・送信の両方向ルールを確認。

よくある落とし穴

  • SG が正しくても、Route、NACL、アプリの待受が誤っていれば通信できない。
  • 小さい番号の NACL ルールが大きい番号を隠すことがある。
  • Default Security Group と新規 Security Group の受信初期設定は同じではない。
  • 同一 Subnet 内通信の制御を NACL だけに依存しない。

面接でのまとめ

Security Group はステートフルなリソースレベル最小権限に使い、NACL は明示的な CIDR 拒否が必要な場合のステートレスな Subnet 境界補助として使います。障害調査は Route → NACL の両方向 → SG → OS Firewall → Application Listener の順で確認します。

覚え方

SG:リソースの門番、Allow のみ、接続を記憶。NACL:Subnet の検問所、Deny 可能、記憶せず番号順。