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

Server Load Balancer:セキュリティグループをブラックリストまたはホワイトリストとして使用する

最終更新日:Dec 06, 2024

特定のIPアドレスからNetwork Load Balancer (NLB) インスタンスへのリクエストを拒否または許可する場合は、NLBインスタンスのセキュリティグループを設定してアクセス制御を実装できます。 NLBセキュリティグループは、詳細なアクセス制御を実装するホワイトリストまたはブラックリストとして使用できます。

サンプルシナリオ

  • NLBインスタンスがセキュリティグループに追加される前に、NLBインスタンスのリスナーポートはデフォルトですべてのリクエストを受け入れます。

  • NLBインスタンスがDenyルールを含まないセキュリティグループに追加されると、NLBインスタンスのリスナーポートはデフォルトですべてのリクエストを受け入れます。 特定のIPアドレスからNLBインスタンスへのリクエストのみを許可する場合は、拒否ルールも作成する必要があります。

NLBインスタンスにアクセス制御要件があり、NLBインスタンスへのインバウンドトラフィックを制御する場合は、NLBインスタンスをセキュリティグループに追加し、ビジネス要件に基づいてセキュリティグループルールを設定できます。

重要

NLBインスタンスのアウトバウンドトラフィックは、ユーザーリクエストに返される応答を参照します。 サービスが影響を受けないようにするため、NLBセキュリティグループはアウトバウンドトラフィックを制限しません。 セキュリティグループのアウトバウンドルールを設定する必要はありません。

次のシナリオは、ホワイトリストとブラックリストの仕組みを示すために使用されます。 詳細については、「セキュリティグループルール」をご参照ください。

ブラックリストは、特定のIPアドレスからのアクセスを拒否します。

image.png

ホワイトリストは、特定のIPアドレスからのアクセスのみを許可します。

image.png

制限事項

カテゴリ

セキュリティグループタイプ

説明

NLBでサポートされているセキュリティグループ

  • ベーシックセキュリティグループ

  • アドバンストセキュリティグループ

  • セキュリティグループとNLBインスタンスは、同じ仮想プライベートクラウド (VPC) に属している必要があります。

  • NLBインスタンスを最大4つのセキュリティグループに追加できます。 NLBインスタンスが追加されるセキュリティグループは、同じタイプである必要があります。

    NLBインスタンスが基本セキュリティグループに追加され、そのインスタンスを高度なセキュリティグループに追加する場合は、基本セキュリティグループからNLBインスタンスを削除する必要があります。 NLBインスタンスが高度なセキュリティグループに追加され、そのインスタンスを基本セキュリティグループに追加する場合は、高度なセキュリティグループからNLBインスタンスを削除する必要があります。

  • パブリックプレビュー中に2022された9月30日より前に作成されたNLBインスタンスは、セキュリティグループに追加できません。 セキュリティグループを使用するには、NLBインスタンスを交換するか、新しいNLBインスタンスを購入します。

基本セキュリティグループと高度なセキュリティグループの詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。

NLBでサポートされていないセキュリティグループ

管理セキュリティグループ

マネージドセキュリティグループの詳細については、「マネージドセキュリティグループ」をご参照ください。

前提条件

4つのECS (Elastic Compute Service) インスタンスが作成されます。 ECSインスタンスの作成方法の詳細については、「ECSインスタンスの購入」をご参照ください。

  • ECS01およびECS02は、NLBインスタンスのバックエンドサーバーとして機能します。 アプリケーションはECS01およびECS02にデプロイされます。

    次のサンプルコマンドを使用して、ECS01およびECS02にテストアプリケーションをデプロイします。

    ECS01にアプリケーションをデプロイするためのコマンド

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS01." > index.html
    

    ECS02にアプリケーションをデプロイするためのコマンド

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS02." > index.html
    
  • ECS03およびECS04は、NLBインスタンスへのアクセスに使用されるインターネット接続インスタンスです。 既存のLinuxサーバーを使用してNLBインスタンスにアクセスすることもできます。 この場合、ECS03とECS04を作成する必要はありません。

  • ドメイン名が登録され、そのドメイン名のインターネットコンテンツプロバイダ (ICP) 番号が取得され、カスタムドメイン名をNLBインスタンスのドメイン名にマッピングするためのCNAMEレコードが作成されます。 詳細については、「ジェネリックドメイン名の登録」、「ICP登録プロセス」、および「手順4: DNSレコードの作成」をご参照ください。

    次の表に、このトピックで使用されるECSインスタンスの設定を示します。

    インスタンス

    ECS設定

    [VPC]

    IPアドレス

    手順

    ECS01

    • インスタンスタイプ: ecs.u1-c1m1.large

    • CPUとメモリ: 2 vCPUと2 GiBのメモリ

    • オペレーティングシステム: Alibaba Cloud Linux 3.2104 LTS 64ビット

    • ネットワークタイプ:VPC

    VPC01

    • プライベート: 192.168.0.24

    • パブリック: 割り当てられていません

    インスタンスは、NLBインスタンスのバックエンドサーバーとして指定されます。

    ECS02

    • プライベート: 192.168.0.37

    • パブリック: 割り当てられていません

    ECS03

    VPC02

    • プライベート: 192.168.0.25

    • 公開: 47.XX. XX.55

    インスタンスは、NLBインスタンスにアクセスするためのクライアントとして使用されます。

    ECS04

    • プライベート: 192.168.0.26

    • パブリック: 101.XX. XX.251

手順1: サーバーグループの作成

  1. NLBコンソールにログインします。

  2. 上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。

  3. 左側のナビゲーションウィンドウで、NLB > サーバーグループを選択します。

  1. [サーバーグループ] ページで、[サーバーグループの作成] をクリックします。

  2. [サーバーグループの作成] ダイアログボックスで、次のパラメーターを設定し、[作成] をクリックします。

    サーバーグループを作成するための重要なパラメーターを次の表に示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「サーバーグループの作成」をご参照ください。

    パラメーター

    説明

    サーバーグループタイプ

    サーバグループの種類を指定します。 この例では、[サーバー] が選択されています。

    サーバーグループ名

    サーバーグループの名前を入力します。 この例では、RS01が使用される。

    [VPC]

    ドロップダウンリストからVPCを選択します。 この例では、VPC1が選択されています。 サーバーグループは、ECS01およびECS02と同じVPCに存在する必要があります。

    バックエンドサーバープロトコル

    バックエンドプロトコルを選択します。 この例では、TCPが選択されています。

  1. [サーバーグループ作成] ダイアログボックスで、[バックエンドサーバーの追加] をクリックします。

  2. [バックエンドサーバー] タブで、[バックエンドサーバーの追加] をクリックします。

  3. [バックエンドサーバーの追加] パネルで、[ECS01] と [ECS02] を選択し、[次へ] をクリックします。

  4. バックエンドサーバーのポートと重みを指定し、[OK] をクリックします。 この例では、ポート80が指定され、デフォルトの重みが使用されます。

手順2: NLBインスタンスの作成とリスナーの設定

  1. 左側のナビゲーションウィンドウで、[NLB] > [インスタンス] を選択します。 [インスタンス] ページで、[NLBの作成] をクリックします。

  2. [NLB (従量課金)] ページで、次のパラメーターを設定します。

    次の表に、一部のパラメーターのみを示します。 その他のパラメーターの詳細については、「NLBインスタンスの作成」をご参照ください。

    • リージョン: この例では、中国 (杭州) が選択されています。

    • ネットワークタイプ: この例では、インターネットが選択されています。

    • VPC: この例では、VPC01が選択されています。

  3. [今すぐ購入] をクリックし、支払いを完了します。

  4. [インスタンス] ページに戻り、作成したNLBインスタンスを見つけ、NLBインスタンスのIDをクリックします。

  5. [リスナー] タブをクリックします。 [リスナー] タブで、[クイック作成リスナー] をクリックします。 [リスナーのクイック作成] ダイアログボックスで、次のパラメーターを設定して、ポート80を使用するTCPリスナーを作成し、[OK] をクリックします。

    パラメーター

    手順

    リスナープロトコル

    リスナープロトコルを選択します。 この例では、TCPが選択されています。

    リスナーポート

    この例では、ポート80が使用される。

    サーバーグループ

    [サーバータイプ] を選択し、[サーバータイプ] の横にあるドロップダウンリストからサーバーグループを選択します。

    この例では、手順1: サーバーグループの作成で作成されたサーバーグループが選択されています。

  6. NLBインスタンスがセキュリティグループに追加されていない場合、NLBインスタンスのアクセシビリティを確認します。 curl -s http://whatismyip.akamai.com/ コマンドを使用して、要求を送信するクライアントのパブリックIPアドレスを照会できます。

    1. ECS03にログインします。 次のコマンドを実行して、ECS03がNLBインスタンスにアクセスできるかどうかをテストします。telnetドメイン名80

      次の図に示すようにエコー応答パケットを受信した場合、ECS03はNLBインスタンスにアクセスできます。image.png

    2. ECS04にログインします。 次のコマンドを実行して、ECS04がNLBインスタンスにアクセスできるかどうかをテストします: telnetドメイン名80

      次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできます。image.png

    結果は、NLBインスタンスがセキュリティグループに追加される前に、ECS03とECS04がNLBインスタンスにアクセスできることを示しています。

