メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Linux インスタンスの Amazon EC2 セキュリティグループ

セキュリティグループは、1 つ以上のインスタンスのトラフィックを制御する仮想ファイアウォールとして機能します。インスタンスを起動するときに、1 つ以上のセキュリティグループとインスタンスを関連付けます。各セキュリティグループに対してルールを追加し、関連付けられたインスタンスに対するトラフィックを許可します。セキュリティグループルールはいつでも変更できます。新しいルールは、セキュリティグループに関連付けられているインスタンスすべてに自動的に適用されます。インスタンスに到達できるトラフィックを許可するかどうかの判断では、インスタンスに関連付けられているすべてのセキュリティグループのすべてのルールが評価されます。

Windows インスタンスへのトラフィックを許可する必要がある場合は、Windows インスタンスの Amazon EC2 ユーザーガイド の「Windows インスタンスの Amazon EC2 セキュリティグループ」を参照してください。

お客様の要件がセキュリティグループでは満たされない場合は、セキュリティグループを使用した上で、どのインスタンスでも、お客様独自のファイアウォールを維持できます。

アカウントは、いつ作成したかにより、一部のリージョンで EC2-Classic をサポートしている場合があります。詳細については、「サポートされているプラットフォーム」を参照してください。EC2-Classic のセキュリティグループは EC2-VPC のセキュリティグループとは異なります。

EC2-Classic 用セキュリティグループ

EC2-Classic を使用している場合は、EC2-Classic 用に作成したセキュリティグループを使用する必要があります。EC2-Classic でインスタンスを起動する場合は、インスタンスと同じリージョンのセキュリティグループを指定する必要があります。EC2-Classic でインスタンスを起動する場合は、VPC 用に作成したセキュリティグループは指定できません。

EC2-Classic でインスタンスを起動した後でセキュリティグループを変更することはできません。ただし、セキュリティグループルールの追加または削除は可能です。これらの変更は、セキュリティグループに関連付けられているすべてのインスタンスに自動的に適用されます。

EC2-Classic では、アカウントごとに各リージョンに最大 500 のセキュリティグループを持つことができます。1 つのインスタンスを最大 500 のセキュリティグループと関連付けることができ、また 1 つのセキュリティグループには最大 100 のルールを追加できます。

EC2-VPC 用セキュリティグループ

EC2-VPC を使用している場合は、VPC 用に作成したセキュリティグループを使用する必要があります。VPC でインスタンスを起動する場合は、その VPC 用のセキュリティグループを指定する必要があります。VPC でインスタンスを起動する場合は、EC2-Classic 用に作成したセキュリティグループは指定できません。セキュリティグループを識別する EC2-VPC のセキュリティグループには追加の機能がありますが、この機能は EC2-Classic のセキュリティグループではサポートされていません。詳細については、Amazon VPC ユーザーガイドの「EC2-Classic と EC2-VPC のセキュリティグループの違い」を参照してください。

VPC でインスタンスを起動した後、そのセキュリティグループを変更することができます。セキュリティグループはネットワークインターフェイスに関連付けられます。インスタンスのセキュリティグループの変更は、プライマリネットワークインターフェイス (eth0) に関連付けられるセキュリティグループを変更することになります。 詳細については、Amazon VPC ユーザーガイドChanging an Instance's Security Groups を参照してください。あらゆるネットワークインターフェイスに関連付けられているセキュリティグループも変更できます。詳細については、「セキュリティグループの変更」を参照してください。

EC2-VPC のセキュリティグループには異なる制限があります。詳細については、Amazon VPC ユーザーガイド の「Amazon VPC 制限」を参照してください。EC2-VPC のセキュリティグループ制限に対して、EC2-Classic のセキュリティグループ数はカウントされません。

VPC は IPv6 に対して有効にできます。詳細については、Amazon VPC ユーザーガイドの「VPC の IP アドレス指定」を参照してください。VPC セキュリティグループにルールを追加して、インバウンドとアウトバウンド IPv6 トラフィックを有効にできます。

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

セキュリティグループのルールは、セキュリティグループに関連付けられたインスタンスに到達することを許可されるインバウンドトラフィックと、外に向かうことを許可されるアウトバウンドトラフィックを制御します。

