本文へスキップ
BecomeCoder

AWSコース · 第6章 ネットワーク · レッスン29

セキュリティグループとネットワークACL

導入

VPCの中にリソースを置いたら、次は「誰の通信を許可し、誰を拒否するか」を決める番です。AWSにはこの目的のための仕組みが2種類あり、役割が異なります。

説明

セキュリティグループは、EC2インスタンスなど個々のリソース単位にかける仮想的なファイアウォールです。

**ネットワークACL(Network Access Control List)**は、サブネット単位にかけるファイアウォールです。

両者の違いは試験で頻出のポイントなので、表で比較しておきましょう。

観点セキュリティグループネットワークACL
適用範囲インスタンス単位サブネット単位
ルールの種類許可ルールのみ設定できる許可・拒否の両方を設定できる
状態管理ステートフル(行きの通信を許可すると、戻りの通信は自動的に許可される)ステートレス(行きと戻りを別々にルール設定する必要がある)
ルールの評価すべてのルールを評価してから判定番号の若い順にルールを評価し、最初に一致した時点で確定
flowchart LR
    Internet(("インターネット")) --> NACL["ネットワークACL\n(サブネットの門番)"]
    NACL --> SG["セキュリティグループ\n(インスタンスの門番)"]
    SG --> EC2["EC2インスタンス"]

通信は、まずサブネットの門番であるネットワークACLを通過し、次にインスタンスの門番であるセキュリティグループを通過して初めてリソースに届きます。基本的な用途にはセキュリティグループだけで十分なことが多く、ネットワークACLは「特定のIPアドレスを明示的に拒否したい」といった追加の防御層として使われます。

読んでみよう

「セキュリティグループ=ステートフルで許可のみ・インスタンス単位」「ネットワークACL=ステートレスで許可も拒否も・サブネット単位、番号順評価」——この対比をセットで丸暗記しておくと得点源になります。