セキュリティグループルールを使用して、Elastic Compute Service (ECS) インスタンスのインバウンドトラフィックとアウトバウンドトラフィックを管理できます。 セキュリティグループルールは、特定のネットワークトラフィックを許可または拒否する、不要なポートを閉じる、特定のプロトコルのトラフィックを制限する、アプリケーションのアクセス許可を構成するなど、さまざまなシナリオに適しています。 このトピックでは、セキュリティグループルールの追加、変更、クエリ、削除、インポート、およびエクスポートの方法について説明します。
手順
セキュリティグループルールを管理する前に、次の項目に注意してください。
セキュリティグループのインバウンドルールを構成して、セキュリティグループ内の ECS インスタンスへのトラフィックを制御し、アウトバウンドルールを構成してインスタンスからのトラフィックを制御できます。 1 つの ECS インスタンスが属する複数のセキュリティグループのルールは、順番にソートされます。 セキュリティグループルールは、ECS インスタンスのインバウンドまたはアウトバウンドネットワークトラフィックを許可または拒否するために使用されます。
セキュリティグループの機能と使用方法の提案については、「概要」をご参照ください。
カスタムセキュリティグループルールに加えて、セキュリティグループには、有効であるが非表示のデフォルトのアクセス制御ルールが含まれています。 詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。
セキュリティグループルールの構成とセキュリティグループルールのソートポリシーについては、「セキュリティグループルール」をご参照ください。
セキュリティグループに含めることができるルールは限られています。 最小数のルールを追加することをお勧めします。 詳細については、「制限」トピックの「セキュリティグループ」セクションをご参照ください。
シナリオ
ECS インスタンスが外部サービスを提供する必要がある場合は、インバウンドアクセスを許可するインバウンドセキュリティグループルールを追加できます。
ECS インスタンスが攻撃を受けている場合は、インバウンドアクセスを拒否するインバウンドセキュリティグループルールを追加できます。
ECS インスタンスが外部ネットワークにアクティブに接続するようにするには、セキュリティグループの種類と内部接続ポリシーに基づいて、アウトバウンドアクセスを許可するアウトバウンドセキュリティグループルールを追加するかどうかを決定する必要があります。
アウトバウンドまたはインバウンドトラフィックを制御したくない場合は、対応する方向のセキュリティグループルールを削除できます。
セキュリティグループ内のルールを他のセキュリティグループにすばやくコピーする場合は、セキュリティグループルールをエクスポートおよびインポートできます。 詳細については、このトピックの「セキュリティグループルールのインポートとエクスポート」セクションをご参照ください。
セキュリティグループが適しているその他のシナリオについては、「セキュリティグループの使用ガイドラインとユースケース」をご参照ください。
セキュリティグループルールの追加
セキュリティグループルールは、操作、優先度、プロトコルタイプ、ポート範囲、権限付与オブジェクトなどの属性によって定義されます。 トラフィックがセキュリティグループルールの権限付与オブジェクト、ポート範囲、およびプロトコルタイプと一致する場合、トラフィックはセキュリティグループルールと一致します。 次に、システムは、セキュリティグループルールで定義されている優先度と操作に基づいて、トラフィックが許可されるかどうかを判断します。 トラフィックがセキュリティグループルールと一致しない場合は、デフォルトのセキュリティグループルールが使用されます。
権限付与オブジェクト:インバウンドルールのトラフィックの送信元、またはアウトバウンドルールのトラフィックの宛先。 複数の IP アドレス、セキュリティグループ、およびプレフィックスリストを構成できます。
セキュリティグループルールでセキュリティグループとプレフィックスリストを権限付与オブジェクトとして指定すると、セキュリティグループルールは、指定されたセキュリティグループとプレフィックスリスト内のすべての IP アドレスに適用されます。
異なるセキュリティグループのリソースが相互に通信できるようにするには、セキュリティグループ間で相互アクセスを許可するようにセキュリティグループルールを構成する必要があります。 内部ネットワーク経由でアクセスを許可するには、CIDR ブロックではなく、セキュリティグループを権限付与オブジェクトとして指定する必要があります。
デフォルトでは、クラシックネットワークにある ECS インスタンスの内部ネットワークへのアクセスを許可するインバウンドセキュリティグループルールはありません。 セキュリティ上の理由から、CIDR ブロックに基づいてアクセスを有効にしないことをお勧めします。
ポート範囲:トラフィックの照合に使用されるポート。 セキュリティグループルールでポート範囲またはポートリストを指定できます。 ポートリストを指定すると、ポートリストに含まれるすべてのポートがルールによって制限されます。 詳細については、「共通ポート」をご参照ください。
プロトコルタイプ:トラフィックのプロトコルタイプ。
TCP は、Web 閲覧、電子メール送信、リモートログイン、ファイルのアップロードとダウンロードなど、高い信頼性を必要とするアプリケーションに主に適しています。
UDP は、オンラインゲームやビデオ会議など、精度よりも速度の要件が高いアプリケーションに主に適しています。
インターネット制御メッセージプロトコル (ICMP) は、主に、ping コマンドの使用、エラーレポートと診断情報の送信など、シナリオでネットワークデバイス間で制御情報を送信するために使用されます。
Generic Routing Encapsulation (GRE) は、主に、高いセキュリティを必要とし、データが異なるネットワーク間で送信されるアプリケーション (IP over IP など) に適しています。
優先度:一致するトラフィックの優先度。 値 1 は最高の優先度を示します。
優先度が異なるルールの場合、トラフィックは優先度の高いルールと照合されます。 優先度の高いルールがトラフィックと一致する場合、ルールで指定された操作がトラフィックで実行され、優先度の低いルールはトラフィックに適用されません。
優先度が同じだが操作が異なるルールの場合、拒否ルールが適用されます。 拒否ルールがトラフィックと一致しない場合は、許可ルールが適用されます。
操作:トラフィックを許可するか拒否するかを指定します。
セキュリティグループルールで指定されたポートに対応するアプリケーションが起動され、ポートが 0.0.0.0 でリッスンするように構成されていることを確認してください。 現在のポートステータスを表示する方法については、「インスタンスにデプロイされたサービスにアクセスできない場合はどうすればよいですか?」トピックの「サービスのステータスとサービスのポートのリッスンステータスを確認する」セクションをご参照ください。
ECS コンソールを使用する
ECS コンソール - セキュリティグループ に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[セキュリティグループ] ページで、管理するセキュリティグループを見つけ、[操作] 列の [ルールの管理] をクリックします。
方法 1:セキュリティグループルールをすばやく追加する
この方法は、一般的な TCP ルールを構成するのに適しています。 [クイック追加] をクリックします。 [クイック追加] ダイアログボックスで、[操作] と [権限付与オブジェクト] を構成し、1 つ以上のポートを選択します。
[クイック追加] ダイアログボックスのポート範囲に、許可または拒否するポートが含まれていない場合は、ポートを選択してセキュリティグループルールを作成し、ルールのポート範囲を変更できます。 方法 2:セキュリティグループルールを手動で追加する を使用して、必要なポートを指定することもできます。
方法 2:セキュリティグループルールを手動で追加する
操作、優先度、プロトコルタイプ、ポート範囲、権限付与オブジェクトなどのパラメータを構成して、セキュリティグループルールを追加します。 次の手順を実行します。
[ルールの追加] をクリックします。
ルールリストで、新しいセキュリティグループルールを構成し、[操作] 列の [保存] をクリックします。
セキュリティグループルールの構成方法については、「セキュリティグループルール」をご参照ください。
API 操作を呼び出す
5 タプルのルールを使用して、ECS インスタンスのインバウンドトラフィックとアウトバウンドトラフィックを制御できます。 5 タプルのルールには、送信元 IP アドレス、送信元ポート、宛先 IP アドレス、宛先ポート、およびプロトコルタイプが含まれます。 5 タプルのルールは、既存のセキュリティグループルールと完全に互換性があります。 API 操作を呼び出して、セキュリティグループの 5 タプルのルールを構成できます。 詳細については、「セキュリティグループルール」トピックの「セキュリティグループのトライアドルールとクインティプルルール」セクションをご参照ください。
AuthorizeSecurityGroup 操作を呼び出して、インバウンドセキュリティグループルールを追加します。
AuthorizeSecurityGroupEgress 操作を呼び出して、アウトバウンドセキュリティグループルールを追加します。
セキュリティグループルールの変更
セキュリティグループルールを変更すると、新しいセキュリティグループルールはすぐに有効になります。変更されたセキュリティグループルールがビジネス要件を満たし、ネットワークセキュリティを確保するために、ネットワークトラフィックとネットワーク接続を監視する必要がある場合があります。詳細については、「CloudMonitor とは」をご参照ください。
ECS コンソールを使用する
ECS console - Security Groups に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[セキュリティグループ] ページで、セキュリティグループルールを変更するセキュリティグループを見つけ、[操作] 列の [ルールを管理] をクリックします。
変更するセキュリティグループルールを見つけ、[アクション] 列の [編集] をクリックします。ルールを変更し、[保存] をクリックします。
API オペレーションを呼び出す
ModifySecurityGroupRule オペレーションを呼び出して、セキュリティグループのインバウンドルールを変更します。
ModifySecurityGroupEgressRule オペレーションを呼び出して、セキュリティグループのアウトバウンドルールを変更します。
セキュリティグループルールのクエリ
セキュリティグループのヘルスチェックを実行して、冗長なルールを特定できます。これは、セキュリティグループの構成を簡素化し、管理ワークロードを削減し、ネットワーク管理を容易にし、セキュリティの脆弱性によってもたらされるリスクを軽減するのに役立ちます。
ECS コンソールを使用する
方法 1:単一のセキュリティグループのルールを表示する
ECS console - Security Groups に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[セキュリティグループ] ページで、セキュリティグループルールを表示するセキュリティグループを見つけ、[操作] 列の [ルールの管理] をクリックします。
表示するルールのタイプに基づいて、[インバウンド] タブまたは [アウトバウンド] タブをクリックします。
説明ルールリストの上にある検索ボックスに、ポートまたは権限付与オブジェクトを入力して、セキュリティグループルールを検索します。
方法 2:ECS インスタンスが追加されている複数のセキュリティグループのすべてのルールを表示する
ECS console - Instance に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
セキュリティグループルールを表示するインスタンスを見つけ、インスタンス ID をクリックして [インスタンスの詳細] ページに移動します。
[セキュリティグループ] タブで、インスタンスが追加されているすべてのセキュリティグループを表示します。
各セキュリティグループに対応する [操作] 列の [ルールの管理] をクリックして、すべてのセキュリティグループのルールを表示します。
API オペレーションを呼び出す
DescribeSecurityGroupAttribute オペレーションを呼び出して、1 つ以上のセキュリティグループルールをクエリします。
セキュリティグループルールの削除
セキュリティグループルールを削除する前に、この削除操作の影響を理解し、セキュリティグループルールの誤削除による不要なネットワークセキュリティの問題を回避してください。削除したセキュリティグループルールを使用する場合は、同じルールを作成してください。
ECS コンソールを使用する
ECS コンソール - セキュリティグループ に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[セキュリティグループ] ページで、セキュリティグループルールを削除するセキュリティグループを見つけ、[操作] 列の [ルールの管理] をクリックします。
削除するセキュリティグループルールを見つけ、[アクション] 列の [削除] をクリックします。
[セキュリティグループルールの削除] メッセージで、ルール情報が正しいことを確認し、[OK] をクリックします。
API オペレーションを呼び出す
1 つ以上のセキュリティグループのインバウンドルールを削除するには、RevokeSecurityGroup オペレーションを呼び出します。
1 つ以上のセキュリティグループのアウトバウンドルールを削除するには、RevokeSecurityGroupEgress オペレーションを呼び出します。
セキュリティグループの冗長ルールの確認
セキュリティグループのヘルスチェックを実行して、セキュリティグループ内の冗長ルールを特定できます。ルール A の優先度がルール B よりも低く、ルール B にルール A のすべての条件が含まれている場合、ルール A は冗長ルールと見なされます。冗長ルールが存在する場合は、ルールの数が上限に達するのを防ぐために、ルールを削除することをお勧めします。
各セキュリティグループには、限られた数のルールを含めることができます。また、ECS インスタンス上の各 Elastic Network Interface (ENI) は、限られた数のセキュリティグループルールに関連付けることができます。セキュリティグループルールの制限とクォータの詳細については、「制限」トピックのセキュリティグループセクションをご参照ください。
ECS コンソールの使用
ECS コンソール - セキュリティグループに移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[セキュリティグループ] ページで、セキュリティグループルールをクエリするセキュリティグループを見つけ、[ルールを管理] 列の [操作] をクリックします。
[アクセスルール] セクションで、
をクリックします。
[ヘルスチェック] ダイアログボックスで、冗長なルールが存在するかどうかを確認します。
次の図は、セキュリティグループに 2 つの重複ルールが含まれていることを示しています。
冗長ルールを選択し、[OK] をクリックしてルールを削除します。
セキュリティグループルールのインポートとエクスポート
ECS コンソールでは、セキュリティグループルールをエクスポートおよびインポートできます。この機能は、セキュリティグループルールのバックアップ、復元、移行などのシナリオに適しています。
セキュリティグループルールをインポートする前に、インポートの失敗を防ぐために、次の制限が満たされていることを確認してください。
セキュリティグループルールの優先度は 1 ~ 100 です。セキュリティグループルールの優先度が 100 を超える場合は、インポートするルールからそのルールを削除し、残りのルールをインポートしてから、削除したルールを ECS コンソールで作成する必要があります。
セキュリティグループルールは、ECS コンソールで JSON または CSV ファイルとしてコンピュータにエクスポートしてバックアップできます。ファイル形式が正しく、ファイルが Alibaba Cloud セキュリティグループルールファイルの命名規則に従っていることを確認してください。
一度に 200 以下のルールをインポートすることをお勧めします。
リージョンをまたいでルールをインポートする場合、ルール内の権限付与オブジェクトをセキュリティグループまたはプレフィックスリストにすることはできず、ルール内のポート範囲をポートリストにすることはできません。
ECS コンソールの使用
ECS コンソール - セキュリティグループ に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[セキュリティグループ] ページで、セキュリティグループルールをエクスポートするセキュリティグループを見つけ、[操作] 列の [ルールの管理] をクリックします。
[アクセスルール] セクションで、セキュリティグループルールをインポートまたはエクスポートします。
セキュリティグループルールのインポート
をクリックします。[セキュリティグループルールのインポート] ダイアログボックスで、[ファイルを選択] をクリックし、インポートする JSON または CSV ファイルを選択します。次に、[開始] をクリックします。
セキュリティグループルールがインポートチェックに失敗した場合は、警告アイコンにポインターを移動して、失敗の詳細を表示できます。
セキュリティグループルールのエクスポート
をクリックし、ファイル形式を選択して、セキュリティグループルールをその形式のファイルとしてコンピュータにエクスポートします。
JSON 形式
エクスポートされた JSON ファイルは、次の命名規則に準拠しています。
ecs_${regionID}_${groupID}.json
regionID
がcn-qingdao
で、groupID
がsg-123
の場合、エクスポートされた JSON ファイルの名前はecs_cn-qingdao_sg-123.json
です。CSV 形式
エクスポートされた CSV ファイルは、次の命名規則に準拠しています。
ecs_sgRule_${groupID}_${regionID}_${time}.csv
regionID
がcn-qingdao
、groupID
がsg-123
、time
が2020-01-20
の場合、エクスポートされた CSV ファイルの名前はecs_sgRule_sg-123_cn-qingdao_2020-01-20.csv
です。
セキュリティグループルールのよくある質問とベストプラクティス
セキュリティグループの構成、セキュリティグループルール、ホストペナルティとブロック解除手順、リソースクォータ管理については、「セキュリティに関するよくある質問」をご参照ください。
[プロトコルタイプ] パラメーターと [ポート範囲] パラメーターを構成する方法については、「共通ポート」および「インスタンスが接続を受け入れるために使用するデフォルトポートを変更する」をご参照ください。
ECS インスタンスや ENI などのクラウドリソースを新しいセキュリティグループに追加できます。詳細については、「セキュリティグループの ECS インスタンスを管理する」および「セキュリティグループの ENI を管理する」をご参照ください。
セキュリティグループの内部アクセス制御ポリシーを変更する方法については、「ベーシックセキュリティグループの内部アクセス制御ポリシーを変更する」をご参照ください。
セキュリティグループルールを構成するためのベストプラクティスとユースケース:
ECS インスタンスのファイアウォールを有効にし、セキュリティグループルールを構成して外部アクセスをブロックすると、インスタンスに接続できなくなる場合があります。システムファイアウォールの有効化と無効化に関するベストプラクティス:
その他のベストプラクティス: