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

Server Load Balancer:セキュリティグループを使用してリスナーとポートに基づいてアクセス制御を構成する

最終更新日:Dec 10, 2024

リクエストからのアクセスを規制するために、プロトコル、ポート、およびIPアドレスに基づいてアクセス制御を実装するようにセキュリティグループを構成できます。 セキュリティグループは、アクセス制御リストよりもきめ細かいアクセス制御を提供します。 セキュリティグループは、プロトコルとポートに基づくアクセス制御をサポートするだけでなく、IPv6アドレスからのアクセスを規制するアクセス制御ポリシーもサポートします。

シナリオ

Application Load Balancer (ALB) インスタンスへのインバウンドアクセスを制御する場合は、ALBインスタンスをセキュリティグループに追加し、セキュリティ要件に基づいてセキュリティグループルールを設定できます。

重要
  • ALBアウトバウンドトラフィックは、ユーザーに返される応答パケットを指します。 サービスの継続性を確保するため、ALBセキュリティグループは送信パケットをブロックしません。 アウトバウンドルールを作成する必要はありません。

  • セキュリティグループを作成するときは、優先度が1の拒否ルールにALBのローカルIPアドレスを追加しないことを推奨します。 そうしないと、セキュリティグループルールがALBの管理セキュリティグループと競合し、ALBとバックエンドサーバー間の通信が中断される可能性があります。 ALBインスタンスのローカルIPアドレスを表示するには、ALBコンソールにログインし、ALBインスタンスの詳細ページに移動します。

一部のリスナーポートへのアクセスをブロックし、他のリスナーポートへのアクセスを許可する場合は、ポートへのアクセスを制御するようにセキュリティグループを構成できます。 次の表に、3つの異なるシナリオでセキュリティグループを設定して、ALBインスタンスのポートのアクセス制御を有効にする方法を示します。 このシナリオでは、ポート80でリッスンするHTTPリスナーとポート81でリッスンするHTTPリスナーがALBインスタンスに設定されます。

シナリオ

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

期待される結果

関連ドキュメント

ALBインスタンスをセキュリティグループに追加する前

デフォルトでは、ALBインスタンスのリスナーポートはすべてのリクエストを許可します。

  • クライアントはALBインスタンスのHTTPポート80にアクセスできます

  • クライアントはALBインスタンスのHTTPポート81にアクセスできます

手順5: ALBインスタンスをセキュリティグループに追加する前にネットワーク接続をテストする

ALBインスタンスをセキュリティグループに追加する

HTTPポート81へのリクエストをブロックする

説明

このセクションでは、このトピックに関連するセキュリティグループルールについてのみ説明します。 その他のデフォルトルールについては説明しません。

  • クライアントはALBインスタンスのHTTPポート80にアクセスできます

  • クライアントはALBインスタンスのHTTPポート81にアクセスできません

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

セキュリティグループルールの変更

  • HTTPポート80へのリクエストをブロックする

  • HTTPポート81へのリクエストをブロックする

説明

このセクションでは、このトピックに関連するセキュリティグループルールについてのみ説明します。 その他のデフォルトルールについては説明しません。

  • クライアントはALBインスタンスのHTTPポート80にアクセスできません

  • クライアントはALBインスタンスのHTTPポート81にアクセスできません

手順7: セキュリティグループルールの変更と結果の検証

制限事項

重要

デフォルトでは、セキュリティグループは使用できません。 セキュリティグループを使用するには、アカウントマネージャーに連絡してください。

カテゴリ

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

説明

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

  • 基本的なセキュリティグループ

  • 高度なセキュリティグループ

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

  • ALBインスタンスは、最大4つのセキュリティグループに追加できます。同じタイプである必要があります。 同じALBインスタンスを基本セキュリティグループと高度セキュリティグループに同時に追加することはできません。

    基本セキュリティグループ内のALBインスタンスを高度なセキュリティグループに追加するには、ALBインスタンスを高度なセキュリティグループに追加する前に、基本セキュリティグループからALBインスタンスを削除します。 高度なセキュリティグループにALBインスタンスを追加するには、まずすべての基本的なセキュリティグループからALBインスタンスを削除します。

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

セキュリティグループがサポートされていませんALB

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

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

前提条件

  • VPC1という名前の仮想プライベートクラウド (VPC) が作成されます。 詳細については、「VPC の作成と管理」をご参照ください。

  • ECS01とECS02という名前の2つのElastic Compute Service (ECS) インスタンスがVPC1に作成されます。 ECS01およびECS02は、ALBインスタンスのバックエンドサーバーとして機能します。 異なるアプリケーションがECS01とECS02に展開されます。

    • ECSインスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。

    • 次のサンプルコードは、ECS01およびECS 02にテストアプリケーションをデプロイする方法を示しています。

      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

