セキュリティグループは、Elastic Compute Service (ECS) インスタンスのインバウンドトラフィックとアウトバウンドトラフィックを制御する仮想ファイアウォールです。 グループ内のECSインスタンスへのトラフィックを制御するセキュリティグループのインバウンドルールと、インスタンスからのトラフィックを制御するアウトバウンドルールを設定できます。
ECSインスタンスを作成するときに、インスタンスに1つ以上のセキュリティグループを指定できます。 ECSインスタンスの作成時にセキュリティグループを指定しない場合、デフォルトセキュリティグループが使用されます。 ECSインスタンスに関連付けられているセキュリティグループ内のルールは、特定のポリシーに基づいてソートされ、同時に有効になり、インスタンスとの間のトラフィックを制御します。
セキュリティグループのルールを追加、変更、または削除できます。 設定は、セキュリティグループ内のすべてのECSインスタンスに対して自動的に有効になります。 詳細については、「セキュリティグループルール」をご参照ください。 ECSインスタンスに関連付けられているセキュリティグループを変更できます。 関連付けられたセキュリティグループのルールは、インスタンスに自動的に適用されます。 具体的には、ECSインスタンスに関連付けられているセキュリティグループのルールは、インスタンスのプライマリelastic network interface (ENI) に適用されます。 仮想プライベートクラウド (VPC) にあるECSインスタンスに関連付けられているプライマリENI以外のENIに対して、異なるセキュリティグループを指定できます。 セキュリティグループは、セキュリティグループが属するVPCでのみ有効になります。 VPCにECSインスタンスを作成する場合、インスタンスのVPCに属するvSwitchとセキュリティグループを指定する必要があります。
セキュリティグループには、グループ内接続とグループ間アクセス設定の2つの主な機能があります。 セキュリティグループがグループ内接続をサポートしている場合、セキュリティグループ内のECSインスタンスは内部ネットワークを介して相互に通信できます。 セキュリティグループがグループ間アクセス設定をサポートしている場合、セキュリティグループに作成したルールで別のセキュリティグループを許可オブジェクト (送信元または送信先) として参照し、内部ネットワークを介した他のセキュリティグループのECSインスタンスからのアクセスを許可または拒否できます。 セキュリティグループは、さまざまなシナリオに適した基本セキュリティグループと高度なセキュリティグループに分類できます。 両方のタイプは無料で提供されます。 基本的なセキュリティグループは、上記の2つの機能をサポートします。 高度なセキュリティグループと比較して、基本的なセキュリティグループに含まれるプライベートIPアドレスの数が少なくなります。 高度なセキュリティグループには、より多くのプライベートIPアドレスを含めることができますが、グループ内接続またはグループ間アクセス設定はサポートしていません。 複数のセキュリティグループをECSインスタンスに関連付ける場合は、インスタンスにアタッチされているENIに1種類のセキュリティグループのみを関連付けます。 ビジネス要件に基づいて1種類のセキュリティグループを選択することを推奨します。 詳細については、「基本的なセキュリティグループと高度なセキュリティグループ」をご参照ください。
次のいずれかの条件が満たされている場合、セキュリティグループはマネージドセキュリティグループです。DescribeSecurityGroups操作を呼び出してセキュリティグループに関する情報を照会すると、レスポンスでServiceManaged
の値がTrue
になります。 管理対象セキュリティグループはAlibaba Cloudアカウントに属し、アカウントを使用して表示できます。 ただし、これらのセキュリティグループを管理できるのはクラウドサービスだけです。 詳細については、「管理対象セキュリティグループ」をご参照ください。
DeleteSecurityGroupを呼び出してセキュリティグループを削除するとInvalidOperation.DeletionProtection
が返されるか、ECSコンソールでセキュリティグループを削除するとDeletionProtectionのようなメッセージが表示されます。 Container Service for Kubernetes (ACK) クラスターを作成すると、関連付けられたセキュリティグループの削除保護機能が有効になり、誤って削除されないようになります。 セキュリティグループの削除保護機能を手動で無効にすることはできません。 削除保護機能は、ACKクラスターが削除された後にのみ自動的に無効にできます。 詳細については、「セキュリティグループの削除保護を無効にする」をご参照ください。
セキュリティグループを使用するか、セキュリティグループを他の方法と組み合わせることで、ECSインスタンスのセキュリティを向上させます。 詳細は、「ECSインスタンスのセキュリティ」をご参照ください。
ベストプラクティス
このセクションでは、セキュリティグループを使用するためのベストプラクティスについて説明します。
計画を立てる
ビジネス要件に基づいて、セキュリティグループの名前、説明、タグ、およびリソースグループを設定できます。 セキュリティグループの特定と管理に役立つように、これらのパラメーターを設定することを推奨します。
ホワイトリストの使用
デフォルトでは、セキュリティグループへのすべてのアクセスは拒否されます。 セキュリティグループにルールを追加して、特定のポートの特定の許可オブジェクトからのアクセスを許可できます。
セキュリティグループルールを追加するときに最小権限の原則に従う
たとえば、Linuxインスタンスでポート22への接続を確立できるようにする場合は、すべてのIPアドレス (
0.0.0.0/0
) ではなく特定のIPアドレスからのアクセスのみを許可するルールを追加することを推奨します。最小特権の原則に従う
たとえば、セキュリティグループ内のECSインスタンス間でグループ内接続が必要ない場合は、セキュリティグループの内部アクセス制御ポリシーをグループ内接続から内部分離に変更します。
各セキュリティグループのルールを簡潔に
セキュリティグループの目的に基づいてセキュリティグループにルールを追加し、ECSインスタンスをセキュリティグループに追加します。 1つのセキュリティグループに多数のルールを追加すると、管理が複雑になります。 セキュリティグループでヘルスチェックを実行して、セキュリティグループ内の冗長なルールを特定できます。 詳細については、「セキュリティグループルールの表示」トピックの「セキュリティグループ内の冗長ルールの特定」をご参照ください。
異なる目的を提供するインスタンスを異なるセキュリティグループに追加し、グループごとにルールを個別に維持する
たとえば、インターネット経由でアクセスできるECSインスタンスを同じセキュリティグループに追加し、ポート80や443など、外部サービスを提供する特定のポートでのみアクセスを許可できます。 デフォルトでは、他のポートへのアクセスは拒否されます。 インターネット経由でアクセス可能なECSインスタンスがMySQLやRedisなどの他のサービスを提供しないようにするには、インターネット経由でアクセスできないインスタンスに内部サービスをデプロイし、そのインスタンスを別のセキュリティグループに追加することを推奨します。
運用環境で使用されるセキュリティグループを変更しないでください
セキュリティグループをテスト環境に複製し、複製セキュリティグループを変更できます。 変更後にクローンセキュリティグループ内のECSインスタンスが期待どおりに実行される場合、本番環境で元のセキュリティグループのルールを変更します。
単一のECSインスタンスを複数のセキュリティグループに関連付けることができます。 インスタンスに適用されるすべてのインバウンドルールまたはアウトバウンドルールを確認する方法については、「セキュリティグループルールの表示」トピックの「ECSインスタンスに関連付けられている複数のセキュリティグループのすべてのルールの表示」をご参照ください。
操作
ECSコンソールの使用
ECS APIの使用
CreateSecurityGroup: セキュリティグループを作成します。
DescribeSecurityGroups: セキュリティグループを照会します。
セキュリティグループルールの追加
AuthorizeSecurityGroup: インバウンドセキュリティグループルールを追加します。
AuthorizeSecurityGroupEgress: アウトバウンドセキュリティグループルールを追加します。
DescribeSecurityGroupAttribute: セキュリティグループルールを照会します。
セキュリティグループルールの変更
ModifySecurityGroupRule: インバウンドセキュリティグループルールを変更します。
ModifySecurityGroupEgressRule: アウトバウンドセキュリティグループルールを変更します。
セキュリティグループルールの削除
RevokeSecurityGroup: インバウンドセキュリティグループルールを削除します。
RevokeSecurityGroupEgress: アウトバウンドセキュリティグループルールを削除します。
ModifySecurityGroupPolicy: 基本セキュリティグループの内部アクセス制御ポリシーを変更します。
DeleteSecurityGroup: セキュリティグループを削除します。
関連付けられたセキュリティグループ、ECSインスタンス、およびENIの管理
ECSインスタンスまたはENIに関連付けられているセキュリティグループの変更
ModifyInstanceAttribute: VPCにあるECSインスタンスに関連付けられているセキュリティグループを変更します。
ModifyNetworkInterfaceAttribute: ENIに関連付けられているセキュリティグループを変更します。
ECSインスタンスまたはENIとセキュリティグループの関連付けまたは関連付けの解除
JoinSecurityGroup: ECSインスタンスまたはENIをセキュリティグループに関連付けます。
LeaveSecurityGroup: ECSインスタンスまたはENIをセキュリティグループから分離します。
ModifySecurityGroupAttribute: セキュリティグループの名前または説明を変更します。
関連ドキュメント
セキュリティグループクォータの詳細については、「制限」トピックのセキュリティグループの制限セクションを参照してください。