ネットワークACLがサブネットをフィルタリングする仕組み
サブネット全体を保護するステートレスなルールを学びます。
「ネットワークACLがサブネットをフィルタリングする仕組み」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。
サブネットファイアウォール
ネットワークACL(NACL)は、サブネット境界で動作するファイアウォールです。サブネットに出入りするすべてのパケットは、どのインスタンスが送受信したかにかかわらず、そのサブネットに関連付けられたNACLに照らして評価されます。セキュリティグループと並ぶ、ネットワーク防御の第2層です。
番号付きの順序付けられたルール
NACLのルールには番号が付けられ、昇順に評価されます。AWSは200より先にルール100を確認し、最初に一致したルールが適用され、評価を停止します。これは、すべてのルールを優先順位なしに組み合わせるセキュリティグループとは反対の動作です。後からルールを挿入できるように、100、200、300のように番号に間隔を空けてください。
許可と拒否
セキュリティグループとは異なり、NACLは許可と拒否の両方のルールをサポートします。これにより、特定の悪意あるIPやCIDR範囲を明示的にブロックできます。これは、許可しか行えないセキュリティグループではできません。よくあるパターンは、広範な許可ルールより前に、低いルール番号で既知の不正な送信元を拒否することです。
aws ec2 create-network-acl-entry \
--network-acl-id acl-0abc123 \
--rule-number 90 --protocol -1 \
--cidr-block 198.51.100.0/24 \
--rule-action deny --ingressインバウンドとアウトバウンドを分離する
各NACLには、独立したインバウンドとアウトバウンドのルールセットがあり、それぞれに固有の番号が付けられます。NACLはステートレスであるため、応答トラフィックを含め、すべての通信について両方向を明示的に処理する必要があります。
デフォルトNACL
VPCとともに作成されるデフォルトNACLは、すべてのインバウンドとアウトバウンドのトラフィックを許可するため、実質的に透過的です。作成したカスタムNACLは、許可ルールを追加するまで、両方向のトラフィックをすべて拒否します。明示的な関連付けがないサブネットでは、デフォルトNACLが使用されます。
サブネットごとに1つのNACL
サブネットに関連付けられるNACLは一度に1つだけですが、1つのNACLで複数のサブネットを保護できます。これは、リソースに複数のセキュリティグループを関連付けられる点と反対です。NACLはサブネット内のすべてに広く適用されるため、粗い制御となります。
アスタリスクルール
すべてのNACLの最後には、番号付きルールに一致しないものを拒否する暗黙の*ルールがあります。このルールを編集または削除することはできません。パケットがすべての番号付きルールを通過すると、アスタリスクルールによって拒否されます。そのため、必要な許可ルールを忘れると、トラフィックが何のエラーもなく停止します。
エフェメラルポート
NACLはステートレスであるため、応答トラフィックではエフェメラルポートが使用されます(通常、Linuxでは1024~65535、Windowsでは49152~65535)。この範囲を対象とするアウトバウンドまたはインバウンドの許可ルールを追加しなければ、応答が破棄されます。これは、試験で頻繁に問われるNACLの典型的な落とし穴です。
悪意ある送信元のブロック
NACLは、インシデント発生時にサブネット全体でIP範囲をすばやくブロックする必要がある場合に力を発揮します。低い番号の拒否ルールによって、その送信元からすべてのインスタンスへの到達を阻止できます。セキュリティグループは許可しか行えないため、これを実行できません。そのため、NACLは迅速な封じ込めに役立ちます。
粗いが高速
NACLはサブネット全体に適用する粗い手段、セキュリティグループはリソース単位の細かい手段として扱ってください。多くのアーキテクチャでは、主にセキュリティグループを使用し、NACLは明示的な拒否が必要な場合に限定して使用します。特定のブロックが必要になるまでは、デフォルトの許可状態を維持します。
効果をログに記録する
NACLの判定はSGの判定と同様に、各フローの最終的なacceptまたはrejectを示すVPC Flow Logsで確認します。Flow Logsには、どの制御が判定を下したかは記録されません。そのため、パケットが拒否された理由を考えるには、ルールの評価順序を理解することが重要です。
クイックチェック
NACLの評価方法を理解できているか確認しましょう。
まとめ
ネットワークACLは、サブネット境界に配置されるステートレスで順序付けられたファイアウォールで、許可と拒否の両方をサポートします。ルールには番号が付けられ、最初に一致したルールが適用され、最後に編集できない拒否のアスタリスクルールがあります。カスタムNACLは、ルールを追加するまで、すべてを拒否します。ステートレスであるため、応答トラフィック用にエフェメラルポートを許可する必要があります。悪意あるIPをサブネット全体で粗く迅速にブロックする場合に使用してください。
よくある質問
「ネットワークACLがサブネットをフィルタリングする仕組み」レッスンは無料ですか?
はい。「ネットワークACLがサブネットをフィルタリングする仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。
「ネットワークACLがサブネットをフィルタリングする仕組み」で何を学びますか?
サブネット全体を保護するステートレスなルールを学びます。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AWS Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「ネットワークACLがサブネットをフィルタリングする仕組み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAWS Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- セキュリティグループがトラフィックをフィルタリングする仕組み
- ネットワークACLがサブネットをフィルタリングする仕組み
- ステートフルとステートレスの動作の違い
- 両方を組み合わせた多層防御