このトピックでは、Elastic Compute Service (ECS) のセキュリティグループ特性に基づいて、一般的なシナリオ (インスタンスにデプロイされたwebサイトが外部webサービスを提供する必要がある場合や、オンプレミスサーバーからインスタンスに接続する場合など) のセキュリティグループルールを設定する方法について説明します。
背景情報
セキュリティグループルールに関する次の項目に注意してください。
- Virtual Private Cloud (VPC) タイプのセキュリティグループでは、各ルールがインターネットと内部ネットワークの両方へのアクセスを制御します。 クラシックネットワークタイプのセキュリティグループでは、パブリックルール (インターネット入力ルールとインターネット出力ルール) がインターネットへのアクセスまたはインターネットからのアクセスを制御し、内部ルール (インバウンドルールとアウトバウンドルール) が内部ネットワークへのアクセスまたは内部ネットワークからのアクセスを制御します。
- このトピックで説明するすべてのルール例は、一般的なアプリケーションで使用されるデフォルトポートに対して設定されます。 インスタンスにデプロイされたアプリケーションは、インスタンスのポートを使用して外部サービスを提供します。 詳細については、「一般的な ECS インスタンスポートの紹介」をご参照ください。
webサービスを提供するwebサイトのセキュリティグループルール
ルールを含まないセキュリティグループは、すべてのインバウンドアクセスを拒否します。 インスタンスにデプロイされたwebサイトで外部webサービスを提供する必要がある場合は、次の表に示すセキュリティグループルールを追加して、ポート80 (HTTP) や443 (HTTPS) などの必要なポートへのインバウンドアクセスを許可する必要があります。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 80/80 | 出典: 0.0.0.0/0 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 443/443 | 出典: 0.0.0.0/0 |
説明 上記のルールを追加してもWebサイトにアクセスできない場合は、問題のトラブルシューティングを行います。 詳細については、「TCPポート80が使用可能かどうかの確認」をご参照ください。
オンプレミスサーバーからインスタンスに接続するためのセキュリティグループルール
ルールを含まないセキュリティグループは、すべてのインバウンドアクセスを拒否します。 オンプレミスサーバーからインスタンスに接続する前に、接続方法に基づいて必要なポートへのインバウンドアクセスを許可するセキュリティグループルールを追加する必要があります。 たとえば、Secure Shell (SSH) を使用してLinuxインスタンスに接続するには、ポート22へのインバウンドSSHアクセスを許可するルールを追加する必要があります。 リモートデスクトッププロトコル (RDP) を使用してWindowsインスタンスに接続するには、ポート3389へのインバウンドRDPアクセスを許可するルールを追加する必要があります。 次の表に、ルールの例を示します。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 22/22 | 出典: 0.0.0.0/0 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 3389/3389 | 出典: 0.0.0.0/0 |
説明
0.0.0.0/0
はすべてのIPアドレスを示します。 セキュリティ上の理由から、最小権限の原則に基づいて、特定のIPアドレスを許可オブジェクトとして指定することを推奨します。 Alibaba Cloud Workbenchを使用してインスタンスに接続する場合、特定のサーバーへのアクセスを許可するセキュリティグループルールを追加する必要があります。 次の表に、ルールの例を示します。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 22/22 | 出典: 161.117.90.22/32 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 3389/3389 | 出典: 161.117.90.22/32 |
説明 クラシックネットワーク内のインスタンスへのWorkbenchアクセスを許可するために使用されるセキュリティグループルールの詳細については、「パスワードまたはキーを使用してLinuxインスタンスに接続するセキュリティグループルールを追加する」セクションと、「パスワードまたはキーを使用してWindowsインスタンスに接続する」セクションの「セキュリティグループルールを追加する」セクションを参照してください。パスワードまたはキーを使用してWindowsインスタンスに接続する。
異なるセキュリティグループ内のインスタンスが相互に通信するためのセキュリティグループルール
ルールを含まない異なるセキュリティグループ内のインスタンスは、内部ネットワークを介して互いに分離されます。 同じVPC内の異なるセキュリティグループのインスタンス間でデータを共有する場合 (たとえば、セキュリティグループA内のインスタンスがFTP経由でセキュリティグループB内のインスタンスの共有ファイルにアクセスする場合) 、内部ネットワークを介したセキュリティグループ間の相互アクセスを許可するルールを追加できます。 これは、個々のIPアドレスまたはCIDRブロックへのアクセスを許可するルールを追加するよりも便利です。
説明 この方法は、異なるVPC内にあるインスタンスでは機能しません。 Cloud Enterprise Network (CEN) を使用して、VPC内のインスタンスを別のVPC内のインスタンスに接続できます。 詳細については、「概要」をご参照ください。
セキュリティグループAとセキュリティグループBが同じAlibaba Cloudアカウントに属している場合、セキュリティグループAからのインバウンドアクセスを許可するルールをセキュリティグループBに追加するときに、権限付与オブジェクトとしてセキュリティグループaのIDを指定する必要があります。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 21/21 | 出典: sg-bp1hv6wvmegs036 **** |
説明 上の表で提供されているセキュリティグループIDは、参照専用です。 実際のセキュリティグループIDに置き換えます。
セキュリティグループAとセキュリティグループBが同じAlibaba Cloudアカウントに属していない場合、セキュリティグループAからのインバウンドアクセスを許可するルールをセキュリティグループBに追加するときに、セキュリティグループaのIDと関連するAlibaba CloudアカウントのIDを承認オブジェクトとして指定する必要があります。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 21/21 | 出典: 160998252992 ****/sg-bp174yoe2ib1sqj5 **** |
説明 上の表に記載されているAlibaba CloudアカウントIDとセキュリティグループIDは参照専用です。 それらを実際のIDに置き換えます。
データベースへのアクセスに関するセキュリティグループルール
インスタンスにデータベースをデプロイしていて、他のインスタンスが内部ネットワーク経由でデータベースからデータを取得する場合は、ポート3306 (MySQL) 、ポート1521 (Oracle) 、ポート1433 (MS SQL) 、ポート5432 (PostgreSQL) 、ポート6379 (Redis) などのデータベースタイプに基づいて、必要なポートへのインバウンドアクセスを許可するルールを追加する必要があります。 次の表に、ルールの例を示します。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 3306/3306 | ソース: 172.16.XX.XX.XX |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 1521/1521 | ソース: 192.168.XX.XX |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 1433/1433 | ソース: 192.168.XX.XX/16 |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 5432/5432 | 出典: sg-bp1hv6wvmegs036 **** |
インバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 6379/6379 | 出典: 160998252992 ****/sg-bp174yoe2ib1sqj5 **** |
説明 上記の表に記載されているIPアドレス、CIDRブロック、Alibaba CloudアカウントID、およびセキュリティグループIDは、参照専用です。 それらを実際の情報に置き換えます。
インスタンスのpingのセキュリティグループルール
インターネット制御メッセージプロトコル (ICMP) は、制御メッセージを送信するために使用される。 クライアントでpingコマンドを実行してインスタンスにpingを実行するなど、特定のテスト操作を実行する前に、インバウンドICMPアクセスを許可するルールを追加する必要があります。 次の表に、ルールの例を示します。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
インバウンド | 許可 | 1 | すべてのICMP (IPv4) | 宛先: -1/-1 | 出典: 0.0.0.0/0 |
インバウンド | 許可 | 1 | すべてのICMP (IPv6) | 宛先: -1/-1 | ソース: ::/0 |
インスタンスから外部Webサイトへのアクセスを制限するセキュリティグループルール
デフォルトでは、基本セキュリティグループはすべてのアウトバウンドアクセスを許可します。 基本的なセキュリティグループ内のインスタンスが特定のWebサイトにのみアクセスできるようにするには、セキュリティグループをホワイトリストとして使用し、すべてのアウトバウンドアクセスを拒否する禁止ルールを追加してから、WebサイトのIPアドレスへのアウトバウンドアクセスを許可する許可ルールを追加します。 次の项目に注意してください。
- 複数のルールが、それらのプロトコル、ポート範囲、および許可オブジェクトに基づいて要求を照合した後、要求は、これらのルールの優先順位およびアクションに対してさらに照合され、適用する単一のルールが決定される。 許可ルールが一致して適用されるまで、セッションは確立されません。
- セキュリティグループルールの優先度の値が小さいほど、優先度が高いことを示す。 2つのセキュリティグループルールの優先度が同じで、アクションのみが異なる場合、禁止ルールが有効になります。 したがって、禁止ルールの優先度は、許可ルールの優先度よりも低くする必要があります。 これにより、許可ルールが有効になり、指定されたWebサイトのIPアドレスへのアウトバウンドアクセスが許可されます。
方向 | 操作 | Priority | プロトコルの種類 | ポート範囲 | 権限付与対象 |
アウトバウンド | 禁止 | 2 | All | 宛先: -1/-1 | 宛先: 0.0.0.0/0 |
アウトバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 80/80 | 目的地: 47.96.XX.XX |
アウトバウンド | 許可 | 1 | カスタマイズTCP | 目的地: 443/443 | 目的地: 121.199.XX.XX |
説明 上の表で提供されているWebサイトのIPアドレスは参照用です。 それらをWebサイトの実際のIPアドレスに置き換えます。
ルールが追加されたら、インスタンスにログインして、pingコマンドの実行などのテストを実行できます。 インスタンスが指定されたIPアドレスのみにアクセスできる場合、セキュリティグループルールが有効になります。