【SAA頻出】セキュリティグループとNACLの違いを解説

セキュリティグループとNACLの違いをSAA向けに解説

セキュリティグループとネットワークACLの違いに悩むSAA学習者のイメージ
「セキュリティグループとネットワークACL、何が違うの?」
「どっちで通信を止めればいいの?」
「ステートフルとステートレスって、結局どっち?」

セキュリティグループとネットワークACLとは、VPC内の通信を許可・拒否で制御する2層のファイアウォールです。守る場所も、動き方も違います。あなたがこの2層の対比を最初に押さえると、通信制御の混乱が消えます。

 

この記事では、2層の守る範囲を対比し、最大の違いである戻り通信の挙動を具体で示し、対応表で一気に整理します。そのうえで「どちらを使うか」の判定フローと、現場でつまずくよくある失敗まで示します。AWSソリューションアーキテクト(SAA)のセキュア設計対策に効きます。

 

1. 2層のファイアウォール — 守る範囲が違う

サブネット全体を守るNACLとインスタンスを守るSGの2層構造のイメージ

まず、2つは守る場所が違います。ネットワークACL(NACL)は、サブネット(VPCを区切ったまとまり)の出入口に立つ、サブネット全体の関門です。一方セキュリティグループ(SG)は、インスタンス(正確にはENI=ネットワークインターフェース)に付く、その1台専用の関門です。

 

あなたが外から通信を送ると、それは先に外側のNACLを通り、次に内側のSGを通ります。どちらか一方でも止めれば、通信は届きません。この二段構えが、VPCの通信制御の土台です。VPCそのものの成り立ちは AWS VPCとは で前提を掴めます。

 

たとえるなら、イベント会場です。外周フェンスの入場ゲートが会場全体(サブネット)への出入りをまとめてチェックするNACL、各ブースの入口係がブース(インスタンス)ごとに来客を確認するSG。守る範囲の大小が、そのまま2つの違いになります。

 

2. 戻り通信で分かれる、ステートフルとステートレス

行きの通信の戻りが自動許可されるかどうかの違いのイメージ

あなたが2つを分けるとき、最大の手がかりになるのが戻り通信(応答)の扱いです。ここは仕様として正確に押さえてください。

 

SGはステートフルです。行きの通信を許可すれば、その戻りは自動で許可されます。戻り用のルールを別に書く必要はありません。対してNACLはステートレスで、行きと戻りをそれぞれ明示的に許可する必要があります。片方だけ開けても、応答は返りません。

 

具体で見ましょう。Webサーバーが80番ポートで通信を受けるとき、SGなら「80番の受け付けを許可」の1行で、応答も自動で戻ります。NACLでは、80番の受け付けに加えて、応答が返る戻り用のポート範囲も別に許可しないと、通信が途中で止まります。あなたが「行きは通ったのに返事が来ない」に出会ったら、この戻りの設定を真っ先に疑うと早く切り分けられます。

 

用語を1行で。エフェメラルポート=通信のたびにクライアント側へ一時的に割り当てられる、高い番号帯(おおむね1024以上)のポートです。応答はこの番号宛てに返ります。NACLはステートレスなので、行きのポートだけでなく、この戻り用のポート範囲も許可しておかないと通信が完了しません。SGならこの戻りは自動で通ります。

 

3. 対応表で一気に押さえる

あなたがここまでの違いに、ルールの書き方と評価のしかたを足すと、全体像が1枚の表に収まります。SAAで問われる要点は、ほぼこの表の中にあります。

 

観点 セキュリティグループ(SG) ネットワークACL(NACL)
適用単位 インスタンス(ENI)ごと サブネットごと
状態の扱い ステートフル(戻りは自動許可) ステートレス(戻りも明示許可)
書けるルール 許可のみ 許可と拒否の両方
評価のしかた 全ルールを見て、許可があれば通す 番号の若い順に見て、最初に合致した行で決定
主な役割 インスタンスの防御(主役) サブネット境界の補助

 

評価のしかたの違いに注目してください。SGは全ルールを見てから判断します。NACLはルール番号の若い順に読み、最初に合致した行(許可か拒否)でその場で決まります。だからNACLでは、拒否ルールをどの番号に置くかで結果が変わります。ここはSAAの引っかけどころです。

 

4. どちらを使うかの判定フロー

実際の設計で「SGとNACL、どちらに書くか」を決める道筋を、フローにしました。基本はSGを主役に組み、NACLはサブネット単位の粗い網として重ねます。

 

通信を制御したい 特定のIPを「拒否」したい? → はい:NACL いいえ:制御の単位は? インスタンス単位→ SG サブネット全体→ NACL

 

両方を通らないと通信が届かないので、SGとNACLを重ねると二重の網(多層防御)になります。一方が設定ミスで通してしまっても、もう一方が止める余地が残る、という考え方です。当社の現役エンジニアの実務感覚でも、まずSGを主役に細かく許可を設計し、NACLはサブネット境界の補助にとどめるのが扱いやすい形です。NACLをこまごまと触りすぎると、戻り通信のポート開け忘れで通信が詰まり、原因の切り分けに時間を取られます。あなたも最初は、SG中心で組み立てると迷いにくくなります。ファイアウォールという守りの考え方そのものは ファイアウォールとIDS・IPSとは で土台を押さえられます。

 

5. よくある失敗と、SAAでの問われ方

NACLのステートレス設定でつまずくよくある失敗のイメージ

最後に、現場で最も多いつまずきを1つ。NACLはステートレスなので、インバウンドを許可しても、戻り(アウトバウンドのエフェメラルポート)を開け忘れて応答が返らないという詰まりです。「行きは通っているのに、なぜか返事が来ない」の多くがこれです。SGなら戻りは自動で通るので、この失敗は起きません。

 

あなたがSAAで対峙するのは、この性質をそのまま突く出題です。狙われやすいのは次の3点です。アクセス制御の全体像は AWS IAMとは ともあわせて押さえると、通信制御と権限制御の役割分担が見えてきます。

 

  • ステートフルかステートレスか → SGはステートフル、NACLはステートレス
  • 適用単位はどちらか → SGはインスタンス(ENI)、NACLはサブネット
  • 拒否ルールを書けるのはどちらか → NACLだけ(SGは許可のみ)

 

迷ったら、この2文に立ち返ってください。SGはインスタンスの番人・ステートフル・許可だけ。NACLはサブネットの番人・ステートレス・許可も拒否も書ける。この対比を握れば、セキュア設計の選択問題で手が止まりません。

 

次のステップ

セキュア設計が試験全体でどう問われるかを俯瞰し、学習の順番を立てたいなら、AWSソリューションアーキテクト(SAA)の試験範囲と勉強法ガイド で優先順位を整理するのがおすすめです。

理解を得点に変えるなら、AWS SAA セキュア設計の問題集 で、SGとNACLを含む設問に手を動かして慣れておくのが近道です。