AWS

セキュリティグループ vs NACL(ネットワークACL)を初心者向けに解説

はじめに

ディーネットの牛尾です。
AWSを使い始めたときに混乱しやすいのが「セキュリティグループ」と「ネットワークACL(NACL)」の違いです。本記事では、これらの違いを初心者でも理解しやすいように整理します。


そもそもこの2つは何をするもの?

どちらも VPC内のトラフィックを制御するファイアウォール的な機能 です。

  • セキュリティグループ(SG):インスタンス単位でのアクセス制御
  • NACL(Network ACL):サブネット単位でのアクセス制御

セキュリティグループとは

  • 対象:EC2などのインスタンスに直接適用
  • 状態を保持(ステートフル):インバウンド許可したらアウトバウンドは自動許可
  • ルールの方向:許可ルールのみ(拒否はできない)

設定例

全ポートを特定IPからのみ許可
ポート80(HTTP)を全世界から許可
ポート443(HTTP)を全世界から許可

NACL(ネットワークACL)とは

  • 対象:サブネット単位に適用
  • 状態を保持しない(ステートレス):双方向にルールを明示する必要あり
  • ルールの方向:許可・拒否両方のルールを設定可能
  • 番号順で評価される(番号が小さいルールが優先)

設定例


ルール#100:ポート80 許可
ルール#101:ポート443 許可
ルール#*:全トラフィック 拒否

このように設定すれば、WEBサーバとして最低限の公開設定を実現できます。


🔍 違いを表でまとめる

比較項目 セキュリティグループ NACL(ネットワークACL)
適用範囲 インスタンス サブネット
ステートフルか ステートフル ステートレス
許可と拒否の設定 許可のみ 許可と拒否が可能
評価順 すべてのルールを評価 番号順に評価(最初に一致したもの)
用途の違い インスタンスへの直接制御 サブネット全体の制御

どっちを使えばいいの?

  • 通常はセキュリティグループがメインで十分です。
  • NACLは細かい制御やセキュリティ強化が必要なケースで使います。
    • 例:特定のIPを完全にブロックしたいときなど

✅ まとめ

  • セキュリティグループ:インスタンスごとのファイアウォール(許可のみ・ステートフル)
  • NACL:サブネットごとのファイアウォール(許可/拒否両方・ステートレス)

まずはセキュリティグループから慣れるのがオススメです!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA