セキュリティグループがトラフィックをフィルタリングする仕組み
各リソースに関連付けられたステートフルファイアウォールを理解します。
「セキュリティグループがトラフィックをフィルタリングする仕組み」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。
リソースのファイアウォール
security group (SG)は、EC2 instance、RDS database、load balancerなどのリソース上のelastic network interface (ENI)に直接アタッチされる仮想ファイアウォールです。ネットワーク境界ではなくリソースレベルでインバウンドおよびアウトバウンドトラフィックを制御するため、同じサブネット内の2つのインスタンスでも、まったく異なるルールを設定できます。
許可のみのルール
Security groupsには許可ルールのみが含まれます。明示的なdenyを記述する方法はありません。allow ruleに一致しないトラフィックは、単に破棄されます。つまり、許可したいアクセスをpermitとして追加してアクセスを構築し、それ以外は暗黙的にすべてブロックされます。
デフォルトの動作
新しく作成したsecurity groupは、すべてのインバウンドトラフィックを拒否し、すべてのアウトバウンドトラフィックを許可します。インバウンドアクセスはポートごとに意図的に開き、エグレスは制限しない限り広く許可されたままです。試験問題では、アウトバウンドがデフォルトで許可されることを覚えているかどうかが問われることがよくあります。
ルールの構成
各ルールでは、protocol(TCP、UDP、ICMP)、port range、およびsource(インバウンドの場合)またはdestination(アウトバウンドの場合)を定義します。sourceには10.0.0.0/16のようなCIDRブロックや、別のsecurity group IDを指定できます。これにより、固定IPではなくグループを参照できます。
aws ec2 authorize-security-group-ingress \
--group-id sg-0abc123 \
--protocol tcp --port 443 \
--cidr 0.0.0.0/0他のグループを参照する
sourceに別のsecurity group IDを設定すると、動的なIDベースのアクセスが作成されます。たとえば、データベースSGで、アプリケーション層SGからのポート5432だけを許可できます。アプリケーションサーバーが増減しても、参照先グループのメンバーシップによってアクセスが制御されるため、IPを変更する必要はありません。
ステートフルな追跡
Security groupsはステートフルです。インバウンドリクエストを許可すると、アウトバウンドルールに関係なく、その応答は自動的に外向きに許可されます。逆の場合も同様です。接続が追跡されるため、対応する戻り方向のルールを記述する必要はありません。これは、network ACLsとの最も大きな動作上の違いです。
1つのリソースに複数のグループ
1つのENIには、複数のsecurity groupsを同時にアタッチできます。それらのルールは和集合として組み合わされます。アタッチされたグループのいずれかがトラフィックを許可すれば、そのトラフィックは許可されます。ルールの順序や優先度はないため、denyによって別のグループを上書きすることはできません。
最小権限設計
各ティアが必要とする正確なポートだけを開放し、最小権限を適用します。たとえば、Webティアではインターネットからの443を許可し、アプリティアではWeb SGからの8080だけを許可し、データティアではアプリ SGからの3306だけを許可します。このようにティアを連鎖させることで、侵害後のラテラルムーブメントを制限できます。
よくあるミス
最も危険な設定ミスは、ポート22または3389で0.0.0.0/0を許可することです。これにより、SSHまたはRDPがインターネット全体に公開されます。GuardDutyとSecurity Hubはこれを検出します。管理用のインバウンドポートは一切開けず、代わりにSession Managerを使用するのが望ましい方法です。SSMコースで詳しく説明します。
ログの不足
セキュリティグループ自体には、許可または拒否したパケットのログを記録する機能がありません。実際にどのトラフィックが流れたかを確認するには、接続ごとのacceptまたはrejectの判定を記録するVPC Flow Logsに頼ります。SGの設計とFlow Logsを組み合わせて、ルールが意図どおりに機能していることを確認してください。
適用される位置
セキュリティグループは、VPC内でインスタンスレベルに適用される、ネットワーク防御の最初かつ最も粒度の細かい層です。サブネット全体に適用されるネットワークACLや、WAFなどのアプリケーション層のツールを補完します。ステートフルで、許可のみを行い、複数ルールを和集合として扱うという動作を理解することは、SCS-C02試験に不可欠です。
クイックチェック
セキュリティグループの動作を理解できているか確認しましょう。
まとめ
セキュリティグループは、リソースのENIにアタッチされるステートフルで、許可のみを行う仮想ファイアウォールです。新しいグループは、すべてのインバウンドを拒否し、すべてのアウトバウンドを許可します。ルールでは、プロトコル、ポート、そしてCIDRまたは別のグループIDを指定できる送信元を指定します。複数のグループは優先順位や拒否ルールなしに和集合として適用されます。管理用ポートを公開せず、SGにはログ機能がないため、Flow Logsを使用してトラフィックを確認してください。
よくある質問
「セキュリティグループがトラフィックをフィルタリングする仕組み」レッスンは無料ですか?
はい。「セキュリティグループがトラフィックをフィルタリングする仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。
「セキュリティグループがトラフィックをフィルタリングする仕組み」で何を学びますか?
各リソースに関連付けられたステートフルファイアウォールを理解します。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AWS Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「セキュリティグループがトラフィックをフィルタリングする仕組み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAWS Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- セキュリティグループがトラフィックをフィルタリングする仕組み
- ネットワークACLがサブネットをフィルタリングする仕組み
- ステートフルとステートレスの動作の違い
- 両方を組み合わせた多層防御