セキュリティグループのルールの特徴を次に示します。

  • デフォルトで、セキュリティグループはすべてのアウトバウンドトラフィックを許可します。

  • EC2-Classic セキュリティグループのアウトバウンドルールは変更できません。

  • セキュリティグループのルールは常にパーミッシブです。アクセスを拒否するルールを作成することはできません。

  • セキュリティグループはステートフルです。インスタンスからリクエストを送信する場合、そのリクエストのレスポンストラフィックは、インバウンドセキュリティグループルールにかかわらず、流れることができます。つまり、VPC セキュリティグループの場合、アウトバウンドルールにかかわらず、許可されたインバウンドトラフィックは流れることができます。詳細については、「接続追跡」を参照してください。

  • ルールの追加と削除は随時行うことができます。変更は、短時間が経過した後、セキュリティグループに関連付けられたインスタンスに自動的に適用されます。

    注記

    一部のルール変更の影響は、トラフィックの追跡方法によって異なる場合があります。詳細については、「接続追跡」を参照してください。

  • 複数のセキュリティグループをインスタンスに関連付けると、各セキュリティグループのルールが効率的に集約され、1 つのルールセットが作成されます。このルールセットを使用して、アクセスを許可するかどうかを判断します。

    注記

    複数のセキュリティグループを 1 つのインスタンスに割り当てることができるため、インスタンスには数百単位のルールを適用できます。結果として、インスタンスにアクセスするときに問題が発生する可能性があります。そのため、ルールは可能な限り要約することをお勧めします。

ルールごとに、以下の点について指定します。

  • プロトコル: 許可するプロトコル。最も一般的なプロトコルは、6 (TCP) 17 (UDP)、および 1 (ICMP) です。

  • ポートの範囲: TCP、UDP、またはカスタムプロトコルの場合、許可するポートの範囲。1 つのポート番号 (22 など)、または一定範囲のポート番号 (7000-8000 など) を指定できます。

  • ICMP タイプおよびコード: ICMP の場合、ICMP タイプおよびコードです。

  • 送信元または送信先: トラフィックの送信元 (インバウンドルール) または送信先 (アウトバウンドルール)。これらのオプションの 1 つを指定します。

    • 個別の IPv4 アドレス。IPv4 アドレスの後に /32 プレフィックスを使用する必要があります (例: 203.0.113.1/32)。

    • (VPC のみ) 個別の IPv6 アドレス。長さ /128 のプレフィックスを使用する必要があります (例: 2001:db8:1234:1a00::123/128)。

    • CIDR ブロック表記での IPv4 アドレスの範囲 (例: 203.0.113.0/24)。

    • (VPC のみ) CIDR ブロック表記での IPv6 アドレスの範囲 (例: 2001:db8:1234:1a00::/64)。

    • 別のセキュリティグループ。これにより、指定セキュリティグループに関連付けられたインスタンスから、このセキュリティグループに関連付けられたインスタンスへのアクセスが許可されます。その際、送信元セキュリティグループからこのセキュリティグループにルールが追加されることはありません。以下のセキュリティグループの 1 つを指定できます:

      • 現在のセキュリティグループ。

      • EC2-Classic: 同じリージョンの EC2-Classic の異なるセキュリティグループ.

      • EC2-Classic: 同じリージョンの別の AWS アカウントのセキュリティグループ (AWS アカウント ID をプレフィックスとして追加。たとえば、111122223333/sg-edcd9784)。

      • EC2-VPC: 同じ VPC または VPC ピア接続のピア VPC の別のセキュリティグループ。

ルールの送信元または送信先としてセキュリティグループを指定する場合、ルールはセキュリティグループと関連付けられるすべてのインスタンスに影響します。着信トラフィックは、ソースセキュリティグループに関連付けられたインスタンスのプライベート IP アドレスに基づいて許可されます (パブリック IP アドレスまたは Elastic IP アドレスは考慮されません)。IP アドレスについては、Amazon EC2 インスタンスの IP アドレッシング を参照してください。セキュリティグループルールでピア VPC のセキュリティグループを参照していて、参照先のセキュリティグループまたは VPC ピア接続を削除すると、ルールは古いとマークされます。詳細については、Amazon VPC Peering Guide の「古いセキュリティグループルールの操作」を参照してください。

