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

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

セキュリティグループとネットワークACLの違いに悩む初心者
「セキュリティグループとネットワークACL、何が違うの?」
「どっちで通信を制限すればいいの?」
「ステートフルとステートレスって何…?」

そんな疑問を抱える、AWS SAAの学習を始めたあなたへ。

結論から言えば、
セキュリティグループはサーバー単位、ネットワークACLはサブネット単位で通信を制限する仕組みです
と説明されるのが一般的です。

 

「セキュリティグループ」と「ネットワークACL(Network ACL)」は、どちらもVPCの中で通信を許可したり制限したりするための仕組みのこととされています。守る範囲と動き方がそれぞれ違います。

 

この記事では、両者の基本、ステートフルとステートレスの違い、ENI単位とサブネット単位という守る場所の違い、そして「許可だけ」と「許可と拒否の両方」という設定の違いを、SAAを学ぶあなた向けにやさしくまとめました。

 

1. 2つはどちらも通信を守る関所

2種類の関所で通信を守るイメージ

あなたが2つの言葉に出会ったとき、まず押さえたいのはどちらもVPCの中で通信をチェックする関所という共通点です。

 

VPC(AWS上に作る自分専用の仮想ネットワーク)の中では、外から来る通信や中から出る通信を、ルールでチェックできます。その関所が2種類あり、それがセキュリティグループとネットワークACLです。

 

ここでイメージしてほしいのが、オフィスビルの警備です。建物全体の入口でのチェックと、各部屋のドアでのチェックの、2段構えで守られていますよね。ネットワークACLが「建物の入口」、セキュリティグループが「部屋のドア」に近い、と整理すると分かりやすいと言われています。

 

2つの要点は、守る場所が違う2段構えの関所という点にあるとされています。両方を組み合わせて、通信をていねいに制御できます。

 

→ そもそもVPC自体の基礎を押さえたい時は、AWS VPCとは で前提を掴めます。

 

2. 守る場所の違い(ENI単位とサブネット単位)

サーバー単位とサブネット単位の守る範囲の違いのイメージ

あなたが「どこを守るのが違うの?」と思ったとしたら、その答えは関所を置く場所にあります。

 

セキュリティグループは、サーバー(EC2など)に付くネットワークの口、つまりENI単位で働きます。一方ネットワークACLは、サブネット(VPCを区切った小さなまとまり)単位で、そのサブネットを出入りする通信を守ります。

 

  • セキュリティグループ: サーバー1台ごと(ENI単位)に効く
  • ネットワークACL: サブネット全体に効く

 

サブネット単位のネットワークACLは、その中にあるサーバー全体へ一律で効きます。サーバーごとに細かく分けたいときはセキュリティグループ、という使い分けになると言われています。

 

たとえば1つのサブネットにWebサーバーとアプリサーバーが並んでいる場合、ネットワークACLのルールはその両方へ同じように効きます。一方セキュリティグループは、Webサーバー用とアプリサーバー用で別々に割り当てられ、同じものを複数台へまとめて付けることもできます。役割が同じサーバーをグループでそろえやすいのも特徴です。

 

3. 動き方の違い(ステートフルとステートレス)

ステートフルとステートレスの動き方の違いのイメージ

あなたが2つを区別するうえで一番大事なのが、ステートフルステートレスという言葉です。少し難しく聞こえますが、考え方はシンプルです。

 

セキュリティグループはステートフルです。行きの通信を許可すると、その戻りの通信は自動で許可されます。一方ネットワークACLはステートレスで、行きと戻りをそれぞれ別に設定する必要があります。

 

ここでイメージしてほしいのが、受付の対応です。来訪を覚えていて帰りはそのまま通してくれる受付がステートフル(セキュリティグループ)、行きも帰りも毎回確認する受付がステートレス(ネットワークACL)に近い、と整理すると分かりやすいと言われています。

 

ここがSAAの頻出ポイントです。セキュリティグループは戻りの通信を自動で許可、ネットワークACLは戻りも明示的に設定が必要、と覚えておくと迷いません。

 

ネットワークACLで戻りの通信を許可するとき、見落としやすいのが「どのポート番号を開けるか」という点です。通信の戻りは、一時的に割り当てられる高い番号のポート(エフェメラルポートと呼ばれる範囲)を使うことが多いとされています。そのため行きのルールだけでなく、この戻り用のポート範囲も許可しておかないと通信がうまくいかない、というつまずきが起きやすいと言われています。セキュリティグループならこの戻りは自動で通るので、初心者のうちはまずセキュリティグループ中心で考えると混乱しにくいでしょう。

 

4. 設定の違い(許可だけか、許可と拒否の両方か)

許可のみと許可と拒否の両方という設定の違いのイメージ

あなたが両者を使い分けるうえでもう1つ知っておきたいのが、設定できる内容の違いです。

 

セキュリティグループは、許可するルールだけを設定します。書いていない通信は通らない、というシンプルな考え方です。一方ネットワークACLは、許可と拒否の両方を設定できます。特定の通信だけをはっきり拒否したい、という使い方ができます。ここまでの違いを表で整理します。

 

観点 セキュリティグループ ネットワークACL
守る場所 サーバー(ENI単位) サブネット単位
動き方 ステートフル(戻りは自動許可) ステートレス(戻りも設定)
設定できる内容 許可のみ 許可と拒否の両方

 

別の観点として、実務ではセキュリティグループを主役に使い、ネットワークACLは「特定の通信をサブネットごとブロックしたい」など補助的に使うことが多いとされています。まずはセキュリティグループの考え方を中心に押さえれば十分です。

 

→ 通信を守る考え方の基礎は ファイアウォールとIDS・IPSとは でも掴めます。

 

5. まとめ: 今日からできる、最初の一歩

今日からの一歩を示すイメージ

ここまで読んだあなたは、2つの違いをしっかり押さえられたはずです。要点を3つに整理します。

 

  1. 守る場所: セキュリティグループはサーバー単位、ネットワークACLはサブネット単位
  2. 動き方: セキュリティグループはステートフル、ネットワークACLはステートレス
  3. 設定: セキュリティグループは許可のみ、ネットワークACLは許可と拒否の両方

 

この違いは、AWS SAAのセキュアアーキテクチャ設計領域でよく問われるテーマの一つです。特に「ステートフルかステートレスか」は頻出なので、ここを押さえると関連するネットワーク問題も整理しやすくなります。

 

あなたが今日からできる、最初の一歩を3つ用意しました。

 

  1. 用語整理: 「ENI単位とサブネット単位」「ステートフルとステートレス」「許可のみと許可・拒否」を1行メモにまとめる(3分)
  2. 関連記事: VPCに進み、2つの関所が置かれる土台を押さえる(5分)
  3. 力試し: セキュア設計の問題を1問解いて、理解度を確認する(2分)

 

たった10分で、2つの違いは輪郭のある知識に変わります。完璧に覚えてから動くより、まず関連記事を1本読んでみる。それが、あなたにとっていちばん速い学び方です。

 

次のステップ

セキュリティグループとNACLがセキュア設計でどう問われるかを含めた試験の全体像は、AWS SAA試験全体概要で俯瞰できます。

 

理解度を確かめたいなら、AWS SAA セキュア設計の問題集でセキュリティグループ/NACLを含むセキュア設計を実際に解いてみるのが近道です。