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

Server Load Balancer:セキュリティグループによるポートレベルのアクセス制御の実装

最終更新日:Jul 31, 2026

Application Load Balancer (ALB) インスタンスへのアクセスを制御するには、セキュリティグループを設定します。アクセス制御リスト (ACL) とは異なり、ALB のセキュリティグループはプロトコルとポートによるアクセス制御をサポートし、IPv6 アドレスに対するアクセス制御ポリシーを提供します。

利用シーン

  • ALB インスタンスがセキュリティグループに関連付けられていない場合、そのリスナーポートはデフォルトですべてのインバウンドリクエストを許可します。

  • ALB インスタンスがセキュリティグループに関連付けられているが、拒否ポリシーが設定されていない場合、ALB のリスナーポートはデフォルトですべてのインバウンドリクエストを許可します。特定の IP アドレスからのアクセスのみを許可するには、キャッチオールルールとして拒否ポリシーを追加します。

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

重要
  • ロードバランサーからのアウトバウンドトラフィックは、クライアントリクエストへの応答で構成されます。通常のビジネス運用を確保するため、ALB インスタンスのセキュリティグループはアウトバウンドトラフィックを制限しません。セキュリティグループにアウトバウンドルールを設定する必要はありません。

  • ALB インスタンスが作成されると、システムはインスタンスの VPC にマネージドセキュリティグループを自動的に生成します。このセキュリティグループは ALB インスタンスによって管理され、ユーザーには表示権限しかありません。ALB のマネージドセキュリティグループには、次のセキュリティグループルールが含まれています:

    • 優先度 1 のルール:デフォルトで、バックエンドサーバーとの通信に使用されるローカル IP アドレスからのトラフィックを許可します。

      セキュリティグループルールを追加する際、ALB インスタンスのローカル IP アドレスに対して優先度 1 の拒否ポリシーを追加しないでください。これはマネージドセキュリティグループのポリシーと競合し、ALB インスタンスとバックエンドサーバー間の通信を妨害します。ローカル IP アドレスは、Application Load Balancer (ALB) コンソールのインスタンス詳細ページで確認できます。

    • 優先度 100 のルール:デフォルトで、すべての IP アドレスからのトラフィックを許可します。

      基本またはエンタープライズセキュリティグループのデフォルトのアクセス制御ルール (非表示) には、他のすべてのトラフィックを拒否するルールが含まれています。ただし、マネージドセキュリティグループのデフォルトの許可ルールが優先されます。

    • ALB Extensible Edition インスタンスの場合、マネージドセキュリティグループには、33.0.0.0/8 および 22.0.0.0/16 の CIDR ブロックからのクライアントアクセスを拒否する、優先度 1 の追加ルールが 2 つ含まれています。

以下の 3 つのシナリオでは、セキュリティグループが関連付けられた ALB インスタンスのポートアクセスをどのように制御するかを説明します。これらの例では、ALB インスタンスはポート 80 とポート 81 にそれぞれ HTTP リスナーを持っています。

シナリオ

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

期待される結果

関連リンク

ALB インスタンスがセキュリティグループに関連付けられていない。

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

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

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

ステップ 5:ALB インスタンスをセキュリティグループに関連付けずに結果を検証する

ALB インスタンスがセキュリティグループに関連付けられている。

HTTP ポート 81 へのアクセスを拒否します。

説明

関連するセキュリティグループルールのみがリストされており、他のデフォルトルールは省略されています。

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

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

ステップ 6:ALB インスタンスをセキュリティグループに関連付けて結果を検証する

ALB インスタンスに関連付けられたセキュリティグループを変更する。

  • HTTP ポート 80 へのアクセスを拒否します。

  • HTTP ポート 81 へのアクセスを拒否します。

説明

関連するセキュリティグループルールのみがリストされており、他のデフォルトルールは省略されています。

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

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

ステップ 7:セキュリティグループを変更して結果を検証する

制限事項

重要

セキュリティグループまたはアクセス制御リスト (ACL) を使用して、ALB インスタンスのアップグレードのアクセス トラフィックを管理できます。古いALB インスタンスは ACL でのみアクセス制御をサポートします。セキュリティグループを使用する必要がある場合は、新しいインスタンスを作成するか、アカウントマネージャーに連絡して既存のインスタンスのアップグレードをリクエストしてください。

カテゴリ

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

説明