特定のポートに複数のルールがある場合、最も許容度の大きいルールを適用します。たとえば、IP アドレス 203.0.113.1 からの TCP ポート 22 (SSH) に対するアクセスを許可するルールがあり、全員からの TCP ポート 22 に対するアクセスを許可する別のルールがある場合、全員が TCP ポート 22 にアクセスできます。

接続追跡

セキュリティグループは、接続追跡を使用してインスタンスを出入りするトラフィックに関する情報を追跡します。ルールはトラフィックの接続の状態に基づいて適用され、トラフィックを許可するか拒否するかが判断されます。これによって、セキュリティグループはステートフルになり、セキュリティグループのアウトバウンドルールにかかわらず、インバウンドトラフィックへの応答がインスタンスから外に流れることが許されます。逆も同じです。たとえば、自宅のコンピュータからインスタンスへの ICMP ping コマンドを開始した場合、セキュリティグループのインバウンドルールが ICMP トラフィックを許可している場合は接続に関する情報 (ポート情報など) が追跡されます。ping コマンドに対するインスタンスからのレスポンストラフィックは、新しいリクエストではなく確立済みの接続として追跡され、セキュリティグループのアウトバウンドルールがアウトバウンド ICMP トラフィックを制限している場合でも、インタンスから外に流れることが許されます。

すべてのトラフィックフローが追跡されるわけではありません。セキュリティグループのルールが、すべてのトラフィック (0.0.0.0/0) について TCP または UDP フローを許可していて、他の方向ですべての応答トラフィック (0.0.0.0/0) を許可するルールがある場合、そのトラフィックフローは追跡されません。そのため、応答トラフィックは追跡情報に基づくのではなく、応答トラフィックを許可するインバウンドまたはアウトバウンドのルールに基づいて流れることができます。次の例では、セキュリティグループに SSH、HTTP、および ICMP トラフィック別のインバウンドルールと、すべてのアウトバウンドトラフィックを許可するアウントバウンドルールがあります。

インバウンドルール
プロトコルのタイプ ポート番号 送信元 IP
TCP 22 (SSH) 203.0.113.1/32
TCP 80 (HTTP) 0.0.0.0/0
ICMP すべて 0.0.0.0/0
アウトバウンドルール
プロトコルのタイプ ポート番号 送信先 IP
すべて すべて 0.0.0.0/0

SSH トラフィックは、インバウンドルールで制限されるため、インスタンスへの出入りが追跡されます。ICMP トラフィックは、ルールにかかわらず、常に追跡されます。HTTP トラフィックは、インバウンドルールとアウトバウンドルールの両方ですべてが許可されるため、インスタンスへの出入りは追跡されません。

追跡されている既存のトラフィックフローは、そのフローを有効にするセキュリティグループルールを削除しても中断されないことがあります。その代わり、ユーザーまたは他のホストによって少なくとも数分間 (または確立された TCP 接続の場合は最大 5 日間) 停止されると、フローは中断されます。UDP の場合、このためにフローのリモート側でのアクションを終了する必要があることがあります。追跡されていないトラフィックフローは、そのフローを有効にするルールが削除または変更されるとすぐに中断されます。たとえば、インスタンスへのすべてのインバウンド SSH トラフィックを許可するルールを削除すると、そのインスタンスへの既存の SSH 接続がすぐに削除されます。

TCP、UDP、または ICMP 以外のプロトコルの場合は、IP アドレスとプロトコル番号のみが追跡されます。インスタンスが別のホスト (ホスト B) にトラフィックを送信し、ホスト B が元のリクエストまたは応答の 600 秒以内に別のリクエストで同じタイプのトラフィックをインスタンスに対して開始する場合、インスタンスはインバウンドセキュリティグループルールとは無関係に、そのトラフィックを受け入れます。これは、トラフィックがレスポンストラフィックと見なされるためです。

VPC セキュリティグループの場合、セキュリティグループルールを削除するとそのトラフィックがすぐに中断されるようにするか、すべてのインバウンドトラフィックがファイアウォールのルールに従うようにするには、サブネットにネットワーク ACL を使用できます。ネットワーク ACL はステートレスであるため、自動的にレスポンストラフィックを許可しません。詳しくは、Amazon VPC ユーザーガイド の「ネットワーク ACL」を参照してください。

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

