Amazon VPCにおけるセキュリティグループの役割
セキュリティグループとは
セキュリティグループは、同一グループ外のインスタンスと通信を行う際のトラフィックを制御するファイアウォールです。VPC内でインスタンスを立ち上げた場合、同時に最大5つまでのセキュリティグループを設定することができます。セキュリティグループは、サブネットレベルではなく、インスタンスレベルで設定します。ですから、ひとつのサブネットの中でインスタンス毎にセキュリティグループが設定できます。インスタンス起動時にセキュリティグループを指定しなければ、VPC用のデフォルトのセキュリティグループが設定されることになります。それぞれのセキュリティグループは、インバウンドとアウトバウンドのトラフィックに対して制御することができます。
VPCセキュリティグループの基本的な特徴
以下は、VPCセキュリティグループの基本的な特徴です。
- 許可リストを設定することができますが、拒否リストは設定できません。
- インバウンドルールとアウトバウンドルールを設定することができます
- デフォルトで、インバウンドルールを追加をするまで、全てのトラフィックを拒否する設定になっています。
- デフォルトで、アウトバウンドルールを追加するまで、全てのトラフィックを許可する設定になっています。
- インバウンドのトラフィックに対するレスポンスは、アウトバウンドのルールに関係なく許可されます。
- 許可リストを設定しなければ、セキュリティグループ内のインスタンスは互いにやりとりすることはできません。(ただし、デフォルト状態のセキュリティグループに属する場合を除きます。)
- インスタンスの起動後、どのセキュリティグループに属するか変更することできます。
デフォルトのVPCセキュリティグループ
デフォルトのセキュリティグループは、VPCでインスタンスを起動する際に、特にセキュリティグループを指定しないときに設定されます。特徴は以下となります。デフォルトのセキュリティグループ設定は後で変更することができます。
- セキュリティグループ外からのインバウンドの通信は全て拒否
- 同一セキュリティグループ内からのアウトバウンドの通信は全て許可
- 同一セキュリティグループ内での双方向の通信は全て許可
セキュリティグループのルールについて基本的なことを知る
セキュリティグループのルールについて後から追加/削除ができます。それぞれのルールは、インバウンドかアウトバウンドどちらかについて記述します。また、CIDR範囲やVPC内の他のセキュリティグループを指定できます。これらは、セキュリティグループのルールに関する基本事項です。ルールを削除したら、そのセキュリティグループに属しているインスタンスに直ぐ反映されます。
- インバウンドのルール限定:トラフィック(CIDR範囲かセキュリティグループ)のソースと宛先ポートかポート範囲
- アウトバウンドのルール限定:宛先(CIDR範囲かセキュリティグループ)と宛先ポートかポート範囲
- 標準プロトコルの番号を指定することができます。
- ICMPを指定した場合、全部か一部のICMPタイプを指定できます。
以下はセキュリティグループの設定例です。
EC2とVPCのセキュリティグループを比較する
EC2とVPCはセキュリティグループの動作や設定に違いがあります。以下で確認します。
インバウンドのみ設定します。 | インバウンドとアウトバウンドを設定します。 |
自身のAWSアカウントか他のアカウントのセキュリティグループのみからアクセスを許可します。 | VPC内のセキュリティグループのみからアクセスを許可します。 |
インスタンスを起動したら後から変更できません。 | インタンスを起動した後でも変更することができます。 |
ルールを追加する際にプロトコルを指定する必要は無く、TCP/UDP/ICMPなどざっくり指定できます。 | ルールを追加する際にプロトコルを指定する必要があり、標準プロトコル番号を指定します。 |
ルールを追加する際にポート番号を指定する必要があります。 | ルールを追加する際にTCPかUDPの時だけポート番号を指定できます。また、全てのポートを指定することができます。 |
まとめ
セキュリティグループは、インスタンス毎に設定されるファイアウォールであることが分かりました。また、EC2とVPCでは設定できることが異なり、VPCはインバウンドに加えてアウトバウンドも設定できて、よりセキュアに設定できる事が分かりました。インスタンスの役割毎にセキュリティグループを用意する必要がありそうですね。今日からあなたもセキュリティグループ刑事になろう!