メニュー
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 を指定する必要があります。

新しいセキュリティグループを作成するには

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

  2. ナビゲーションペインで、[Security Groups] を選択します。

  3. [Create Security Group] を選択します。

  4. セキュリティグループの名前と説明を指定します。

  5. (EC2-Classic のみ) EC2-Classic で使用するセキュリティグループを作成するには、[No VPC] を選択します。

    (EC2-VPC) [VPC] の場合、VPC ID を選択して、その VPC 用にセキュリティグループを作成します。

  6. ルールの追加を開始するか、[Create] を選択して、セキュリティグループを作成できます (ルールは後で追加できます)。ルールの追加の詳細については、セキュリティグループへのルールの追加 を参照してください。

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

セキュリティグループをコピーするには

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

  2. ナビゲーションペインで、[Security Groups] を選択します。

  3. コピーするセキュリティグループを選択します。[Actions] を選択し、[Copy to new] を選択します。

  4. [Create Security Group] ダイアログが開き、既存のセキュリティグループのルールが自動入力されます。新しいセキュリティグループの名前と説明を指定します。[VPC] リストで、[No VPC] を選択して、EC2-Classic のセキュリティグループを作成します。その VPC のセキュリティグループを作成するには、VPC ID を選択します。終了したら、[Create ] を選択します。

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

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

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

EC2-Classic のセキュリティグループについて説明するには

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

  2. ナビゲーションペインで、[Security Groups] を選択します。

  3. フィルタリストから [Network Platforms] を選択し、[EC2-Classic] を選択します。

  4. セキュリティグループを選択します。[Description] タブに、全般的な情報が表示されます。[Inbound] タブにはインバウンドルールが表示されます。

EC2-VPC のセキュリティグループについて説明するには

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

  2. ナビゲーションペインで、[Security Groups] を選択します。

  3. フィルタリストから [Network Platforms] を選択し、[EC2-VPC] を選択します。

  4. セキュリティグループを選択します。[Description] タブには一般情報が、[Inbound] タブにはインバウンドルールが、[Outbound] タブにはアウトバウンドルールが表示されます。

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

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

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

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

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

  2. ナビゲーションペインで [Security Groups] を選択してセキュリティグループを選びます。

  3. [Inbound ] タブで、[Edit] を選択します。

  4. ダイアログで、[Add Rule] を選択し、以下の作業を行います。

    • [Type] で、プロトコルを選択します。

    • カスタム TCP または UDP プロトコルを選択した場合は、[Port Range] でポートの範囲を指定します。

    • カスタム ICMP プロトコルを選択する場合は、[Protocol] から ICMP タイプ名を選択し、該当する場合は、[Port Range] からコード名を選択します。

    • [Source] で、以下のいずれかのオプションを選択します。

      • [Custom]: 表示されているフィールドで、CIDR 表記の IP アドレス、CIDR ブロック、または他のセキュリティグループを指定する必要があります。

      • [Anywhere]: 自動的に 0.0.0.0/0 IPv4 CIDR ブロックを追加します。このオプションでは、指定されたタイプのすべてのトラフィックがインスタンスに到達できます。これはテスト環境で短時間なら許容できますが、実稼働環境で行うのは安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアドレス範囲にのみ、インスタンスへのアクセスを限定します。

        注記

        セキュリティグループが、IPv6 に対して有効な VPC にある場合、[Anywhere] オプションによって 2 つのルールが作成されます。1 つは IPv4 トラフィック (0.0.0.0/0) 用、もう 1 つは IPv6 トラフィック (::/0) 用です。

      • [My IP]: ローカルコンピュータのパブリック IPv4 アドレスを自動的に追加します。

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

  5. [Save] を選択します。

  6. VPC セキュリティグループの場合、アウトバウンドルールも指定できます。[Outbound] タブで [Edit]、[Add Rule] を選択し、以下の操作を実行します。

    • [Type] で、プロトコルを選択します。

    • カスタム TCP または UDP プロトコルを選択した場合は、[Port Range] でポートの範囲を指定します。

    • カスタム ICMP プロトコルを選択する場合は、[Protocol] から ICMP タイプ名を選択し、該当する場合は、[Port Range] からコード名を選択します。

    • [Destination] で、以下のいずれかのオプションを選択します。

      • [Custom]: 表示されているフィールドで、CIDR 表記の IP アドレス、CIDR ブロック、または他のセキュリティグループを指定する必要があります。

      • [Anywhere]: 自動的に 0.0.0.0/0 IPv4 CIDR ブロックを追加します。このオプションでは、すべての IP アドレスへのアウトバウンドトラフィックが有効になります。

        注記

        セキュリティグループが、IPv6 に対して有効な VPC にある場合、[Anywhere] オプションによって 2 つのルールが作成されます。1 つは IPv4 トラフィック (0.0.0.0/0) 用、もう 1 つは IPv6 トラフィック (::/0) 用です。

      • [My IP]: ローカルコンピュータの IP アドレスを自動的に追加します。

  7. [Save] を選択します。

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

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

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

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

  2. ナビゲーションペインで、[Security Groups] を選択します。

  3. セキュリティグループを選択します。

  4. [Inbound] タブ (インバウンドルールの場合) または [Outbound] タブ (アウトバウンドルールの場合) で、[Edit] を選択します。各ルールの横にある [Delete] (クロスアイコン) を選択します。

  5. [Save] を選択します。

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

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

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

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

  2. ナビゲーションペインで、[Security Groups] を選択します。

  3. セキュリティグループを選択して、[Actions]、[Delete Security Group] を選択します。

  4. [Yes, Delete] を選択します。

API とコマンドの概要

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

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

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

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

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

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

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

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

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

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