AWS アカウントには、VPC および EC2-Classic のリージョンごとにデフォルトのセキュリティグループが自動的に設定されます。インスタンスを起動するときにセキュリティグループを指定しないと、そのインスタンスはデフォルトのセキュリティグループに自動的に関連付けられます。

デフォルトのセキュリティグループには default と名前が付けられ、AWS によって ID が割り当てられます。デフォルトのセキュリティグループごとのデフォルトルールを次に示します。

  • デフォルトのセキュリティグループに関連付けられた他のインスタンスからのすべてのインバウンドトラフィックを許可します (セキュリティグループはインバウンドルール内の送信元セキュリティグループとしてそれ自体を指定します)。

  • インスタンスからのすべてのアウトバウンドトラフィックが許可されます。

デフォルトのセキュリティグループのインバウンドルールは追加または削除できます。デフォルトの VPC セキュリティグループのアウトバウンドルールは追加または削除できます。

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

カスタムのセキュリティグループ

インスタンスでデフォルトのセキュリティグループを使用することを望まない場合、独自のセキュリティグループを作成して、インスタンスの起動時にそれらを指定することができます。複数のセキュリティグループを作成して、インスタンスが果たすさまざまな役割 (たとえば、Web サーバーまたはデータベースサーバー) を反映させることができます。

セキュリティグループを作成する場合、名前と説明を指定する必要があります。セキュリティグループには、255 文字以下の名前と説明を指定できます。また、次の特徴の制限があります。

  • EC2-Classic: ASCII 文字

  • EC2-VPC: a-z、A-Z、0-9、スペース、およびピリオド (.) _-:/()#,@[]+=&;{}!$*

作成するセキュリティグループのデフォルトルールを次に示します。

  • インバウンドトラフィックを許可しません

  • すべてのアウトバウンドトラフィックを許可します

セキュリティグループを作成したら、関連するインスタンスに到達できる着信トラフィックのタイプを反映するように着信ルールを変更できます。EC2-VPC では、アウトバウンドルールも変更できます。

セキュリティグループに追加できるルールのタイプの詳細については、「セキュリティグループのルールのリファレンス」を参照してください。

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

Amazon EC2 コンソールを使用して、セキュリティグループとセキュリティグループルールを作成、表示、更新、削除できます。

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

Amazon EC2 コンソールを使いカスタムセキュリティグループを作成することも可能です。EC2-VPC の場合、セキュリティグループを作成する VPC を指定する必要があります。

To create a new security group

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

  2. In the navigation pane, choose Security Groups.

  3. Choose Create Security Group.

  4. Specify a name and description for the security group.

  5. (EC2-Classic only) To create a security group for use in EC2-Classic, choose No VPC.

    (EC2-VPC) For VPC, choose a VPC ID to create a security group for that VPC.

  6. You can start adding rules, or you can choose Create to create the security group now (you can always add rules later). For more information about adding rules, see セキュリティグループへのルールの追加.

Amazon EC2 コンソールでは、既存のセキュリティグループから新しいセキュリティグループにルールをコピーできます。

To copy a security group

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

  2. In the navigation pane, choose Security Groups.

  3. Select the security group you want to copy, choose Actions, Copy to new.

  4. The Create Security Group dialog opens, and is populated with the rules from the existing security group. Specify a name and description for your new security group. In the VPC list, choose No VPC to create a security group for EC2-Classic, or choose a VPC ID to create a security group for that VPC. When you are done, choose Create.

インスタンスを起動する際に、インスタンスにセキュリティグループを割り当てることができます。ルールを追加または削除すると、それらの変更は、そのセキュリティグループを割り当てたすべてのインスタンスに自動的に適用されます。

EC2-Classic でインスタンスを起動した後でセキュリティグループを変更することはできません。VPC でインスタンスを起動した後、そのセキュリティグループを変更することができます。詳細については、Amazon VPC ユーザーガイドChanging an Instance's Security Groups を参照してください。

セキュリティグループについて説明する