リソースの設定

手順1: ALBインスタンスのサーバーグループの作成

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

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

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

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

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

    次の表に、このトピックに関連するパラメーターを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「サーバーグループの作成と管理」をご参照ください。

    パラメーター

    説明

    サーバーグループタイプ

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

    サーバーグループ名

    サーバーグループの名前を入力します。

    [VPC]

    サーバーグループを作成するVPCを選択します。 この例では、VPC1が選択されています。

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

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

    スケジューリングアルゴリズム

    スケジューリングアルゴリズムを選択します。 この例では、[加重ラウンドロビン] が選択されています。

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

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

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

  9. バックエンドサーバーのポートと重みを指定し、[OK] をクリックします。

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

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

  2. [インスタンス] ページで、[ALBの作成] をクリックします。

  3. 購入ページで、次のパラメータを設定します。

    次のセクションでは、一部のパラメーターについてのみ説明します。 他のパラメータはデフォルト値を使用する。 詳細については、「ALBインスタンスの作成」をご参照ください。

    • リージョン: ALBインスタンスを作成するリージョンです。 この例では、中国 (杭州) が選択されています。

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

    • VPC: ALBインスタンスを作成するVPC。 この例では、VPC1が選択されています。

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

  5. [インスタンス] ページに戻り、ALBインスタンスのIDをクリックします。

  6. [リスナー] タブをクリックし、[リスナーのクイック作成] をクリックします。

  7. [クイック作成リスナー] ダイアログボックスでパラメーターを設定し、[OK] をクリックします。 この例では、ポート80でリッスンするHTTPリスナーが作成されます。 下表に、各パラメーターを説明します。

    パラメーター

    説明

    リスナープロトコル

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

    リスナーポート

    リスナーポートを入力します。 この例では、ポート80が指定されている。

    サーバーグループ

    [サーバータイプ] を選択し、[サーバータイプ] の横にあるドロップダウンリストからサーバーグループを選択します。 この例では、ステップ1で作成したサーバグループが選択されています。

  8. [リスナー] タブで、[クイック作成リスナー] をクリックします。

  9. [クイック作成リスナー] ダイアログボックスでパラメーターを設定し、[OK] をクリックします。 この例では、ポート81でリッスンするHTTPリスナーが作成されます。 下表に、各パラメーターを説明します。

    パラメーター

    説明

    リスナープロトコル

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

    リスナーポート

    リスナーポートを入力します。 この例では、ポート81が指定されている。

    サーバーグループ

    [サーバータイプ] を選択し、[サーバータイプ] の横にあるドロップダウンリストからサーバーグループを選択します。 この例では、ステップ1で作成したサーバグループが選択されています。

手順3: CNAMEレコードの設定

実際のビジネスシナリオでは、CNAMEレコードを使用して、カスタムドメイン名をALBインスタンスのドメイン名にマップすることを推奨します。

  1. 左側のナビゲーションウィンドウで、ALB > インスタンスを選択します。

  2. インスタンスページで、ALBインスタンスのドメイン名をコピーします。

  3. CNAMEレコードを作成するには、次の手順を実行します。

    説明

    ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。

    1. Alibaba Cloud DNSコンソールにログインします。

    2. 権威DNS解決ページで、ドメイン名を見つけて、アクション列のDNS設定をクリックします。

    3. ドメイン名の詳細ページのDNS設定タブで、DNSレコードの追加をクリックします。

    4. [DNSレコードの追加] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。

      パラメーター

      説明

      レコードタイプ

      ドロップダウンリストから [CNAME] を選択します。

      ホスト名

      ドメイン名のプレフィックスを入力します。 この例では、@ を入力します。

      説明

      ルートドメイン名を使用する場合は、@ と入力します。

      DNSリクエストソース

      [デフォルト] を選択します。

      レコード値

      ALBインスタンスのドメイン名であるCNAMEを入力します。

      TTL

      DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。

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

ALBインスタンスをセキュリティグループに追加する前に、ECSコンソールでセキュリティグループを作成する必要があります。

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

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

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

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

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

    次のセクションでは、このトピックに関連するパラメーターのみについて説明します。 その他のパラメーターの詳細については、「セキュリティグループの作成」をご参照ください。

    • クイック作成リスナー: この例では、VPC1が選択されています。

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

  6. セキュリティグループにアクセスルールを追加します。

    1. [インバウンド] タブで、[ルールの追加] をクリックします。

    2. パラメーターを設定し、[セキュリティグループの作成] をクリックします。 下表に、各パラメーターを説明します。

      パラメーター

      説明

      Action

      [拒否] を選択します。

      優先度

      デフォルト値の1が使用されます。

      プロトコルタイプ

      [カスタムTCP] を選択します。

      説明

      QUICリスナーのセキュリティグループルールを追加するには、[カスタムUDP] を選択します。

      ポート範囲

      ポート番号81を入力します。

      権限付与オブジェクト

      [すべてのIPv4アドレス (0.0.0.0/0)] および [すべてのIPv6アドレス (::/0)] を選択します。

      説明

      セキュリティグループルールの説明を入力します。

