VPCのアクセス制御(ルートテーブル / SG / NACL)
VPC内通信を制御する3要素(ルートテーブル / SG / NACL)の役割と使い分けを整理します。
学習順Step 8 / 46サービスVPC試験ドメインセキュリティ
🔰 初心者向け:VPCのアクセス制御
VPCでは、通信のルート設定やアクセス制御のために、主に以下の3つの仕組みが用意されています。
- ルートテーブル
- セキュリティグループ
- ネットワークACL
1. ルートテーブル
VPC内の通信は、指定されたCIDR表記のアドレスごとに通信ルートを定義する「ルートテーブル」によって制御されます。ルートテーブルはVPC作成時に自動でメインルートテーブルが作成され、必要に応じてカスタムルートテーブルも追加できます。

- 各サブネットは1つのルートテーブルに関連付けが必要
- サブネットが特定のルートテーブルに明示的に関連付けられていない場合、メインルートテーブルが自動的に適用
- 1つのサブネットに複数のルートテーブルは関連付け不可
- 1つのルートテーブルに複数サブネットの関連付けは可能
ルートテーブルの設定例
| 宛先 | ターゲット |
|---|---|
| 10.0.0.0/16 | local |
| 0.0.0.0/0 | igw-xxxxxxx |
2. セキュリティグループ
セキュリティグループは、Linuxのファイアウォール機能「IPTables」に似た仮想ファイアウォールです。インスタンス単位で関連付け、許可する通信(プロトコル・ポート・送信元/宛先)をルールとして定義します。

- ステートフル(許可した通信の応答は自動的に許可)
- インバウンド・アウトバウンド両方のルールを設定可能
- 複数のセキュリティグループを1つのリソースに関連付け可能
- ルールは「許可」のみ(明示的な拒否は不可)
セキュリティグループの設定例
| タイプ | ポート範囲 | ソース |
|---|---|---|
| HTTP | TCP/80 | 0.0.0.0/0 |
| HTTPS | TCP/443 | 0.0.0.0/0 |
| SSH | TCP/22 | 0.0.0.0/0 |
| PostgreSQL | TCP/5432 | 10.0.1.0/24 |
3. ネットワークACL
ネットワークACL(Access Control List)は、サブネット単位で関連付けるネットワークレベルのファイアウォールです。受信・送信の両方向の通信をルールで制御します。

- サブネット単位で適用(関連付けたサブネット内の全リソースに適用)
- ステートレス(応答通信も明示的に許可が必要)
- ルールは「許可」と「拒否」両方を設定可能
- セキュリティグループで許可できない特定のクライアントのブロックなどに有効
ネットワークACLの設定例
| タイプ | ポート範囲 | ソース | 許可/拒否 | 方向 |
|---|---|---|---|---|
| SSH | TCP/22 | 10.0.0.0/0 | Allow | Inbound |
| SSH | TCP/22 | 10.0.0.0/0 | Allow | Outbound |
| SSH | TCP/22 | 0.0.0.0/0 | Deny | Inbound |
| SSH | TCP/22 | 0.0.0.0/0 | Deny | Outbound |
注意点
- ネットワークACLは応答通信を許可する場合、戻り宛先IPアドレスとポートの指定が必要(ネットワークACLはステートレス)
- セキュリティグループは「許可」のみ、ネットワークACLは「許可」と「拒否」両方設定可能
- 特定のクライアントのアクセスをブロックしたい場合はネットワークACLを利用
重要ポイント
- ▸ルートテーブルは宛先ごとの経路制御
- ▸セキュリティグループはインスタンス単位のステートフルFW
- ▸NACLはサブネット単位のステートレスFW
- ▸SGはAllowのみ、NACLはAllow/Deny両方
- ▸関連付けの単位(サブネット/リソース)を押さえる
このトピックの学習を完了しますか?
完了状態はいつでも切り替えられます
この試験ドメイン内で次の学習に進む
同じサービスの関連トピック
VPC とネットワーク設計 に関連するトピックを続けて確認できます。