メニュー
Amazon Virtual Private Cloud
ユーザーガイド

VPC のセキュリティグループ

セキュリティグループは、インスタンスの仮想ファイアウォールとして機能し、インバウンドトラフィックとアウトバウンドトラフィックをコントロールします。VPC 内でインスタンスを起動した場合、そのインスタンスは最大 5 つのセキュリティグループに割り当てることができます。セキュリティグループは、サブネットレベルでなくインスタンスレベルで動作します。このため、VPC 内のサブネット内のインスタンスごとに異なるセキュリティグループのセットに割り当てることができます。起動時に特定のグループを指定しないと、インスタンスは VPC のデフォルトのセキュリティグループに自動的に割り当てられます。

セキュリティグループごとに、インスタンスへのインバウンドトラフィックをコントロールするルールと、アウトバウンドトラフィックをコントロールする一連のルールを個別に追加します。このセクションでは、VPC のセキュリティグループとそのルールについて、知っておく必要がある基本事項について説明します。

セキュリティの追加レイヤーを VPC に追加するには、セキュリティグループと同様のルールを指定したネットワーク ACL をセットアップできます。セキュリティグループとネットワーク ACL の違いの詳細については、「セキュリティグループとネットワーク ACL の比較」を参照してください。

セキュリティグループの基本

VPC のセキュリティグループの基本的な特性を次に示します。

  • VPC あたりで作成可能なセキュリティグループの数、各セキュリティグループに追加できるルールの数、ネットワークインターフェイスに関連付けることができるセキュリティグループの数に制限があります。詳細については、「Amazon VPC の制限」を参照してください。

  • 許可ルールを指定できます。拒否ルールは指定できません。

  • インバウンドトラフィックとアウトバウンドトラフィックのルールを個別に指定できます。

  • セキュリティグループを作成するときには、インバウンドルールはありません。したがって、インバウンドトラフィックは、インバウンドルールをセキュリティグループに追加するまで許可されません。

  • デフォルトでは、セキュリティグループにはすべてのアウトバウンドトラフィックを許可するアウトバウンドルールが含まれています。ルールを削除し、任意の発信トラフィックのみを許可するアウトバウンドルールを追加できます。セキュリティグループにアウトバウンドルールがない場合、アウトバウンドトラフィックは許可されません。

  • セキュリティグループはステートフルです。インスタンスからリクエストを送信する場合、そのリクエストのレスポンストラフィックは、インバウンドセキュリティグループルールにかかわらず、流れることができます。許可されたインバウンドトラフィックに対する応答(戻りのトラフィック)は、アウトバウンドルールにかかわらずアウト側に対し通過することができます。

    注記

    トラフィックのタイプによっては、別々に追跡されます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「接続追跡」を参照してください。

  • セキュリティグループに関連付けられたインスタンスの相互通信は、それを許可するルールを追加するまで許可されません (例外: デフォルトのセキュリティグループについては、このルールがデフォルトで指定されています)。

  • セキュリティグループはネットワークインターフェイスに関連付けられます。インスタンスを起動した後で、インスタンスに関連付けられたセキュリティグループを変更できます。これにより、プライマリネットワークインターフェイス (eth0) に関連付けられたセキュリティグループが変更されます。あらゆるネットワークインターフェイスに関連付けられているセキュリティグループも変更できます。ネットワークインターフェイスの詳細については、「Elastic Network Interfaces」を参照してください。

VPC のデフォルトセキュリティグループ

VPC ではデフォルトのセキュリティグループが自動的に使用されます。VPC で起動する EC2 インスタンスは、そのインスタンスの起動時に別のセキュリティグループを指定しない限り、それぞれがデフォルトのセキュリティグループに自動的に関連付けられます。

次の表では、デフォルトのセキュリティグループ用のデフォルトルールについて説明します。

インバウンド
送信元 プロトコル ポート範囲 コメント

セキュリティグループ ID (sg-xxxxxxxx)

すべて

すべて

同じセキュリティグループに割り当てられたインスタンスからのインバウンドトラフィックを許可する.

アウトバウンド

送信先 プロトコル ポート範囲 コメント

0.0.0.0/0

すべて

すべて

すべての発信 IPv4 トラフィックを許可する

::/0 すべて すべて すべての発信 IPv6 トラフィックを許可するこのルールは、IPv6 CIDR ブロックを持つ VPC を作成するか、既存の VPC と IPv6 CIDR ブロックを関連付けている場合にデフォルトで追加されます。

デフォルトのセキュリティグループのルールは変更できます。

デフォルトのセキュリティグループを削除することはできません。デフォルトのセキュリティグループを削除しようとした場合、Client.CannotDelete: the specified group: "sg-51530134" name: "default" cannot be deleted by a user エラーが発生します。

注記