手順5: ALBインスタンスをセキュリティグループに追加する前にネットワーク接続をテストする

クライアントとECS01およびECS02間のネットワーク接続をテストします。 この例では、インターネットアクセスを有するクライアントが使用される。

  1. http:// domain name:80など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 次の図は、ALBインスタンスがHTTPポート80にアクセスできることを示しています。

    image

  2. http:// domain name:81など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 次の図は、ALBインスタンスがHTTPポート81にアクセスできることを示しています。

    image

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

ALBインスタンスをセキュリティグループに追加し、セキュリティグループルールがポートで有効になるかどうかをテストします。

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

  2. [インスタンス] ページで、管理するALBインスタンスのIDをクリックします。 [インスタンスの詳細] タブで、[セキュリティグループ] タブをクリックします。

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

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

    次の表では、このトピックに関連するインバウンドルールのみを説明します。 ALBインスタンスは、次のセキュリティグループルールを使用します。

    Action

    優先度

    プロトコルタイプ

    ポート範囲

    権限付与オブジェクト

    許可

    1

    カスタマイズTCP

    目的地: 80/80

    出典: すべてのIPv4アドレス (0.0.0.0/0)

    許可

    1

    カスタマイズTCP

    目的地: 80/80

    ソース: すべてのIPv6アドレス (::/0)

    拒否

    1

    カスタマイズTCP

    目的地: 81/81

    出典: すべてのIPv4アドレス (0.0.0.0/0)

    拒否

    1

    カスタマイズTCP

    目的地: 81/81

    ソース: すべてのIPv6アドレス (::/0)

  5. セキュリティグループルールを変更した後、ポートのアクセシビリティをテストします。

    1. http:// domain name:80など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 次の図は、ALBインスタンスがHTTPポート80にアクセスできることを示しています。

      image

    2. http:// domain name:81など、ブラウザのアドレスバーにドメイン名とポート番号を入力し、Enterキーを押します。 アプリケーションにアクセスできない場合は、コマンドラインインターフェイス (CLI) を開き、curl http:// Domain name:81コマンドを実行します。 次の図は、クライアントがALBインスタンスのHTTPポート81にアクセスできないことを示しています。 この結果は、セキュリティグループルールがポート81で有効になることを示しています。

      image

手順7: セキュリティグループルールの変更と結果の検証

セキュリティグループルールを変更し、セキュリティグループルールがポートで有効になるかどうかをテストします。

  1. [インスタンス] ページに戻り、ALBインスタンスのIDをクリックします。 [インスタンスの詳細] タブで、[セキュリティグループ] タブをクリックします。

  2. [基本情報] セクションで、セキュリティグループのIDをクリックします。 [セキュリティグループ] タブの右上隅にある [ECSコンソール] をクリックして、[セキュリティグループの詳細] ページに移動することもできます。

  3. [セキュリティグループの詳細] ページで、TCPポート80へのアクセスを許可するセキュリティグループルールを見つけ、[操作] 列の [変更] をクリックします。 [アクション][拒否] に設定し、[保存] をクリックします。

    次の表に、このトピックに関連するセキュリティグループルールのみを示します。 次の表に、新しいセキュリティグループルールを示します。

    Action

    優先度

    プロトコルタイプ

    ポート範囲

    権限付与オブジェクト

    拒否

    1

    カスタマイズTCP

    目的地: 80/80

    出典: すべてのIPv4アドレス (0.0.0.0/0)

    拒否

    1

    カスタマイズTCP

    目的地: 80/80

    ソース: すべてのIPv6アドレス (::/0)

    拒否

    1

    カスタマイズTCP

    目的地: 81/81

    出典: すべてのIPv4アドレス (0.0.0.0/0)

    拒否

    1

    カスタマイズTCP

    目的地: 81/81

    ソース: すべてのIPv6アドレス (::/0)

  4. セキュリティグループルールを変更した後、ポートのアクセシビリティをテストします。

    1. CLIを開き、curl http:// Domain name:80コマンドを実行します。 次の図は、クライアントがALBインスタンスのHTTPポート80にアクセスできないことを示しています。 この結果は、セキュリティグループルールがポート80で有効になることを示しています。

      image

    2. CLIを開き、次のコマンドを実行します: curl http:// Domain name:81。 次の図は、クライアントがALBインスタンスのHTTPポート81にアクセスできないことを示しています。 この結果は、セキュリティグループルールがポート81で有効になることを示しています。

      image

関連ドキュメント