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

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

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

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

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

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

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

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

Note

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

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

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

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

セキュリティグループルールは変更でき、この変更はセキュリティグループに関連付けられているすべてのインスタンスに自動的に適用されます。

Note

EC2-VPC では、1 つのインスタンスを最大 5 つのセキュリティグループと関連付けることができ、また 1 つのセキュリティグループには最大 50 のルールを追加できます。

CLI または API アクションに対して、デフォルト以外の VPC 用のセキュリティグループを指定する場合、セキュリティグループ名ではなくセキュリティグループ ID を使用して、セキュリティグループを識別する必要があります。

セキュリティグループを識別する EC2-VPC のセキュリティグループには追加の機能がありますが、この機能は EC2-Classic のセキュリティグループではサポートされていません。EC2-VPC のセキュリティグループの詳細については、Amazon VPC ユーザーガイド の「VPC のセキュリティグループ」と「EC2-Classic と EC2-VPC のセキュリティグループの違い」を参照してください。

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

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

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

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

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

  • ルールの追加と削除は随時行うことができます。EC2-Classic のアウトバウンドルールは変更できません。Amazon EC2 コンソールを使用する場合、既存のルールを変更することができ、既存のセキュリティグループから新しいセキュリティグループにルールをコピーすることもできます。

  • ルールを追加または削除すると、トラフィックの接続追跡に応じて短時間が経過した後、変更はセキュリティグループに関連付けられたインスタンスに自動的に適用されます。詳細については、「接続追跡」を参照してください。

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

    Note

    インスタンス (ホスト A) がホスト B へのトラフィックを開始し、TCP、UDP、または ICMP 以外のプロトコルを使用する場合、インスタンスのファイアウォールは、ホスト B からのレスポンストラフィックを許可するために、IP アドレスとプロトコル番号の追跡のみを行います。ホスト B が元のリクエストまたはレスポンスの 600 秒以内に別のリクエストでインスタンスへのトラフィックを開始する場合、これはレスポンストラフィックと見なされるため、インスタンスはインバウンドセキュリティグループルールにかかわらずそれを受け入れます。VPC セキュリティグループの場合、セキュリティグループのアウトバウンドルールを変更して、特定のタイプのアウトバウンドトラフィックのみを許可することで、これを制御できます。または、サブネット用にネットワーク ACL を使用できます。ネットワーク ACL はステートレスであり、レスポンストラフィックを自動的に許可しません。詳しくは、『Amazon VPC ユーザーガイド』の「ネットワーク ACL」を参照してください。

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

  • 許可するプロトコル (TCP、UDP、ICMP など)

  • TCP および UDP、またはカスタムプロトコル: 許可するポートの範囲

  • ICMP: ICMP タイプおよびコード

  • 1 つのオプション、または送信元(インバウンドルール)または送信先(アウトバウンドルール)の以下のオプション:

    • 個別の IP アドレス(CIDR 表記)。IP アドレスの後には必ず /32 プレフィックスを付けてください。IP アドレスの後に /0 プレフィックスを付けると、ポートがすべてのユーザーに開放されます。たとえば、IP アドレス 203.0.113.1203.0.113.1/32 のように指定します。

    • CIDR 表記の IP アドレスの範囲(たとえば、203.0.113.0/24)。

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

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

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

      • EC2-VPC: 同じ VPC の異なるセキュリティグループ

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

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

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

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

Caution

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

セキュリティグループルールの作成により、パス MTU 検出を正しく機能させる方法の詳細については、「パス MTU 検出」を参照してください。

接続追跡

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

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

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

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

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

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

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

  • デフォルトのセキュリティグループと関連付けられている他のインスタンスからのインバウンドトラフィックのみを許可する

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

デフォルトのセキュリティグループは、それ自体を、そのインバウンドルール内の送信元セキュリティグループとして指定します。これは、デフォルトのセキュリティグループと関連付けられているインスタンスが、デフォルトのセキュリティグループと関連付けられている他のインスタンスと通信することを許可するものです。

デフォルトのセキュリティグループルールは変更できます。たとえば、特定のホストがインスタンスを管理できるように、SSH 接続を許可するインバウンドルールを追加できます。

デフォルトのセキュリティグループを削除することはできません。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 サーバーまたはデータベースサーバー)を反映させることができます。Web サーバーまたはデータベースサーバーのセキュリティグループを作成する手順については、Amazon VPC ユーザーガイド の「Recommended Security Groups」を参照してください。