セキュリティグループのアウトバウンドルールの設定を修正した場合、VPC と IPv6 ブロックを関連付けたときに IPv6 トラフィック用のルールは自動的に追加されません。

セキュリティグループのルール

セキュリティグループのルールは追加または削除できます (インバウンドまたはアウトバウンドアクセスの許可または取り消しとも呼ばれます)。ルールが適用されるのは、インバウンドトラフィック (受信) またはアウトバウンドトラフィック (送信) のいずれかです。特定の CIDR 範囲、または VPC あるいはピア VPC (VPC ピア接続が必要) の別のセキュリティグループにアクセス権を付与できます。

VPC のセキュリティグループのルールの基本要素を次に示します。

  • (インバウンドルールのみ) トラフィックの送信元 (CIDR の範囲) と送信先 (リッスン) ポートまたはポートの範囲。ソースは、他のセキュリティグループ、IPv4 または IPv6 CIDR ブロック、または単一の IPv4 または IPv6 アドレスとなります。

  • (アウトバウンドルールのみ) トラフィックの送信先 (CIDR の範囲) と送信先ポートまたはポートの範囲。宛先は、他のセキュリティグループ、IPv4 または IPv6 CIDR ブロック、または単一の IPv4 または IPv6 アドレスとなります。

  • 標準のプロトコル番号を持つ任意のプロトコル (リストについては、「Protocol Numbers」を参照)。プロトコルとして ICMP を指定する場合、任意またはすべての ICMP タイプとコードを指定できます。

ルールの送信元としてセキュリティグループを指定すると、送信元セキュリティグループに関連付けられたインスタンスは、そのセキュリティグループ内のインスタンスにアクセスできるようになります。 (その際、送信元セキュリティグループからこのセキュリティグループにルールが追加されることはありません。)

単一の IPv4 アドレスを指定した場合は、/32 プレフィックスを使用します。単一の IPv6 アドレスを指定した場合は、/128 プレフィックス長を指定します。

ファイアウォールを設定するためのシステムの一部を使用すると、送信元ポートでフィルタを適用できます。セキュリティグループを使用すると、送信先ポートでのみフィルタを適用できます。

ルールを追加または削除すると、セキュリティグループに関連付けられたすべてのインスタンスにこの操作が自動的に適用されます。

追加するルールの種類は、インスタンスの目的によって異なります。次の表では、ウェブサーバーのセキュリティグループに対するルールの例を説明します。ウェブサーバーはすべての IPv4 および IPv6 アドレスから HTTP および HTTPS トラフィックを受信し、SQL または MySQL トラフィックをデータベースサーバーに送信することができます。

インバウンド
送信元 プロトコル ポート範囲 コメント

0.0.0.0/0

TCP

80

任意の IPv4 アドレスからのインバウンド HTTP アクセスを許可します。

::/0 TCP 80 任意の IPv6 アドレスからのインバウンド HTTP アクセスを許可します。

0.0.0.0/0

TCP

443

任意の IPv4 アドレスからのインバウンド HTTPS アクセスを許可する

::/0 TCP 443 任意の IPv6 アドレスからのインバウンド HTTPS アクセスを許可する

ネットワークのパブリック IPv4 アドレスの範囲

TCP

22

ネットワークの IPv4 アドレスから Linux インスタンスへのインバウンド SSH アクセス (インターネットゲートウェイ経由) を許可する

ネットワークのパブリック IPv4 アドレスの範囲

TCP

3389

ネットワークの IPv4 アドレスから Windows インスタンスへのインバウンド RDP アクセス (インターネットゲートウェイ経由) を許可する

アウトバウンド

送信先 プロトコル ポート範囲 コメント

セキュリティグループの ID (データベースサーバー用)

TCP

1433

アウトバウンド Microsoft SQL Server が指定されたセキュリティグループ内のインスタンスにアクセスするのを許可する

MySQL データベースサーバーのセキュリティグループの ID

TCP

3306

アウトバウンド MySQL が指定されたセキュリティグループ内のインスタンスにアクセスするのを許可する

データベースサーバーには、異なるルールセットが必要です。たとえば、インバウンド HTTP および HTTPS トラフィックの代わりに、インバウンド MySQL または Microsoft SQL Server アクセスを許可するルールを追加できます。ウェブサーバーとデータベースサーバーのセキュリティグループルールの例については、「セキュリティ」を参照してください。

パス MTU 検出が正常に機能するためのセキュリティグループルールの作成の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「パス MTU 検出」を参照してください。

古いセキュリティグループルール

VPC に別の VPC との VPC ピア接続がある場合、セキュリティグループルールで、ピア VPC の別のセキュリティグループを参照できます。これにより、参照されるセキュリティグループと関連付けられているインスタンスは、参照するセキュリティグループと関連付けられているインスタンスと通信することができます。

