セキュリティグループ は、ECS インスタンスの仮想ファイアウォールとして機能します。セキュリティグループとそのルールを管理することにより、詳細なネットワークセキュリティの隔離およびアクセスの制御を実装できます。
次の図は、2 つのセキュリティグループルールを設定する方法を示しています。1 つは承認された IP アドレスからのリモート管理を許可するルールで、もう 1 つはインスタンスが高リスクのウェブサイトにアクセスするのをブロックするルールです。
インバウンドルール: 特定の IP アドレス (
121.XX.XX.XX) が SSH (ポート 22) を介してインスタンスにアクセスすることを許可します。アウトバウンドルール: インスタンスが既知の高リスク IP アドレス (
XX.XX.XX.XX) にアクセスすることを拒否します。

新規インスタンスのセキュリティグループ設定
インスタンス購入ページへの移動: ECS コンソール - カスタム起動 ページで、インスタンスを設定します。
セキュリティグループの作成: ネットワークとセキュリティグループ セクションで、基本またはエンタープライズセキュリティグループを作成し、名前を付けます。
共通ルールのクイック設定: インスタンスを購入する際、コンソールには一般的に使用されるポートとプロトコルのリストが表示されます。チェックボックスを選択することで、すべての IP アドレス (
0.0.0.0/0) から指定されたポートへのトラフィックを許可したり、指定されたプロトコルを使用して作成されたインスタンスにアクセスすることを許可したりできます。
インスタンスでセキュリティグループを作成する場合、きめ細かなルールはインスタンス作成後にのみ設定できます。SSH (22) や RDP (3389) などのインスタンス管理に使用されるリモート接続ポートを選択する場合は、インスタンス作成後に信頼できる IP アドレスからのみアクセスを許可するようにセキュリティグループルールを設定することを推奨します。
作成後のルールの変更、追加、または削除: インスタンスを作成した後は、「セキュリティグループルール」を参照して、新しいインスタンスに対して「セキュリティグループルールを追加、変更、または削除」してください。
インスタンスアクセス制限やデータベースセキュリティポリシー定義など、さまざまなビジネスシナリオにおけるセキュリティグループルールの設定例については、「セキュリティグループの適用ガイドと例」をご参照ください。
セキュリティグループの管理
ECS インスタンスで作成されたセキュリティグループのルールはいつでも変更できます。また、セキュリティグループを個別に作成および管理し、既存の ECS インスタンスに関連付けることもできます。
セキュリティグループの作成
コンソール
「ECS コンソール - セキュリティグループ」ページで、セキュリティグループの作成 をクリックします。
セキュリティグループの名前を設定し、Virtual Private Cloudを選択します。
基本セキュリティグループ には、基本セキュリティグループ または 高度なセキュリティグループ を選択します。
セキュリティグループルールを設定した後、作成 をクリックします。
API
「CreateSecurityGroup」操作を呼び出して、セキュリティグループを作成します。
デフォルトでは、ルールが設定されていない新しい基本セキュリティグループは、すべてのアウトバウンドトラフィックを許可し、同じグループ内の他の ECS インスタンスからのインバウンドトラフィックを許可し、その他のすべてのインバウンドトラフィックを拒否します。
セキュリティグループルールの管理
セキュリティグループルールは、セキュリティグループへの、またはセキュリティグループからのネットワークトラフィックを許可または拒否する条件を定義します。ルールを設定する際は、トラフィックの方向、送信先、および優先度を指定する必要があります。ルールはステートフルであるため、インバウンドルールを追加すると、対応するアウトバウンド応答トラフィックが自動的に許可されます。
コンソール
ECS コンソール - セキュリティグループ ページで、対象のセキュリティグループの ID をクリックして詳細ページに移動します。
セキュリティグループルールを設定します。
ルールの追加: セキュリティグループの詳細ページで、トラフィックの方向を選択し、[ルールの追加] をクリックします。
ルールを変更するには:セキュリティグループの詳細ページの アクセスルール タブで、変更するルールを検索し、変更 を 操作 列でクリックします。
ルールの削除: セキュリティグループの詳細ページにある アクセスルール タブで、削除するルールを見つけて、操作 列の 削除 をクリックします。
API
インバウンドルールを追加するには、AuthorizeSecurityGroup 操作を呼び出します。
「AuthorizeSecurityGroupEgress」操作を呼び出して、アウトバウンドルールを追加します。
インバウンドルールを編集するには、ModifySecurityGroupRule 操作を呼び出します。
アウトバウンドルールを変更するには、ModifySecurityGroupEgressRule 操作を呼び出します。
インバウンドルールを削除するには、RevokeSecurityGroup 操作を呼び出します。
アウトバウンドルールを削除するには、RevokeSecurityGroupEgress 操作を呼び出します。
同じ優先度のルールの場合、拒否ルールが優先されます。セキュリティグループは、デフォルトで特定の種類のネットワークトラフィックを許可します。
本番環境におけるセキュリティリスクを軽減するために、最小権限の原則(ホワイトリスト)に基づいてセキュリティグループルールを設定します。ECS インスタンスへのログインや管理など、高リスクのシナリオでは、すべてのソースからのアクセス(例:
0.0.0.0/0または::/0を使用する場合)を許可しないでください。本番環境のセキュリティグループを直接変更することは避けてください。まず、セキュリティグループをクローンし、ステージング環境で変更をテストしてください。インスタンストラフィックへの影響がないことを確認した後、本番環境のセキュリティグループにルールを適用してください。
セキュリティグループとインスタンスの関連付け
ECS インスタンスをセキュリティグループに関連付けると、そのグループがインスタンスのプライマリ NIC にリンクされます。
コンソール
ECS コンソール - インスタンス ページで、管理するインスタンスの ID をクリックします。
インスタンス詳細ページで、セキュリティグループ タブをクリックします。次に、セキュリティグループの変更 をクリックして、インスタンスにセキュリティグループを追加または削除します。複数のセキュリティグループをインスタンスに関連付けると、それらのルールが結合され、優先度に基づいて有効になります。
API
複数のセキュリティグループを ECS インスタンスに関連付けるには、ModifyInstanceAttribute 操作を呼び出します。
ECS インスタンスをセキュリティグループに追加するには、JoinSecurityGroup 操作を呼び出します。
LeaveSecurityGroup 操作を呼び出して、ECS インスタンスをセキュリティグループから削除します。
セカンダリ ENI のセキュリティ管理
セキュリティグループは、ECS インスタンスの弾力性ネットワークインターフェース (ENI) に適用されます。インスタンスに複数の ENI がある場合、これらの ENI に異なるセキュリティグループを関連付け、異なるセキュリティグループルールを設定できます。これにより、内部ネットワークトラフィックのきめ細かな制御とサービス隔離が可能になります。
コンソール
ECS コンソール - 弾力性ネットワークインターフェース ページで、管理するセカンダリ ENI の ID をクリックします。
[セキュリティグループの変更] をクリックし、関連付けたいセキュリティグループを選択してから、[OK] をクリックします。
API
指定されたセキュリティグループに ENI を追加するには、JoinSecurityGroup 操作を呼び出します。
LeaveSecurityGroup 操作を呼び出して、ENI を指定されたセキュリティグループから削除します。
「ModifyNetworkInterfaceAttribute」操作を呼び出して、ENI に複数のセキュリティグループを関連付けます。
プレフィックスリストの使用
CIDR ブロックを複数指定して権限を付与する必要がある場合、集中管理のためにプレフィックスリストを使用できます。これにより、セキュリティグループルールの構成が簡素化され、バッチメンテナンスの効率が向上します。
コンソール
プレフィックスリストを作成します:
ECS コンソール - プレフィックスリスト に移動します。
対象のタブで、プレフィックスリストの作成 をクリックします。
プレフィックスリストを参照するセキュリティグループでは、そのセキュリティグループ内のルール数は、プレフィックスリストで指定した最大エントリ数に基づいて計算されます。
対象のセキュリティグループの詳細ページで、アクセスルール セクションにルールを追加または変更します:
[送信元] をプレフィックスリストに設定し、対象のプレフィックスリストを選択します。
API
CreatePrefixList 操作を呼び出してプレフィックスリストを作成します。プレフィックスリストが作成された後は、DescribePrefixListAttributes 操作を呼び出して、プレフィックスリストの詳細をクエリできます。
AuthorizeSecurityGroup 操作を呼び出し、インバウンドルールの SourcePrefixListId パラメーターを設定して、プレフィックスリストからのアクセスを許可します。
AuthorizeSecurityGroupEgress 操作を呼び出し、アウトバウンドルールの DestPrefixListId パラメーターを設定して、プレフィックスリストへのアクセスを許可します。
セキュリティグループのクローン作成
セキュリティグループのクローン機能を使用すると、同じ構成のセキュリティグループを複数作成したり、リージョンやネットワークタイプをまたいでセキュリティグループを複製したり、バックアップしたりできます。クローン作成後、新しいセキュリティグループはターゲットリージョンのセキュリティグループリストに表示されます。
ECS コンソール - セキュリティグループページに移動します。クローンを作成するセキュリティグループを見つけ、操作列にある セキュリティグループのクローン をクリックします。
送信先セキュリティグループを設定します。セキュリティグループがクローンされると、ターゲットリージョンのセキュリティグループリストに表示されます。
VPC ID:新しいセキュリティグループが属する VPC。
[ルールを保持]:このオプションを選択すると、ソースセキュリティグループのすべてのルールが保持されます。優先度が 100 を超えるルールについては、システムによって優先度が 100 に変更されます。
タグをターゲットセキュリティグループにコピーする:ソースセキュリティグループのタグを新しいセキュリティグループにコピーするかどうかを選択します。
冗長なルールのチェック
セキュリティグループのヘルスチェック機能を使用すると、冗長なルールを特定できます。優先度が同じかそれ以上の別のルールによって条件が完全に包含されている場合、そのルールは冗長と見なされます。クォータ制限によって新しいルールを追加できなくなる事態を避けるため、冗長なルールを定期的に削除することを推奨します。
ECS コンソール - セキュリティグループ ページに移動します。管理するセキュリティグループの詳細ページで、アクセスルール タブをクリックし、[ヘルスチェック] をクリックします。
[ヘルスチェック] ダイアログボックスで、削除する冗長なルールを選択し、[ルールの削除] をクリックします。
ルールのインポートとエクスポート
インポートおよびエクスポート機能を使用して、セキュリティグループルールをバックアップ、復元、移行できます。
ルールのインポート
インポートするセキュリティグループルールは、次の要件を満たす必要があります:
ファイル形式: JSON または CSV。
ルール数: 一度に最大 200 個のルールをインポートできます。
ルールの優先度: 1~100。優先度が 100 を超えるルールは無視されます。
リージョンをまたいでルールをインポートする場合、権限付与オブジェクトとしてセキュリティグループまたはプレフィックスリストを使用するセキュリティグループルール、またはポート範囲としてポートリストを使用するセキュリティグループルールはサポートされていません。
ECS コンソール - セキュリティグループ ページに移動します。管理対象のセキュリティグループの詳細ページで、アクセスルール タブをクリックし、セキュリティグループルールのインポート をクリックします。
セキュリティグループルールのインポート ページで、選択 をクリックし、ローカルの JSON または CSV ファイルを選択してから、OK をクリックします。
インポートが失敗した場合、警告アイコンにカーソルを合わせると、失敗の原因が表示されます。
ルールのエクスポート
ECS コンソール - セキュリティグループ ページに移動します。管理対象のセキュリティグループの詳細ページで、アクセスルール タブをクリックし、エクスポート をクリックします。エクスポートされたルールファイルは、次のいずれかの形式で命名されます:
JSON 形式: ecs_${region_id}_${groupID}.json。
例えば、リージョン ID が
cn-qingdaoで、セキュリティグループ ID がsg-123の場合、エクスポートされるファイル名はecs_cn-qingdao_sg-123.jsonとなります。CSV 形式: ecs_sgRule_${groupID}_${region_id}_${time}.csv。
例えば、リージョン ID が
cn-qingdao、セキュリティグループ ID がsg-123、エクスポート日が2020-01-20の場合、エクスポートされるファイル名はecs_sgRule_sg-123_cn-qingdao_2020-01-20.csvとなります。
セキュリティグループのスナップショット
セキュリティグループのスナップショットは、セキュリティグループルールを自動的にバックアップします。セキュリティグループルールを変更すると、システムが自動的にスナップショットを作成します。スナップショットを使用して、特定の時点におけるセキュリティグループルールへと復元することで、誤った変更後のルールを回復できます。
ルールを変更した後、システムは5分後にスナップショットを作成します。5分以内に複数回の変更を行った場合、システムは最初の変更前の状態を1つのスナップショットとして保存します。
セキュリティグループのスナップショットは、バックアップデータの保存に OSS を使用します。OSS は従量課金方式のサービスです。スナップショットによって発生するストレージ容量およびリクエストに対して課金されます。
スナップショットポリシーの作成
ECS コンソール - セキュリティグループのスナップショット ページに移動し、新規作成 をクリックします。
スナップショットポリシーの作成 ダイアログボックスで、以下のパラメーターを設定します:
ポリシー名: :スナップショットポリシーの名前を入力します。
ポリシーのステータス: 有効 または 無効化 を選択します。ポリシーが有効な場合にのみ、関連付けられたセキュリティグループに対してスナップショットが作成されます。
保持期間:スナップショットを保存する日数を指定します。値は1~30の整数で、デフォルト値は1です。保存期間が経過すると、スナップショットは自動的に削除されます。
OSS ストレージ設定:スナップショットデータの保存先となる OSS バケットを設定します。バケット名を空欄のままにした場合、システムはデフォルトのバケットを使用します。
OK をクリックします。
初めてスナップショットポリシーを作成する際、システムはサービスリンクロール (SLR)
ALIYUNSECURITYGROUPSNAPSHOTROLEが OSS バケットにアクセスできるよう権限付与を要求します。このロールが既に存在する場合は、再度権限を付与する必要はありません。
スナップショットポリシーとの関連付け
スナップショットポリシーを作成した後は、セキュリティグループと関連付ける必要があります。これにより、セキュリティグループルールのバックアップが開始されます。
セキュリティグループをスナップショットポリシーに関連付けると、システムは即時にそのセキュリティグループのスナップショットを作成します。
ECS コンソール - セキュリティグループのスナップショット ページに移動します。管理対象のスナップショットポリシーを見つけ、関連セキュリティグループ を 操作 列からクリックします。
関連セキュリティグループ ダイアログボックスで、関連付けるセキュリティグループを選択します。
1つのスナップショットポリシーは最大10個のセキュリティグループと関連付け可能です。また、1つのセキュリティグループは、異なる設定を持つ複数のスナップショットポリシーと関連付けられます。
OK をクリックして関連付けを完了します。
スナップショットからのルール復元
復元操作は即時適用されます。この操作では、現在のすべてのルールがスナップショットのルールで上書きされます。この操作は取り消せません。
ECS コンソール - セキュリティグループ ページに移動し、管理対象のセキュリティグループの ID をクリックします。
セキュリティグループの詳細ページで、スナップショットリスト タブをクリックします。復元対象のスナップショットを見つけ、スナップショットの復元 を 操作 列からクリックします。
セキュリティグループのスナップショットの復元 ダイアログボックスで、復元情報を確認します。
受信 タブおよび 送信 タブで、現在のセキュリティグループルール と 復元後のセキュリティグループルール を比較します。
情報の確認後、OK をクリックします。
セキュリティグループの削除
セキュリティグループを削除すると、そのすべてのルールが完全に削除され、元に戻すことはできません。続行する前に、必要な構成がバックアップされていることを確認してください。
コンソール
ECS コンソール - セキュリティグループページに移動します。削除したいセキュリティグループを見つけ、操作 列の 削除 をクリックします。
セキュリティグループの削除 ダイアログボックスで、情報を確認し、OK をクリックします。
セキュリティグループがどの ECS インスタンスや Elastic Network Interface (ENI) にも関連付けられていないにもかかわらず、セキュリティグループの削除 ダイアログボックスに 削除不可 というメッセージが表示される場合は、[強制削除を試行] をクリックできます。
API
DeleteSecurityGroup オペレーションを呼び出して、セキュリティグループを削除します。
以下のシナリオでは、セキュリティグループを削除できません:
セキュリティグループが ECS インスタンスまたは ENI に関連付けられている場合。まずセキュリティグループの関連付けを解除する必要があります。
別のセキュリティグループルールによって参照されている場合。まず参照元のルールを削除する必要があります。
マネージドセキュリティグループは表示専用であり、削除できません。
セキュリティグループの削除保護が有効になっている場合。セキュリティグループを削除する前に、削除保護を無効にする必要があります。
DeleteSecurityGroup API を使用してセキュリティグループを削除する際にエラーコード
InvalidOperation.DeletionProtection[削除保護] のようなメッセージが表示された場合は、そのセキュリティグループで削除保護が有効になっていることを示します。
グループ内通信
デフォルトでは、同一の基本セキュリティグループに属する ECS インスタンス間で、内部ネットワークを介した通信が可能です。セキュリティを強化するため、内部アクセス制御ポリシーを「内部隔離」に変更し、インスタンス間の内部ネットワーク通信を禁止できます。
エンタープライズセキュリティグループの内部アクセス制御ポリシーは変更できません。エンタープライズセキュリティグループ。
1 つのインスタンスが複数のセキュリティグループに属している場合、そのうちいずれかのグループが内部アクセスを許可していれば、当該グループ内の他のインスタンスと内部ネットワークを介して通信できます。
セキュリティグループの内部アクセス制御ポリシーが「内部隔離」に設定されている場合、セキュリティグループルールを追加することで、インスタンス間の通信を許可できます。
コンソール
ECS コンソール - セキュリティグループ ページに移動し、管理対象のセキュリティグループの ID をクリックします。
セキュリティグループの詳細 ページの 基本情報 セクションで、グループ内ネットワーク接続ポリシーの変更 をクリックします。
グループ内ネットワーク接続ポリシーを 隔離 に変更します。
API
ModifySecurityGroupPolicy 操作を呼び出して、基本セキュリティグループの内部アクセス制御ポリシーを変更します。
グループ間の通信
ルールの権限付与オブジェクトとして別のセキュリティグループを設定すると、そのセキュリティグループに属するインスタンスが、内部ネットワーク経由で現在のセキュリティグループ内のインスタンスにアクセスできるようになります。次の図では、セキュリティグループ B をセキュリティグループ A のインバウンドルールの権限付与オブジェクトとして設定した後、セキュリティグループ B 内のインスタンスが内部ネットワーク経由でセキュリティグループ A 内のインスタンスにアクセスできます。
エンタープライズセキュリティグループ には、権限付与オブジェクトとしてセキュリティグループを使用するルールを追加できません。

