すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:セキュリティグループによるアクセス制御の活用

最終更新日:Mar 24, 2026

セキュリティグループは、インターネット向けトラフィックおよび内部ネットワーク向けトラフィックの両方に対してステートフルファイアウォール機能を提供します。これにより、内部ネットワーク間の通信制御、サブネットの隔離、およびレイヤー 4 ネットワークレベルでのアクセス管理が可能です。

セキュリティリスク

同一仮想プライベートクラウド(VPC)内にあるすべての Elastic Compute Service (ECS) インスタンス間で完全なネットワーク接続性が確保されていると、横方向移動や不正アクセスといったセキュリティリスクが生じます。たとえば、内部ネットワーク上の ECS インスタンスが侵害されたりウイルスに感染したりした場合、その脅威が同一ネットワーク上の他のインスタンスへと拡大する可能性があります。さらに、内部ネットワーク上のサービスは認証および権限付与が不十分であることが多く、ネットワーク内部からの不正アクセスに対して脆弱です。

異なるサービスクラスターをセキュリティグループで隔離したり、インスタンス間の横方向ネットワークアクセスをブロックしたりすることで、内部ネットワークにおける横方向移動および不正アクセスのリスクを効果的に軽減できます。

ベストプラクティス

セキュリティグループによる異なるサービスクラスターの隔離

データベースクラスターと Web サーバークラスターという 2 つの ECS インスタンスクラスターがあると仮定します。データベースクラスター内のインスタンス同士は相互に通信する必要がありますが、Web サーバークラスター内のインスタンス同士は通信する必要はありません。目的は、Web サーバークラスターがデータベースクラスターのサービスポートのみにアクセスできるようにすることです。

image

データベースクラスターの IP アドレス範囲を 10.1.0.0/24、Web サーバークラスターのアドレス範囲を 10.2.0.0/24 とします。サービスポートは PostgreSQL のデフォルトポートである 5432 とします。セキュリティ目標は、Web サーバークラスターがデータベースクラスターのサービスポート(5432)のみにアクセスできるようにすることです。その他のすべてのアクセス(他のポートへのアクセスや、データベースクラスターから Web サーバークラスターへのアクセスなど)は拒否する必要があります。以下に、一例となるセキュリティグループ構成を示します:

  1. セキュリティグループ A を作成します。ソース 10.2.0.0/24 から宛先ポート 5432 へのインバウンドルールを優先度 1 で追加し、データベースクラスターのインスタンスをこのセキュリティグループ A にアタッチします。

  2. セキュリティグループ B を作成します。Web サーバークラスターのインスタンスをこのセキュリティグループ B にアタッチします。

:デフォルトでは、セキュリティグループは明示的に許可されていないすべてのインバウンドトラフィックを拒否し、明示的に拒否されていないすべてのアウトバウンドトラフィックを許可します。したがって、セキュリティグループ A に「その他のアクセスを拒否」するルールを追加する必要はありません。また、セキュリティグループ B に「Web サーバークラスターのサービスポートへのアクセスを許可」するルールを追加する必要もありません。

タグを使用して、特定のタグを持つ複数の ECS インスタンスを、同じタグを持つセキュリティグループに一括でアタッチできます。たとえば、データベースクラスター内のすべての ECS インスタンスにタグ cluster:PostgreSQL を付与し、セキュリティグループ A にも同じタグを付与します。その後、ACS-ECS-CorrectSecurityGroupInstancesByTags OOS テンプレートを実行し、パラメーターとしてタグ値を指定します。これにより、インスタンスを一括でセキュリティグループにアタッチできます。詳細については、「タグを使用して ECS インスタンスを検索し、同じタグを持つセキュリティグループに追加する」をご参照ください。

単一セキュリティグループ内における ECS インスタンスの隔離

前述の例では、Web サーバークラスター内のインスタンス同士は相互に通信する必要がありません。また、データベースクラスターでは同期および管理のためにごく少数のポートのみを開けば十分です。したがって、グループ内でのすべての内部通信を許可する必要はありません。このような運用は、侵害された ECS インスタンスから脅威が横方向に拡大するのを防ぎます。

これを実現するにはマイクロセグメンテーションを活用します。マイクロセグメンテーションでは、セキュリティグループ内のインスタンスはデフォルトで相互に通信できません。特定のポートでの通信を許可するには、明示的にルールを設定する必要があります。

  • エンタープライズセキュリティグループを使用する:内部隔離が強制適用され、隔離ルールの変更はできません。

  • 基本セキュリティグループを使用する:デフォルトでは、基本セキュリティグループ内のインスタンスは相互に通信できます。システムが自動的に最高優先度の隠し許可ルールを追加し、カスタムルールはグループ外のトラフィックにのみ適用されます。内部通信を無効化するには、セキュリティグループの製品ページで「内部接続性ポリシー」を変更し、「内部隔離」に設定します。

    image.png

その後、内部通信ポートに対するトラフィックを明示的に許可する必要があります。たとえば、アドレス範囲 10.1.0.0/24 内のデータベースクラスターでは、内部通信にポート 2379 が必要です。この場合、セキュリティグループ A に「ソース 10.1.0.0/24 から宛先ポート 2379 へのインバウンドトラフィックを優先度 1 で許可」するルールを追加します。

注:ECS インスタンスが複数のセキュリティグループにアタッチされている場合、そのうちの 1 つが内部トラフィックを許可し、もう 1 つが内部隔離を設定していると、最終的な効果は内部トラフィックの許可となります。

複数のセキュリティグループを併用する際の効果の確認

1 つのインスタンスは複数のセキュリティグループにアタッチできます。各セキュリティグループのルールは優先度に基づいて統合・適用されます。予期しない結果を回避するため、最終的に統合されたルールを確認してください。これらのルールは、対象インスタンスのセキュリティグループページで確認できます。

コンプライアンス

過剰に許容的なネットワークアクセスルールの確認

VPC フローログ を使用すると、クラスター内の通信パターンを分析できます。これにより、過剰に許容的なセキュリティグループルールを特定し、セキュリティグループの権限を厳格化できます。