ALB がサポートするセキュリティグループ

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

  • エンタープライズセキュリティグループ

  • セキュリティグループは VPC タイプである必要があります。セキュリティグループとALB インスタンスの両方が同じ Virtual Private Cloud (VPC) 内にある必要があります。

  • ALB インスタンスのセキュリティグループの関連付けとルールの設定に関するクォータは、Elastic Compute Service (ECS) インスタンスまたは Elastic Network Interface (ENI) のクォータに基づいています:

  • ALB インスタンスは、同じタイプのセキュリティグループにのみ関連付けることができます。ALB インスタンスを基本セキュリティグループとエンタープライズセキュリティグループの両方に同時に関連付けることはできません。

    ALB インスタンスが既に基本セキュリティグループに関連付けられており、エンタープライズセキュリティグループに関連付けたい場合は、まずインスタンスからすべての基本セキュリティグループのバインドを解除する必要があります。逆の場合も同様です。

基本およびエンタープライズセキュリティグループの詳細については、「基本および高度セキュリティグループ」をご参照ください。

ALB がサポートしないセキュリティグループ

マネージドセキュリティグループ

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

前提条件

  • VPC1 という名前の Virtual Private Cloud (VPC) を作成済みであること。詳細については、「VPC の作成と管理」をご参照ください。

  • VPC1 に 2 つの Elastic Compute Service (ECS) インスタンス (ECS01 と ECS02) を作成済みであること。これらのインスタンスは Application Load Balancer (ALB) インスタンスのバックエンドサーバーとして機能し、それぞれに異なるアプリケーションをデプロイ済みであること。

    • ECS インスタンスを作成するには、「カスタム起動タブを使用してインスタンスを作成する」をご参照ください。

      セキュリティグループの IPv6 トラフィックに対するアクセス制御をテストするには、ECS01 と ECS02 がIPv6 通信をサポートしていることを確認してください。

    • 次の例は、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

手順

ステップ 1:サーバーグループの作成

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

  2. 上部のナビゲーションバーで、リージョンを選択します。このトピックでは、例として 中国 (杭州) を使用します。

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

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

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

    このセクションでは、主要なパラメーターのみを説明します。その他はデフォルト値のままにしてください。詳細については、「サーバーグループの作成と管理」をご参照ください。

    パラメーター

    説明

    サーバーグループタイプ

    サーバタイプ を選択します。

    サーバーグループ名

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

    VPC

    VPC1 を選択します。

    バックエンドプロトコル

    [HTTP] を選択します。

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

    重み付けラウンドロビンを選択します。

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

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

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

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

ステップ 2:ALB インスタンスとリスナーの作成

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

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

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

    このチュートリアルでは、関連するパラメーターのみを説明します。他のすべてのパラメーターはデフォルト値のままにしてください。パラメーターの詳細については、「ALB インスタンスの作成と管理」をご参照ください。

    • リージョン: China (Hangzhou) を選択します。

    • インスタンスのネットワークタイプ: パブリック を選択します。

    • VPC:作成した VPC1 を選択します。

    • IP バージョン: デフォルト値は IPv4 です。デュアルスタック を選択すると、クライアントは IPv4 アドレスと IPv6 アドレスの両方を使用してインスタンスにアクセスできます。

  4. 今すぐ購入をクリックし、画面の指示に従って購入を完了してください。

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

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

  7. リスナーのクイック作成 ダイアログボックスで、次のパラメーターを設定してポート 80 に HTTP リスナーを作成し、OK をクリックします。

    パラメーター

    説明

    リスナープロトコルの選択

    リスナーが使用するプロトコル。このチュートリアルでは、HTTP を選択します。

    リスナーポート

    リスナーが使用するポートです。このチュートリアルでは、80 を入力します。

    サーバーグループ

    作成した サーバタイプ を選択します。

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

  9. リスナーのクイック作成 ダイアログボックスで、次のパラメーターを設定してポート 81 に HTTP リスナーを作成し、OK をクリックします。

    パラメーター

    説明

    リスナープロトコルの選択

    リスナーで使用されるプロトコルです。このチュートリアルでは、[HTTP] を選択します。

    リスナーポート

    リスナーが使用するポートです。このチュートリアルでは、81 を入力します。

    サーバーグループ

    作成したサーバタイプを選択します。

ステップ 3:ドメイン名の名前解決の設定