ピア VPC の所有者が、参照されるセキュリティグループを削除するか、ユーザーまたはピア VPC の所有者が VPC ピア接続を削除した場合、セキュリティグループルールは stale とマークされます。古くなったセキュリティグループルールは他のセキュリティグループルールと同じ方法で削除できます。

詳細については、Amazon VPC Peering Guide の「古いセキュリティグループの操作」を参照してください。

EC2-Classic と EC2-VPC のセキュリティグループの違い

既に Amazon EC2 を使用しているのであれば、セキュリティグループについてはご存知でしょう。ただし、EC2-Classic で使用するために作成したセキュリティグループは、VPC のインスタンスで使用することはできません。VPC のインスタンスで使用するためのセキュリティグループを特別に作成する必要があります。VPC のセキュリティグループで使用するために作成したルールは、EC2-Classic のセキュリティグループを参照できません。その逆も同様です。

次の表は、EC2-Classic で使用するセキュリティグループと EC2-VPC で使用するセキュリティグループの違いをまとめたものです。

EC2-Classic EC2-VPC

リージョンごとに最大 500 のセキュリティグループを作成できます。

VPC ごとに最大 500 のセキュリティグループを作成できます。

最大 100 のルールをセキュリティグループに追加できます。

最大 50 のルールをセキュリティグループに追加できます。

インバウンドトラフィックのみにルールを追加できます。

インバウンドトラフィックとアウトバウンドトラフィックのルールを追加できます。

最大 500 つのセキュリティグループを 1 つのインスタンスに割り当てることができます。

最大 5 つのセキュリティグループを 1 つのネットワークインターフェイスに割り当てることができます。

他の AWS アカウントからセキュリティグループを参照できます。

VPC または VPC ピア接続のピア VPC からのみ、セキュリティグループを参照できます。ピア VPC が別のアカウントにあってもかまいません。

インスタンスを起動すると、インスタンスに関連付けられているセキュリティグループは変更できません。

インスタンスの起動後でも、インスタンスに関連付けられているセキュリティグループは変更できます。

ルールをセキュリティグループに追加するとき、プロトコルを指定する必要はありません。TCP、UDP、または ICMP のみを使用できます。

ルールをセキュリティグループに追加するときは、プロトコルを指定する必要があります。標準のプロトコル番号を持つ任意のプロトコル、またはすべてのプロトコル (Protocol Numbers を参照) を使用できます。

ルールをセキュリティグループに追加するときは、ポート番号を指定する必要があります (TCP または UDP 用)。

ルールをセキュリティグループに追加するときは、そのルールが TCP または UDP 用の場合にのみポート番号を指定できます。すべてのポート番号を指定できます。

別のセキュリティグループルールで参照されているセキュリティグループは削除できません。 別のセキュリティグループルールで参照されたセキュリティグループの場合、そのセキュリティグループが別の VPC にあれば削除できます。参照されるセキュリティグループを削除すると、ルールは古いとマークされます。describe-stale-security-groups AWS CLI コマンドを使用して、古いルールを識別できます。
IPv6 CIDR ブロックまたは IPv6 アドレスをソースとして、またはセキュリティグループのルールに宛先を指定することはできません。 IPv6 CIDR ブロックまたは IPv6 アドレスをソースとして、またはセキュリティグループのルールに宛先を指定することができます。

セキュリティグループを操作する

このセクションでは、Amazon VPC を使用してセキュリティグループを操作する方法について説明します。

デフォルトのセキュリティグループを変更する

VPC に用意されているデフォルトのセキュリティグループの初期ルールでは、すべてのインバウンドトラフィックが拒否され、すべてのアウトバウンドトラフィックと、そのグループのインスタンス間のすべてのトラフィックが許可されます。このグループは削除できませんが、グループのルールは変更できます。その手順は、他のセキュリティグループを変更する手順と同じです。詳細については、「ルールを追加および削除する」を参照してください。

セキュリティグループを作成する

インスタンスのデフォルトのセキュリティグループを使用できますが、独自のグループを作成し、システムにおけるインスタンスの様々な役割を反映させたい場合があります。

To create a security group

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. In the navigation pane, choose Security Groups.

  3. Choose Create Security Group.

  4. Enter a name of the security group (for example, my-security-group) and provide a description. Select the ID of your VPC from the VPC menu and choose Yes, Create.

デフォルトでは、新しいセキュリティグループには、すべてのトラフィックがインスタンスを出ることを許可するアウトバウンドルールのみが設定されています。任意のインバウンドトラフィックを許可するには、またはアウトバウンドトラフィックを制限するには、ルールを追加する必要があります。

ルールを追加および削除する

ルールを追加または削除すると、セキュリティグループに既に割り当てられているすべてのインスタンスが変更される可能性があります。Amazon EC2 API またはコマンドラインツールを使用している場合は、ルールを変更することはできません。ルールを追加および削除できるのみです。Amazon VPC コンソールを使用している場合は、既存のルールのエントリを変更できます (コンソールによってルールが削除され、新しいルールが追加されます)。