Note

EC2-Classic では、アカウントごとに各リージョンに最大 500 個のセキュリティグループを作成できます。EC2-VPC では、VPC ごとに最大 500 個のセキュリティグループを作成できます。EC2-VPC のセキュリティグループ制限に対して、EC2-Classic のセキュリティグループ数はカウントされません。

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

  • EC2-Classic: ASCII 文字

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

AWS は各セキュリティグループに sg-xxxxxxxx の形式で一意の ID を割り当てます。作成するセキュリティグループの初期設定を次に示します。

  • 着信トラフィックを許可しない

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

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

同じセキュリティグループのインスタンスが相互に通信できるようにするには、そのためのルールを明示的に追加する必要があります。次の表は、EC2-Classic のインスタンスの相互通信を許可するために、セキュリティグループに追加する必要のあるルールを示します。

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

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

ICMP

すべて

このセキュリティグループに関連付けられている他のインスタンスからのインバウンド ICMP アクセスを許可する

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

TCP

0 – 65535

このセキュリティグループに関連付けられている他のインスタンスからのインバウンド TCP アクセスを許可する

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

UDP

0 – 65535

このセキュリティグループに関連付けられている他のインスタンスからのインバウンド UDP アクセスを許可する

次の表は、VPC のインスタンスの相互通信を許可するために、セキュリティグループに追加する必要のあるルールを示します。

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

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

すべて

すべて

このセキュリティグループに関連付けられている他のインスタンスからのインバウンドトラフィックを許可する

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

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

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

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

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

  4. セキュリティグループの名前と説明を指定します。[VPC] の場合、[No VPC] を選択して、EC2-Classic のセキュリティグループを作成します。その VPC のセキュリティグループを作成するには、VPC ID を選択します。

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

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

  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. セキュリティグループを選択します。

  4. Web サーバーを許可して、すべての HTTP および HTTPS インバウンドトラフィックを受信します。[Inbound ] タブで、[Edit] を選択します。 ダイアログで、[Add Rule] を選択します。[Type] リストから [HTTP] を選択し、ソースを [Anywhere] のままにしておきます(0.0.0.0/0)。HTTPS プロトコルに類似のルールを追加します。

    HTTP および HTTPS ルールをセキュリティグループに追加する
  5. Linux インスタンスに接続するには、SSH を許可する必要があります。[Add Rule] を選択し、[Type] リストから [SSH] を選択します。

    [Source] フィールドで、コンピュータのパブリック IP アドレスを CIDR 表記で指定します。たとえば、IP アドレスが 203.0.113.25 の場合、この単一の IP アドレスを CIDR 表記でリストするには 203.0.113.25/32 と指定します。会社が特定の範囲からアドレスを割り当てている場合、範囲全体(203.0.113.0/24など)を指定します。[Source] リストから [My IP] を選択すると、お使いのコンピュータの IP アドレスが自動的にフィールドに入力されます。ただし、ISP 経由で、またはファイアウォールの内側から静的な IP アドレスなしで接続している場合は、クライアントコンピュータで使用されている IP アドレスの範囲を見つける必要があります。

    Caution

    0.0.0.0/0 を使用すると、すべての IP アドレスから SSH を使用してインスタンスにアクセスすることが許可されます。これはテスト環境で短時間なら許容できますが、実稼働環境で行うのは安全ではありません。実稼働環境では、特定の IP アドレスまたは特定のアドレス範囲にのみ、インスタンスへのアクセスを限定します。

  6. このセキュリティグループに関連付けられているすべてのインスタンス間、または他のセキュリティグループに関連付けたインスタンスとこのセキュリティグループに関連付けられたインスタンス間の通信を許可できます。[Add Rule] を選択し、[All ICMP] を選択して、[Source] にセキュリティグループの ID を入力し始めると、セキュリティグループのリストが表示されます。リストからセキュリティグループを選択します。TCP と UDP プロトコルの手順を繰り返します。完了したら、[Save] を選択します。

    関連付けられているインスタンス間の通信ルールを追加します
  7. VPC のセキュリティグループを作成する場合は、アウトバウンドルールも指定できます。例については、Amazon VPC ユーザーガイドの「Adding and Removing Rules」を参照してください。

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

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

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

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

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

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

  4. [Edit] を選択し、削除する各ルールの隣にある [Delete] (クロスアイコン) を選択します。

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

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

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

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

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

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

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

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

API とコマンドの概要

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

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

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

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

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

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

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

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

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