手順3: セキュリティグループの作成

NLBインスタンスをセキュリティグループに追加する前に、ECSコンソールでセキュリティグループを作成する必要があります。 ここでは、2つのセキュリティグループを作成する方法について説明します。

  • セキュリティグループ1のブラックリスト

    指定したIPアドレスからのアクセスを拒否する拒否ルールを追加します。 この例では、ECS03のパブリックIPアドレス47.XX. XX.55からのアクセスを拒否するDenyルールを作成します。 デフォルトのセキュリティグループルールを維持できます。 次の表に、ルールの設定を示します。

    ポリシー

    優先度

    プロトコル

    ポート範囲

    権限付与オブジェクト

    拒否

    1

    All

    宛先: -1/-1

    出典: 47.XX. XX.55

  • セキュリティグループ2をホワイトリストとして

    特定のIPアドレスからのアクセスを許可する許可ルールと、特定のIPアドレスからのアクセスを拒否する拒否ルールを追加します。 この例では、ECS03のパブリックIPアドレス47.XX. XX.55からのアクセスを許可するAllowルールとDenyルールを作成します。 次の表に、ルールの設定を示します。

    ポリシー

    優先度

    プロトコル

    ポート範囲

    権限付与オブジェクト

    必須

    1

    All

    宛先: -1/-1

    出典: 47.XX. XX.55

    拒否

    100

    All

    宛先: -1/-1

    出典: 0.0.0.0/0

  1. ECS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[ネットワークとセキュリティ] > [セキュリティグループ] を選択します。

  3. 上部のナビゲーションバーで、セキュリティグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。

  4. [セキュリティグループ] ページで、[セキュリティグループの作成] をクリックします。

  5. [セキュリティグループの作成] ページで、[基本情報] セクションのパラメーターを設定します。

    以下のパラメーターを指定します。 その他のパラメーターの詳細については、「セキュリティグループの作成」をご参照ください。

    • ネットワーク: この例では、VPC 1が選択されています。 セキュリティグループは、NLBインスタンスと同じVPCに存在する必要があります。

    • セキュリティグループタイプ: この例では、基本的なセキュリティグループが選択されています。

  6. [セキュリティグループの作成] ページで、[アクセスルール] セクションのパラメーターを設定します。

    1. [インバウンド] タブで、[ルールの追加] をクリックして、[セキュリティグループ1] および [セキュリティグループ2] のルールの設定に基づいてルールを追加します。

    2. [セキュリティグループの作成] をクリックします。

手順4: NLBインスタンスをセキュリティグループに追加し、結果を確認します

セキュリティグループ1をブラックリストとして使用する