注記

VPC ピア接続がある場合は、セキュリティグループルールで、送信元または送信先としてピア VPC からセキュリティグループを参照できます。詳細については、Amazon VPC Peering Guide の「セキュリティグループを更新してピア VPC セキュリティグループを更新する」を参照してください。

To add a rule

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. In the navigation pane, choose Security Groups.

  3. Select the security group to update. The details pane displays the details for the security group, plus tabs for working with its inbound rules and outbound rules.

  4. On the Inbound Rules tab, choose Edit. Select an option for a rule for inbound traffic for Type, and then fill in the required information. For example, for a public web server, choose HTTP or HTTPS and specify a value for Source as 0.0.0.0/0. Choose Save.

    注記

    If you use 0.0.0.0/0, you enable all IPv4 addresses to access your instance using HTTP or HTTPS. To restrict access, enter a specific IP address or range of addresses.

  5. You can also allow communication between all instances associated with this security group. On the Inbound Rules tab, choose All Traffic from the Type list. Start typing the ID of the security group for Source; this provides you with a list of security groups. Select the security group from the list and choose Save.

  6. If you need to, you can use the Outbound Rules tab to add rules for outbound traffic.

To delete a rule

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. In the navigation pane, choose Security Groups.

  3. Select the security group to update. The details pane displays the details for the security group, plus tabs for working with its inbound rules and outbound rules.

  4. Choose Edit, select the role to delete, and then choose Remove, Save.

インスタンスのセキュリティグループを変更する

インスタンスを VPC に起動したら、インスタンスに関連付けられているセキュリティグループを変更できます。インスタンスの状態が running または stopped になったら、インスタンスのセキュリティグループを変更できます。

注記

この手順では、インスタンスのプライマリネットワークインターフェイス (eth0) に関連付けられているセキュリティグループを変更します。他のネットワークインターフェイスのセキュリティグループを変更するには、「ネットワークインターフェイスのセキュリティグループの変更」を参照してください。

To change an instance's security groups

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. In the navigation pane, choose Instances.

  3. Open the context (right-click) menu for the instance and choose Networking, Change Security Groups.

  4. In the Change Security Groups dialog box, select one or more security groups from the list and choose Assign Security Groups.

セキュリティグループの削除

セキュリティグループは、インスタンスが実行されているかどうかにかかわらず、そのグループに割り当てられていない場合にのみ削除できます。インスタンスは、セキュリティグループを削除する前に他のセキュリティグループに割り当てることができます (「インスタンスのセキュリティグループを変更する」を参照)。デフォルトのセキュリティグループを削除することはできません。

To delete a security group

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. In the navigation pane, choose Security Groups.

  3. Select the security group and choose Security Group Actions, Delete Security Group.

  4. In the Delete Security Group dialog box, choose Yes, Delete.

2009-07-15-default のセキュリティグループを削除する

2011 年 1 月 1 日より前の API バージョンを使用して作成された VPC には、2009-07-15-default セキュリティグループが含まれます。すべての VPC に含まれる通常の default セキュリティグループの他に、このセキュリティグループが存在します。インターネットゲートウェイは、2009-07-15-default セキュリティグループを含む VPC にアタッチすることはできません。したがって、VPC にインターネットゲートウェイをアタッチする前に、このセキュリティグループを削除する必要があります。

注記

このセキュリティグループを任意のインスタンスに割り当てている場合、そのセキュリティグループは、該当するインスタンスを別のセキュリティグループに割り当ててからでなければ、削除できません。

To delete the 2009-07-15-default security group

  1. Ensure that this security group is not assigned to any instances.

    1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

    2. In the navigation pane, choose Network Interfaces.

    3. Select the network interface for the instance from the list, and choose Change Security Groups, Actions.

    4. In the Change Security Groups dialog box, select a new security group from the list, and choose Save.

      注記

      When changing an instance's security group, you can select multiple groups from the list. The security groups that you select replace the current security groups for the instance.

    5. Repeat the preceding steps for each instance.

  2. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  3. In the navigation pane, choose Security Groups.

  4. Choose the 2009-07-15-default security group, then choose Security Group Actions, Delete.

  5. In the Delete Security Group dialog box, choose Yes, Delete.

API と CLI の概要

このページで説明しているタスクは、コマンドラインまたは API を使用して実行できます。コマンドラインインターフェイスの詳細および利用できる API の一覧については、「Amazon VPC へのアクセス」を参照してください。

セキュリティグループの作成

セキュリティグループにルールを追加する

1 つまたは複数のセキュリティグループについて説明する

インスタンスのセキュリティグループを変更する

セキュリティグループからルールを削除する

セキュリティグループを削除する