セキュリティグループは、Elastic Compute Service (ECS) インスタンスのインバウンドトラフィックとアウトバウンドトラフィックを管理する仮想ファイアウォールです。 同じセキュリティ要件を持ち、互いに信頼できるECSインスタンスを同じセキュリティグループに追加できます。 これにより、インスタンスをセキュリティゾーンと安全なクラウドリソースに分割できます。 このトピックでは、セキュリティグループの機能、タイプ、およびベストプラクティスについて説明します。 このトピックでは、セキュリティグループを管理する方法についても説明します。
機能
ECSインスタンスを作成するときは、インスタンスを追加する1つ以上のセキュリティグループを指定する必要があります。 ECSインスタンスが属する複数のセキュリティグループのルールは、順番にソートされます。 セキュリティグループルールは、ECSインスタンスのインバウンドまたはアウトバウンドネットワークトラフィックを許可または拒否するために使用されます。
セキュリティグループのセキュリティグループルールを追加、変更、または削除できます。 設定は、セキュリティグループに属するすべてのECSインスタンスに対して自動的に有効になります。 セキュリティグループルールは、許可オブジェクト、宛先ポート、プロトコル、アクション (許可または拒否) 、および優先度値で構成されます。 セキュリティグループには、インバウンドおよびアウトバウンドのセキュリティグループルールを追加できます。 インバウンドセキュリティグループルールは、セキュリティグループに属するECSインスタンスのインバウンドトラフィックを管理するために使用されます。 アウトバウンドセキュリティグループルールは、ECSインスタンスのアウトバウンドトラフィックを管理するために使用されます。 詳細については、「セキュリティグループルール」をご参照ください。
ECSインスタンスが属するセキュリティグループのセキュリティグループルールは、インスタンスのプライマリelastic network Interface (ENI) に適用されます。 仮想プライベートクラウド (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アドレスが含まれます。 ただし、高度なセキュリティグループでは、他のセキュリティグループを認証オブジェクトとして参照するセキュリティグループルールを追加することはできません。
ECSインスタンスを複数のセキュリティグループに追加する場合、インスタンスにアタッチされているENIを同じタイプのセキュリティグループにのみ追加できます。 ビジネス要件に基づいてセキュリティグループタイプを選択することを推奨します。 詳細については、「基本的なセキュリティグループと高度なセキュリティグループ」をご参照ください。
管理されたセキュリティグループと高度なセキュリティグループ
セキュリティグループは、操作権限に基づいて、カスタムセキュリティグループと管理対象セキュリティグループに分類されます。 カスタムセキュリティグループと管理セキュリティグループはどちらも、基本セキュリティグループまたは高度セキュリティグループにすることができます。
カスタムセキュリティグループ: Alibaba Cloudアカウントを使用して、ECSコンソールでカスタムセキュリティグループを作成できます。 カスタムセキュリティグループに対して操作を実行する権限があります。 デフォルトのセキュリティグループもカスタムセキュリティグループです。 詳細については、「セキュリティグループの作成」をご参照ください。
マネージドセキュリティグループ: Alibaba Cloudサービスのマネージドセキュリティグループを作成できます。 管理セキュリティグループのみを表示できます。 管理対象セキュリティグループに対する操作は実行できません。 詳細については、「管理対象セキュリティグループ」をご参照ください。
次のいずれかの条件が満たされている場合、セキュリティグループはマネージドセキュリティグループと見なされます。DescribeSecurityGroups操作を呼び出してセキュリティグループに関する情報を照会すると、応答でServiceManaged
の値がTrue
になります。または、次のようなメッセージが表示されます。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を別のセキュリティグループに追加する場合は、インスタンスを別のセキュリティグループに手動で追加できます。 詳細については、「セキュリティグループでのECSインスタンスの管理」および「セキュリティグループでの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: セキュリティグループの名前または説明を変更します。
関連ドキュメント
セキュリティグループクォータの詳細については、「制限」トピックのセキュリティグループの制限セクションを参照してください。
ECSインスタンスに複数のENIをアタッチできます。 詳細については、「概要」をご参照ください。
セキュリティグループを使用するか、セキュリティグループを他の方法と組み合わせることで、ECSインスタンスのセキュリティを向上させることができます。 詳細は、「ECSインスタンスのセキュリティ」をご参照ください。