To describe your security groups for EC2-Classic

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

  2. In the navigation pane, choose Security Groups.

  3. Select Network Platforms from the filter list, then choose EC2-Classic.

  4. Select a security group. The Description tab displays general information. The Inbound tab displays the inbound rules.

To describe your security groups for EC2-VPC

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

  2. In the navigation pane, choose Security Groups.

  3. Select Network Platforms from the filter list, then choose EC2-VPC.

  4. Select a security group. We display general information in the Description tab, inbound rules on the Inbound tab, and outbound rules on the Outbound tab.

セキュリティグループへのルールの追加

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

特定のタイプのアクセスのためのセキュリティグループルールの選択の詳細については、「セキュリティグループのルールのリファレンス」を参照してください。

To add rules to a security group

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

  2. In the navigation pane, choose Security Groups and select the security group.

  3. On the Inbound tab, choose Edit.

  4. In the dialog, choose Add Rule and do the following:

    • For Type, select the protocol.

    • If you select a custom TCP or UDP protocol, specify the port range in Port Range.

    • If you select a custom ICMP protocol, choose the ICMP type name from Protocol, and, if applicable, the code name from Port Range.

    • For Source, choose one of the following:

      • Custom: in the provided field, you must specify an IP address in CIDR notation, a CIDR block, or another security group.

      • Anywhere: automatically adds the 0.0.0.0/0 IPv4 CIDR block. This option enables all traffic of the specified type to reach your instance. This is acceptable for a short time in a test environment, but it's unsafe for production environments. In production, authorize only a specific IP address or range of addresses to access your instance.

        注記

        If your security group is in a VPC that's enabled for IPv6, the Anywhere option creates two rules—one for IPv4 traffic (0.0.0.0/0) and one for IPv6 traffic (::/0).

      • My IP: automatically adds the public IPv4 address of your local computer.

    For more information about the types of rules that you can add, see セキュリティグループのルールのリファレンス.

  5. Choose Save.

  6. For a VPC security group, you can also specify outbound rules. On the Outbound tab, choose Edit, Add Rule, and do the following:

    • For Type, select the protocol.

    • If you select a custom TCP or UDP protocol, specify the port range in Port Range.

    • If you select a custom ICMP protocol, choose the ICMP type name from Protocol, and, if applicable, the code name from Port Range.

    • For Destination, choose one of the following:

      • Custom: in the provided field, you must specify an IP address in CIDR notation, a CIDR block, or another security group.

      • Anywhere: automatically adds the 0.0.0.0/0 IPv4 CIDR block. This option enables outbound traffic to all IP addresses.

        注記

        If your security group is in a VPC that's enabled for IPv6, the Anywhere option creates two rules—one for IPv4 traffic (0.0.0.0/0) and one for IPv6 traffic (::/0).

      • My IP: automatically adds the IP address of your local computer.

  7. Choose Save.

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

セキュリティグループからルールを削除すると、その変更内容が自動的にセキュリティグループに関連付けられているインスタンスに適用されます。

To delete a security group rule

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

  2. In the navigation pane, choose Security Groups.

  3. Select a security group.

  4. On the Inbound tab (for inbound rules) or Outbound tab (for outbound rules), choose Edit. Choose Delete (a cross icon) next to each rule to delete.

  5. Choose Save.

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

インスタンスに関連付けられているセキュリティグループを削除することはできません。デフォルトセキュリティグループを削除することはできません。同じ VPC の他のセキュリティグループのルールによって参照されているセキュリティグループは削除できません。セキュリティグループが独自のいずれかのルールで参照されている場合は、セキュリティグループを削除する前に、まずルールを削除する必要があります。

To delete a security group

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

  2. In the navigation pane, choose Security Groups.

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

  4. Choose Yes, Delete.

API とコマンドの概要

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

コマンドラインツールを使用する際に、デフォルト以外の VPC 用のセキュリティグループを指定する場合、セキュリティグループ名ではなくセキュリティグループ ID を使用して、セキュリティグループを識別する必要があります。

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

1 つ以上の Ingress ルールをセキュリティグループに追加する

[EC2-VPC] 1 つ以上の Egress ルールをセキュリティグループに追加する

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

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

セキュリティグループから 1 つ以上の Ingress ルールを削除する

[EC2-VPC] 1 つ以上の Egress ルールをセキュリティグループから削除する

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