手順3で作成したセキュリティグループ1にNLBインスタンスを追加し、セキュリティグループ1のルールがNLBインスタンスで有効かどうかをテストします。

  1. NLBコンソールにログインします。

  2. 上部のナビゲーションバーで、NLBインスタンスがデプロイされているリージョンを選択します。 この例では、中国 (杭州) が選択されています。

  3. [NLB][インスタンス] をクリックします。 表示されるページで、手順2: NLBインスタンスの作成とリスナーの設定で作成されたNLBインスタンスを見つけ、インスタンスIDをクリックします。 [インスタンスの詳細] ページで、[セキュリティグループ] タブをクリックします。

  4. [セキュリティグループ] タブで、[セキュリティグループの作成] をクリックします。 [セキュリティグループにNLBインスタンスを追加] ダイアログボックスで、手順3で作成したセキュリティグループを選択し、[OK] をクリックします。

  5. 左側のパネルで、管理するセキュリティグループのIDをクリックします。 [インバウンドポリシー] または [アウトバウンドポリシー] タブをクリックして、セキュリティグループルールを表示できます。

    次の表に、このトピックに関連するパラメーターを示します。

    ポリシー

    優先度

    プロトコル

    ポート範囲

    権限付与オブジェクト

    拒否

    1

    All

    宛先: -1/-1

    出典: 47.XX. XX.55

  6. セキュリティグループ内のNLBインスタンスへのアクセスが拒否されているかどうかをテストします。 curl -s http://whatismyip.akamai.com コマンドを使用して、リクエストを送信するクライアントのパブリックIPアドレスを照会できます。

    1. ECS03にログインします。 次のコマンドを実行して、ECS03がNLBインスタンスにアクセスできるかどうかをテストします。telnetドメイン名80

      次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできませんでした。image.png

    2. ECS04にログインします。 次のコマンドを実行して、ECS04がNLBインスタンスにアクセスできるかどうかをテストします: telnetドメイン名80

      次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできます。image.png

    結果は、NLBインスタンスがセキュリティグループ1に追加された後、拒否ルールで指定されたIPアドレスがNLBインスタンスにアクセスできなくなることを示しています。 拒否ルールで指定されていないIPアドレスは、NLBインスタンスにアクセスできます。

セキュリティグループ2をホワイトリストとして使用する

手順3で作成したセキュリティグループ2にNLBインスタンスを追加し、セキュリティグループ2のルールがNLBインスタンスで有効かどうかをテストします。

  1. NLBコンソールにログインします。

  2. 上部のナビゲーションバーで、NLBインスタンスがデプロイされているリージョンを選択します。 この例では、中国 (杭州) が選択されています。

  3. [NLB][インスタンス] をクリックします。 表示されるページで、手順2: NLBインスタンスの作成とリスナーの設定で作成されたNLBインスタンスを見つけ、インスタンスIDをクリックします。 [インスタンスの詳細] ページで、[セキュリティグループ] タブをクリックします。

  4. [セキュリティグループ] タブで、[セキュリティグループの作成] をクリックします。 [セキュリティグループにNLBインスタンスを追加] ダイアログボックスで、手順3で作成したセキュリティグループ2を選択し、[OK] をクリックします。

  5. 左側のパネルで、管理するセキュリティグループのIDをクリックします。 [インバウンドポリシー] または [アウトバウンドポリシー] タブをクリックして、セキュリティグループルールを表示できます。

    ポリシー

    優先度

    プロトコル

    ポート範囲

    権限付与オブジェクト

    必須

    1

    All

    宛先: -1/-1

    出典: 47.XX. XX.55

    拒否

    100

    All

    宛先: -1/-1

    出典: 0.0.0.0/0

  6. セキュリティグループ内のNLBインスタンスへのアクセスが拒否されているかどうかをテストします。 curl -s http://whatismyip.akamai.com コマンドを使用して、リクエストを送信するクライアントのパブリックIPアドレスを照会できます。

    1. ECS03にログインします。 次のコマンドを実行して、ECS03がNLBインスタンスにアクセスできるかどうかをテストします。telnetドメイン名80

      次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできます。image.png

    2. ECS04にログインします。 コマンドを実行して、ECS04がNLBインスタンスにアクセスできるかどうかをテストします: telnetドメイン名80

      次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできませんでした。image.png

    結果は、NLBインスタンスがセキュリティグループ2に追加された後、セキュリティグループ2の許可ルールで指定されたIPアドレスのみがNLBインスタンスにアクセスできることを示しています。

関連ドキュメント