セキュリティグループは、Elastic Compute Service(ECS)インスタンスのインバウンドトラフィックとアウトバウンドトラフィックを管理する仮想ファイアウォールです。同じセキュリティ要件を持ち、相互に信頼できる ECS インスタンスを同じセキュリティグループに追加できます。これにより、インスタンスをセキュリティゾーンに分割し、クラウドリソースを保護できます。このトピックでは、セキュリティグループの機能、種類、およびベストプラクティスについて説明します。また、セキュリティグループの管理方法についても説明します。
機能
ECS インスタンスを作成する場合は、インスタンスを追加する 1 つ以上のセキュリティグループを指定する必要があります。ECS インスタンスが属する複数のセキュリティグループのルールは順番にソートされます。セキュリティグループルールは、ECS インスタンスのインバウンドまたはアウトバウンドネットワークトラフィックを許可または拒否するために使用されます。
セキュリティグループのセキュリティグループルールを追加、変更、または削除できます。構成は、セキュリティグループに属するすべての ECS インスタンスに自動的に適用されます。セキュリティグループルールは、権限付与オブジェクト、宛先ポート、プロトコル、操作(許可または拒否)、および優先順位値で構成されます。セキュリティグループには、インバウンドおよびアウトバウンドのセキュリティグループルールを追加できます。セキュリティグループのインバウンドルールは、セキュリティグループに属する ECS インスタンスのインバウンドトラフィックを管理するために使用されます。セキュリティグループのアウトバウンドルールは、ECS インスタンスのアウトバウンドトラフィックを管理するために使用されます。詳細については、「セキュリティグループルール」をご参照ください。
ECS インスタンスが属するセキュリティグループ内のセキュリティグループルールは、インスタンスのプライマリ ENI(Elastic Network Interface)に適用されます。仮想プライベートクラウド(VPC)にある ECS インスタンスに関連付けられているプライマリ ENI 以外の ENI には、異なるセキュリティグループを指定できます。
セキュリティグループを構成する場合は、次の点に注意してください。
セキュリティグループは、セキュリティグループが存在する VPC にのみ適用されます。VPC に ECS インスタンスを作成する場合は、インスタンスに対して同じ VPC に存在する vSwitch とセキュリティグループを指定する必要があります。
ECS インスタンスまたは ENI を 1 つ以上のセキュリティグループに追加できます。ECS インスタンスと ENI を追加できるセキュリティグループの上限については、「制限」トピックの「セキュリティグループの制限」セクションをご参照ください。
ECS インスタンスの作成時にセキュリティグループを指定しない場合、システムはインスタンスのプライマリ ENI をデフォルトセキュリティグループに追加します。詳細については、「デフォルトセキュリティグループ」をご参照ください。
たとえば、次の図に示すように、VPC にはECS 1
とECS 2
が含まれており、両方の ECS インスタンスの ENI はセキュリティグループ 1
に追加されています。セキュリティグループ 1
は基本セキュリティグループです。デフォルトでは、ECS 1
とECS 2
の内部ネットワークは相互接続されています。内部接続ポリシーは、構成したカスタムセキュリティグループルールによる影響を受けません。ECS 1
とECS 2
のインバウンドトラフィックとアウトバウンドトラフィックは、セキュリティグループ 1
のカスタムセキュリティグループルールによって管理されます。セキュリティグループ 1
のインバウンドルールに基づいて、任意の IP アドレスを使用してセキュリティグループ 1
内のECS 1
とECS 2
に ping を実行できます。セキュリティグループ 1
には、アウトバウンドルールは追加されていません。デフォルトでは、すべてのアウトバウンドトラフィックが許可されます。
セキュリティグループの種類
基本セキュリティグループと高度なセキュリティグループ
セキュリティグループは、基本セキュリティグループと高度なセキュリティグループに分類でき、機能に基づいてさまざまなシナリオに適しています。どちらの種類のセキュリティグループも無料で使用できます。
基本セキュリティグループ:グループ内接続をサポートします。基本セキュリティグループには、セキュリティグループルールを追加できます。基本セキュリティグループには、高度なセキュリティグループと比較して、プライベート IP アドレスが少なくなっています。
高度なセキュリティグループ:高度なセキュリティグループには、基本セキュリティグループと比較して、プライベート IP アドレスが多くなっています。ただし、高度なセキュリティグループでは、他のセキュリティグループを権限付与オブジェクトとして参照するセキュリティグループルールを追加することはできません。
1 つの ECS インスタンスを複数のセキュリティグループに追加する場合、インスタンスに接続されている ENI を同じ種類のセキュリティグループにのみ追加できます。ビジネス要件に基づいてセキュリティグループの種類を選択することをお勧めします。詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。
マネージドセキュリティグループと高度なセキュリティグループ
セキュリティグループは、操作権限に基づいて、カスタムセキュリティグループとマネージドセキュリティグループに分類されます。カスタムセキュリティグループとマネージドセキュリティグループはどちらも、基本セキュリティグループまたは高度なセキュリティグループにすることができます。
カスタムセキュリティグループ:Alibaba Cloud アカウントを使用して、 [ECS コンソール] でカスタムセキュリティグループを作成できます。カスタムセキュリティグループに対して操作を実行する権限があります。デフォルトセキュリティグループもカスタムセキュリティグループです。詳細については、「セキュリティグループを作成する」をご参照ください。
マネージドセキュリティグループ:Alibaba Cloud サービス用にマネージドセキュリティグループを作成できます。マネージドセキュリティグループは表示のみ可能です。マネージドセキュリティグループに対して操作を実行することはできません。詳細については、「マネージドセキュリティグループ」をご参照ください。
セキュリティグループは、次のいずれかの条件を満たす場合、マネージドセキュリティグループと見なされます。DescribeSecurityGroups オペレーションを呼び出してセキュリティグループに関する情報をクエリするときのレスポンスで ServiceManaged
の値が True
であるか、 DescribeSecurityGroups[ECS コンソール] でセキュリティグループに のようなメッセージが表示されます。
ベストプラクティス
このセクションでは、セキュリティグループを使用するためのベストプラクティスについて説明します。
計画を立てる
ビジネス要件に基づいて、セキュリティグループの名前、説明、タグ、およびリソースグループを構成できます。セキュリティグループを識別および管理するために、これらのパラメータを構成することをお勧めします。
ホワイトリストを使用する
デフォルトでは、セキュリティグループへのすべてのアクセスは拒否されます。特定のポート上の特定の権限付与オブジェクトからのアクセスを許可するルールをセキュリティグループに追加できます。
セキュリティグループルールを追加する際は、最小権限の原則に従う
たとえば、Linux インスタンスのポート 22 への接続を許可する場合、すべての IP アドレス(
0.0.0.0/0
)ではなく、特定の IP アドレスからのアクセスのみを許可するセキュリティグループルールを追加することをお勧めします。最小権限の原則に従う
たとえば、セキュリティグループ内の ECS インスタンス間のグループ内接続が不要な場合は、セキュリティグループの内部アクセス制御ポリシーをグループ内接続から内部隔離に変更します。
各セキュリティグループのルールは簡潔にする
セキュリティグループの目的に基づいてセキュリティグループにセキュリティグループルールを追加し、ECS インスタンスをセキュリティグループに追加します。1 つのセキュリティグループに多数のセキュリティグループルールを追加すると、管理の複雑さが増します。セキュリティグループのヘルスチェックを実行して、セキュリティグループ内の冗長なセキュリティグループルールを特定できます。詳細については、「セキュリティグループルールの管理」トピックの「セキュリティグループ内の冗長なルールを確認する」セクションをご参照ください。
異なる目的を果たすインスタンスを異なるセキュリティグループに追加し、各グループのルールを個別に管理する
たとえば、インターネット経由でアクセス可能な ECS インスタンスを同じセキュリティグループに追加し、ポート 80 や 443 など、外部サービスを提供する特定のポートへのアクセスのみを許可できます。デフォルトでは、他のポートへのアクセスは拒否されます。インターネット経由でアクセス可能な ECS インスタンスが MySQL や Redis などの他のサービスを提供しないようにするには、インターネット経由でアクセスできないインスタンスに内部サービスをデプロイし、インスタンスを別のセキュリティグループに追加することをお勧めします。
本番環境で使用されているセキュリティグループは変更しない
セキュリティグループをテスト環境に複製し、複製したセキュリティグループを変更できます。変更後に複製セキュリティグループ内の ECS インスタンスが期待どおりに動作する場合は、本番環境の元のセキュリティグループのルールを変更します。
操作
初めてセキュリティグループを使用する場合は、次の手順を実行することをお勧めします。
ECS インスタンスの作成時にデフォルトセキュリティグループを使用しない場合、またはデフォルトセキュリティグループがビジネス要件を満たさない場合は、別のセキュリティグループを作成する必要があります。詳細については、「セキュリティグループの管理」をご参照ください。
セキュリティグループの種類ごとに、特定の非表示のデフォルト RAM(Resource Access Management)ルールがあります。セキュリティグループのインバウンドおよびアウトバウンドセキュリティグループルールがビジネス要件を満たさない場合は、セキュリティグループにインバウンドおよびアウトバウンドセキュリティグループルールを手動で追加する必要があります。詳細については、「セキュリティグループルールを追加する」をご参照ください。
別のセキュリティグループに ECS インスタンス (プライマリ ENI) またはセカンダリ ENI を追加する場合は、インスタンスを別のセキュリティグループに手動で追加できます。詳細については、「インスタンス (プライマリ ENI) をセキュリティグループに関連付ける」および「セカンダリ ENI をセキュリティグループに関連付ける」をご参照ください。
[ECS コンソール] で、または API オペレーションを呼び出すことによって、セキュリティグループに対して次の操作を実行できます。
ECS コンソールの使用
API オペレーションの呼び出し
CreateSecurityGroup:セキュリティグループを作成します。
DescribeSecurityGroups:セキュリティグループをクエリします。
セキュリティグループルールを追加する:
AuthorizeSecurityGroup:インバウンドセキュリティグループルールを追加します。
AuthorizeSecurityGroupEgress:アウトバウンドセキュリティグループルールを追加します。
DescribeSecurityGroupAttribute:セキュリティグループルールをクエリします。
セキュリティグループルールを変更する:
ModifySecurityGroupRule:インバウンドセキュリティグループルールを変更します。
ModifySecurityGroupEgressRule:アウトバウンドセキュリティグループルールを変更します。
セキュリティグループルールを削除する:
RevokeSecurityGroup:インバウンドセキュリティグループルールを削除します。
RevokeSecurityGroupEgress:アウトバウンドセキュリティグループルールを削除します。
ModifySecurityGroupPolicy:基本セキュリティグループの内部アクセス制御ポリシーを変更します。
DeleteSecurityGroup:セキュリティグループを削除します。
関連付けられているセキュリティグループ、ECS インスタンス、および ENI を管理する:
ECS インスタンスまたは ENI が属するセキュリティグループを変更する
ModifyInstanceAttribute:VPC に存在する ECS インスタンスが属するセキュリティグループを変更します。
ModifyNetworkInterfaceAttribute:ENI に関連付けられているセキュリティグループを変更します。
セキュリティグループへの ECS インスタンスまたは ENI の追加、またはセキュリティグループからの ECS インスタンスまたは ENI の削除
JoinSecurityGroup:セキュリティグループに ECS インスタンスまたは ENI を追加します。
LeaveSecurityGroup:セキュリティグループから ECS インスタンスまたは ENI を削除します。
ModifySecurityGroupAttribute:セキュリティグループの名前または説明を変更します。
関連情報
セキュリティグループクォータについては、「制限」トピックの「セキュリティグループの制限」セクションをご参照ください。
複数の ENI を 1 つの ECS インスタンスに接続できます。詳細については、「概要」をご参照ください。
セキュリティグループを使用するか、セキュリティグループを他の方法と組み合わせて使用することで、ECS インスタンスのセキュリティを向上させることができます。詳細については、「ECS インスタンスのセキュリティ」をご参照ください。