はじめに
AWSでは、ネットワークセキュリティを管理するために**Security Group(セキュリティグループ)とNetwork ACL(ネットワークACL)**の2つの機能が用意されています。
どちらもアクセス制御を行いますが、適用範囲や動作に違いがあり、それぞれに適した使いどころがあります。
本記事では、まずSecurity Groupについて説明し、その後Network ACLとの違いと使い分け方を紹介します。
Security Groupとは?
Security Group(セキュリティグループ)は、AWSでリソースレベルに適用されるアクセス制御の仕組みです。
例えば、EC2インスタンスやRDSなどの各リソースに直接適用し、リソースごとに異なるトラフィックの許可設定ができます。
Security Groupはステートフルな仕組みで、インバウンド(受信)トラフィックを許可すれば、対応するアウトバウンド(送信)トラフィックも自動的に許可されるため、シンプルな構成が可能です。
- 適用レイヤー: リソース単位(各インスタンスやデータベースなどに適用)
- ルールのタイプ: ステートフル(受信ルールがあれば送信も自動で許可)
- 特徴: 許可ルールのみ設定可能(拒否の設定はできない)
Security Groupの用途
Security Groupは、個々のリソースに対してポートレベルでのアクセスを細かく管理するのに適しています。
各リソースに対して異なるポートやプロトコルのアクセスを許可したい場合に、リソースごとに異なるSecurity Groupを設定することで、柔軟な管理が可能です。
例: Security Groupの使いどころ
たとえば、Webサーバー用にポート80(HTTP)やポート443(HTTPS)を許可し、管理用のSSHアクセスにはポート22を開放するといった設定ができます。
また、特定のIPアドレスのみからアクセスを許可する設定も行えます。
- Webサーバーの場合:HTTP/HTTPSトラフィック(ポート80/443)を許可
- 管理アクセスの場合:特定のIPからのSSHアクセス(ポート22)を許可
Network ACLとは?
Network ACL(ネットワークACL)は、AWSのVPC内のサブネットレベルに適用されるアクセス制御リストです。Network ACLはステートレスな仕組みで、インバウンド(受信)とアウトバウンド(送信)トラフィックが独立して管理されます。つまり、送信を許可するルールを設定しても、受信も別途許可する必要があります。
- 適用レイヤー: サブネット単位(VPC内のサブネットに対して適用)
- ルールのタイプ: ステートレス(受信と送信のトラフィックが独立)
- 特徴: 許可と拒否の両方のルールを設定可能
Network ACLの用途
Network ACLは、VPC全体で共通のセキュリティルールを設定したい場合に適しています。
たとえば、特定のIP範囲からのアクセスを一括して拒否したい場合や、全サブネットでの共通のフィルタリングルールを適用する際に利用されます。
例: Network ACLの使いどころ
例えば、VPC内のすべてのサブネットで、特定のIP範囲からのアクセスを拒否する、あるいは特定のポート番号だけを許可するといった設定が可能です。
Network ACLは、ネットワーク全体でのアクセス制限やホワイトリスト・ブラックリスト方式の制御に向いています。
Security GroupとNetwork ACLの使い分け
Security GroupとNetwork ACLはどちらも重要なセキュリティ機能ですが、使いどころが異なります。以下の表で特徴を比較し、それぞれの推奨利用シーンをまとめました。
Security Group | Network ACL |
---|---|
リソース単位でのアクセス制御が可能 | サブネット単位でのアクセス制御 |
ステートフル(受信が許可されれば送信も許可) | ステートレス(送信・受信を個別に設定) |
許可ルールのみ設定可能 | 許可・拒否ルール両方が設定可能 |
アプリケーションポートごとのアクセス制御 | 全サブネットでのIP範囲やプロトコルの制限 |
例: 使い分けのケース
-
Security Groupを使う場面:
- アプリケーションごとに異なるポートやIPアドレスを許可する場合
- EC2やRDSといったリソースごとに個別のアクセス制御が必要な場合
-
Network ACLを使う場面:
- サブネット全体でのIPレンジの制限やネットワークレベルでのアクセス制御が必要な場合
- ブラックリストやホワイトリスト方式で、複数のリソースに一貫した制御を行いたい場合
まとめ
AWSのネットワークセキュリティを設計する際、Security GroupとNetwork ACLは重要な役割を果たします。
それぞれの特徴と使い分けを理解し、適切に活用することで、安全かつ効率的なネットワーク設計が可能になります。