コンソール
ECS コンソール - セキュリティグループ ページに移動し、管理対象のセキュリティグループの ID をクリックします。
セキュリティグループの詳細 ページで、トラフィックの方向を選択し、[ルールを追加] をクリックします。
セキュリティグループルールの作成 ページで、送信元 を セキュリティグループ または クロスアカウントセキュリティグループ に設定します。
API
AuthorizeSecurityGroup 操作を呼び出し、インバウンドルールの SourceGroupId パラメーターを設定して、セキュリティグループからのアクセスを許可します。
AuthorizeSecurityGroupEgress 操作を呼び出し、アウトバウンドルールの DestGroupId パラメーターを設定して、セキュリティグループへのアクセスを許可します。
本番環境に適用する際の推奨事項
セキュリティグループの計画
単一責任原則:Web サーバー、データベース、キャッシュサーバーなど、異なるサービスごとに個別のセキュリティグループを使用します。
環境の隔離:本番環境とステージング環境でそれぞれ別のセキュリティグループを使用します。
命名規則:
environment-application-purpose-sg形式を使用します。例:prod-mysql-db-sg。
ルール構成
最小権限の原則:必要なソースに対してのみ必要なポートを開きます。SSH(22)や RDP(3389)などの管理ポートを
0.0.0.0/0に対して開くことは避けてください。これらのポートへのアクセスは、常に信頼できる固定 IP アドレスに制限する必要があります。デフォルトでの拒否:インバウンドトラフィックはデフォルトですべて拒否します。必要に応じて、特定のポートおよびソースからのアクセスを許可するインバウンドルールを追加します。
ルールの優先度の競合:インスタンスが複数のセキュリティグループに属している場合、優先度が高い拒否ルールは、優先度が低い許可ルールよりも優先されます。ネットワーク接続の問題をトラブルシューティングする際は、関連付けられているすべてのセキュリティグループを確認してください。
変更管理
本番環境の直接変更を避ける:本番環境のセキュリティグループを直接変更することは避けてください。代わりに、まずセキュリティグループをクローンし、ステージング環境でテストすることを推奨します。インスタンスのトラフィックへの影響がないことを確認した後、本番環境のセキュリティグループにルールを適用してください。
課金
セキュリティグループは無料でご利用いただけます。
制限事項
制限事項 | 基本セキュリティグループの制限 | エンタープライズセキュリティグループの制限 |
特定のリージョンにおける 1 つの Alibaba Cloud アカウントで作成可能なセキュリティグループの最大数 | このクォータを表示または増加するには、クォータ ID | 基本セキュリティグループと同様 |
1 つの Elastic Network Interface (ENI) に関連付け可能なセキュリティグループの数 | 10 | 基本セキュリティグループと同様 |
1 つの ENI に関連付けられたすべてのセキュリティグループに設定可能なルール(インバウンドおよびアウトバウンド)の合計最大数 | 1,000 | 基本セキュリティグループと同様 |
1 つのセキュリティグループ内で、権限付与オブジェクトとして他のセキュリティグループを指定できるルールの最大数 | 20 | 0。エンタープライズセキュリティグループには、権限付与オブジェクトとしてセキュリティグループを指定するルールを追加できません。また、エンタープライズセキュリティグループを他のセキュリティグループのルールにおける権限付与オブジェクトとして使用することもできません。 |
VPC 内のセキュリティグループが関連付け可能な ECS インスタンスの数 | 固定値ではありません。セキュリティグループが保持可能なプライベート IP アドレスの数に依存します。 | 制限はありません |
リージョン内の 1 つの Alibaba Cloud アカウントにおいて、VPC 内のセキュリティグループが保持可能なプライベート IP アドレスの最大数 | 6,000 説明
| 65,536 説明 使用量は、セキュリティグループに関連付けられた弾力的ネットワークインターフェース(主 ENI およびセカンダリ ENI を含む)の総数に基づきます。 |
パブリックポートへのアクセス | セキュリティ上の理由から、ECS インスタンスのポート 25 はデフォルトで制限されています。メール送信には、SSL 暗号化ポート(例:ポート 465)のご利用を推奨します。 | 基本セキュリティグループと同様 |