本番環境では、CNAME レコードを作成して、カスタムドメイン名を ALB インスタンスのドメイン名にマッピングすることを推奨します。

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

  2. インスタンス ページで、作成された ALB インスタンスの DNS 名をコピーします。

  3. 次の手順に従って CNAME レコードを追加します。

    説明

    ドメイン名が Alibaba Cloud 以外のプロバイダーによって登録されている場合は、DNS の名前解決を設定する前に、ドメイン名を Alibaba Cloud DNS コンソールに追加する必要があります。詳細については、「ドメイン名の管理」をご参照ください。ドメイン名が Alibaba Cloud に登録されている場合は、次の手順に進みます。

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

    2. インターネットの権威ある DNS 解決 ページで、対象のドメイン名を見つけ、操作 列の 解決設定 をクリックします。

    3. 解決設定 ページで、Add Record をクリックします。

    4. Add Record パネルで、次のパラメーターを設定して CNAME レコードを構成し、OK をクリックします。

      パラメーター

      説明

      レコードタイプ

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

      ホストレコード

      ドメイン名のプレフィックスです。このチュートリアルでは @ を使用します。

      説明

      ルートドメインを使用するには、ホスト名を @ に設定します。

      Query Source

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

      レコード値

      コピーした ALB インスタンスの DNS 名を入力します。

      TTL

      Time to Live (TTL) は、DNS レコードが DNS サーバーにキャッシュされる期間です。デフォルト値を使用します。

ステップ 4:セキュリティグループの作成

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

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

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

  3. 上部のナビゲーションバーで、リージョンを選択します。このトピックでは、例として 中国 (杭州) を使用します。

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

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

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

    • ネットワーク:作成した VPC を選択します。

    • セキュリティグループタイプ:[基本セキュリティグループ] を選択します。

  6. 新しいセキュリティグループのアクセスルールパラメーターを設定します。

    1. [インバウンド] タブで、[セキュリティグループルールの追加] を 2 回クリックします。

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

      パラメーター

      ルール 1:ポート 81 への IPv4 および IPv6 トラフィックを拒否

      (オプション) ルール 2:ポート 80 への IPv6 トラフィックを許可

      アクション

      [拒否] を選択します。

      [許可] を選択します。

      優先度

      デフォルト値の 1 を維持します。

      プロトコルタイプ

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

      説明

      QUIC リスナーのセキュリティグループルールを設定する場合、プロトコルタイプとして [カスタム UDP] を選択します。

      ポート範囲

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

      ポート番号 HTTP(80) を選択します。

      ソース

      すべての IPv4 アドレス (0.0.0.0/0) と すべての IPv6 アドレス (::/0) を選択します。

      すべての IPv6 アドレス (::/0) を選択します。

      説明

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

ステップ 5:セキュリティグループなしでの接続性の検証

クライアントと ECS01 および ECS02 インスタンス間の接続性をテストします。

この例では、パブリックインターネットアクセスを持つクライアントを使用します。セキュリティグループの IPv6 アドレスに対するアクセス制御をテストするには、クライアントがパブリック IPv6 通信をサポートしていることを確認してください。

  1. コマンドラインウィンドウを開き、curl -4 http://<custom_domain_name>:80 を実行します。出力は、IPv4 クライアントが HTTP を介してポート 80 で ALB インスタンスにアクセスできることを示しています。

    C:\Users\Administrator>curl -4 http://&lt;custom_domain_name&gt;:80
    Hello World ! This is ECS02.
  2. curl -4 http://<custom_domain_name>:81 を実行します。出力は、IPv4 クライアントが HTTP を介してポート 81 で ALB インスタンスにアクセスできることを示しています。

    C:\Users\Administrator>curl -4 http://&lt;custom_domain_name&gt;:81
    Hello World ! This is ECS01.
  3. (オプション) curl -6 http://<custom_domain_name>:80 を実行します。出力は、IPv6 クライアントが HTTP を介してポート 80 で ALB インスタンスにアクセスできることを示しています。

    C:\Users\Administrator>curl -6 http://&lt;custom_domain_name&gt;:80
    Hello World ! This is ECS02.
  4. (オプション) curl -6 http://<custom_domain_name>:81 を実行します。出力は、IPv6 クライアントが HTTP を介してポート 81 で ALB インスタンスにアクセスできることを示しています。

    C:\Users\Administrator>curl -6 http://&lt;custom_domain_name&gt;:81
    Hello World ! This is ECS01.

ステップ 6:ALB インスタンスをセキュリティグループに追加して検証する

