RackShareRackShareラックを、シェアしよう

セキュリティグループとネットワークACL|2つのファイアウォールの違い

クラウドかなこ ・ 公開 2026-07-22 ・ 更新 2026-09-04 ・ 閲覧 235

AWSには通信を制御する仕組みが2つあります。セキュリティグループ(SG)とネットワークACL(NACL)。混同しやすいので、違いを整理します。

セキュリティグループ(SG)

EC2などのインスタンス単位に付けるファイアウォールです。

  • ステートフル: 行きの通信を許可すれば、戻りは自動で許可される
  • 許可のみ: 「許可」ルールだけ書く(明示的な拒否はない)
  • デフォルトは、インバウンド全拒否・アウトバウンド全許可

例: Webサーバのインバウンドに「443を許可」と書けば、その戻り通信は自動で通ります。戻りのルールを書かなくていいのがステートフルの便利な点です。

ネットワークACL(NACL)

サブネット単位に付けるファイアウォールです。

  • ステートレス: 行きと戻りを、両方明示的に許可する必要がある
  • 許可も拒否も書ける: ルール番号の順で評価
  • デフォルトは全許可

サブネット全体に一律のルールをかけたい時や、特定IPを明示的に拒否したい時に使います。

一番の違い:ステートフルか、ステートレスか

  • SG(ステートフル): 行きを許可すれば戻りは自動。書くのが楽。
  • NACL(ステートレス): 行きも戻りも書く必要あり。戻り用のポート範囲(エフェメラルポート)の許可を忘れると通信が片方向で詰まる。

「NACLで通信できない」の定番原因が、この戻り通信の許可漏れです。

適用の順番

通信は、サブネットの入口でNACL → インスタンスでSG、の順にチェックされます。両方で許可されて初めて通ります。片方で弾かれると通信できません。

どう使い分けるか

  • 基本はSGで制御: インスタンス単位で細かく、ステートフルで楽。
  • NACLは補助的に: サブネット全体の粗い制御や、特定IPのブロックに。

多くの設計では、SGを主役にし、NACLはデフォルト(全許可)のまま、というケースも多いです。

まとめ

  • SG … インスタンス単位・ステートフル・許可のみ(主役)
  • NACL … サブネット単位・ステートレス・許可/拒否(補助)

「通信できない」時は、まずSGのインバウンド、次にNACLの戻り許可を疑う。この2層を理解すると、AWSのネットワークトラブルの多くが切り分けられます。

♥ 0(いいねはログイン後)

コメント 0 件

コメントするにはログインしてください。