ALB インスタンスをセキュリティグループに追加し、セキュリティグループが ALB インスタンスのポートへのアクセスを制御することを確認します。

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

  2. インスタンス ページで対象の ALB インスタンスを見つけ、その ID をクリックします。インスタンス詳細ページで、セキュリティグループ タブをクリックします。

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

  4. 左側のペインで、対象のセキュリティグループの ID をクリックします。インバウンド方向 タブまたは アウトバンド方向 タブをクリックして、セキュリティグループルールを表示します。

    このセクションでは、このトピックに関連するインバウンドセキュリティグループルールのみをリストします。ALB インスタンスのルールは次のとおりです:

    ポリシー

    優先度

    プロトコル

    宛先

    ソース

    許可

    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. ALB インスタンスをセキュリティグループに追加した後、インスタンスへのアクセスをテストします。

    1. クライアントのコマンドラインから curl -4 http://<custom_domain_name>:80 を実行します。次の出力は、IPv4 クライアントが HTTP を介してポート 80 で ALB インスタンスにアクセスできることを示しています。

      C:\Users\Administrator>curl -4 http://&lt;custom_domain_name&gt;:80
      Hello World ! This is ECS01.
    2. (オプション) curl -6 http://<custom_domain_name>:80 を実行します。次の出力は、IPv6 クライアントが HTTP を介してポート 80 で ALB インスタンスにアクセスできることを示しています。

      C:\Users\Administrator>curl -6 http://&lt;custom_domain_name&gt;:80
      Hello World ! This is ECS02.
    3. curl -4 http://<custom_domain_name>:81 を実行します。接続が失敗し、ポート 81 へのアクセスを拒否するセキュリティグループルールが IPv4 クライアントに対して有効であることが確認されます。

      C:\Users\Administrator>curl -4 http://<custom_domain_name>:81
      curl: (28) Failed to connect to <custom_domain_name> port 81 after 42076 ms: Could not connect to server
    4. (オプション) curl -6 http://<custom_domain_name>:81 を実行します。接続が失敗し、ポート 81 へのアクセスを拒否するセキュリティグループルールが IPv6 クライアントに対して有効であることが確認されます。

      C:\Users\Administrator>curl -6 http://<custom_domain_name>:81
      curl: (28) Failed to connect to <custom_domain_name> port 81 after 42121 ms: Could not connect to server

ステップ 7:セキュリティグループの変更と検証

セキュリティグループルールを変更し、それらが ALB インスタンスのポートへのアクセスを制御することを確認します。

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

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

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

    次の表に、このトピックに関連する更新されたセキュリティグループルールをリストします。

    ポリシー

    優先度

    プロトコル

    ポート範囲

    ソース

    拒否

    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. ALB インスタンスのセキュリティグループルールを変更した後、アクセスをテストします。

    1. クライアントのコマンドラインウィンドウで、コマンド curl -4 http://<custom_domain_name>:80 を実行します。次の出力は、IPv4 クライアントが HTTP を介してポート 80 にアクセスできないことを示しており、ポート 80 のセキュリティグループルールが機能していることを確認します。

      C:\Users\Administrator>curl -4 http://&lt;custom_domain_name&gt;:80
      curl: (28) Failed to connect to &lt;custom_domain_name&gt; port 80 after 42020 ms: Could not connect to server
    2. (オプション) コマンド curl -6 http://<custom_domain_name>:80 を実行します。次の出力は、IPv6 クライアントが HTTP を介してポート 80 にアクセスできないことを示しており、ポート 80 のセキュリティグループルールが機能していることを確認します。

      C:\Users\Administrator>curl -6 http://&lt;custom_domain_name&gt;:80
      curl: (28) Failed to connect to &lt;custom_domain_name&gt; port 80 after 42077 ms: Could not connect to server
    3. コマンド curl -4 http://<custom_domain_name>:81 を実行します。次の出力は、IPv4 クライアントが HTTP を介してポート 81 にアクセスできないことを示しており、ポート 81 のセキュリティグループルールが機能していることを確認します。

      C:\Users\Administrator>curl -4 http://&lt;custom_domain_name&gt;:81
      curl: (28) Failed to connect to &lt;custom_domain_name&gt; port 81 after 42095 ms: Could not connect to server
    4. (オプション) コマンド curl -6 http://<custom_domain_name>:81 を実行します。次の出力は、IPv6 クライアントが HTTP を介してポート 81 にアクセスできないことを示しており、ポート 81 のセキュリティグループルールが機能していることを確認します。

      C:\Users\Administrator>curl -6 http://&lt;custom_domain_name&gt;:81
      curl: (28) Failed to connect to &lt;custom_domain_name&gt; port 81 after 42095 ms: Could not connect to server

参考

コンソール

API