特定の IP アドレスから Network Load Balancer (NLB) インスタンスへのアクセスを拒否または許可する必要がある場合は、インスタンスをセキュリティグループに関連付けて、そのトラフィックを制御できます。セキュリティグループルールを設定することで、ブラックリストまたはホワイトリストを実装し、正確なアクセス制御を実現できます。
利用シーン
NLB インスタンスがセキュリティグループに追加される前は、デフォルトで NLB インスタンスのリスナーポートはすべてのリクエストを受け入れます。
拒否ルールを含まないセキュリティグループに NLB インスタンスが追加された後、デフォルトで NLB インスタンスのリスナーポートはすべてのリクエストを受け入れます。特定の IP アドレスからのリクエストのみを NLB インスタンスに許可したい場合は、少なくとも 1 つの拒否ルールを作成する必要があります。
NLB インスタンスにアクセス制御の要件があり、NLB インスタンスへのインバウンドトラフィックを制御したい場合は、NLB インスタンスをセキュリティグループに追加し、ビジネス要件に基づいてセキュリティグループルールを設定できます。
NLB インスタンスのアウトバウンドトラフィックは、ユーザーリクエストへの応答を指します。サービスに影響が出ないように、NLB セキュリティグループはアウトバウンドトラフィックを制限しません。セキュリティグループのアウトバウンドルールを設定する必要はありません。
NLB インスタンスが作成されると、システムは NLB インスタンスが存在する VPC に自動的にマネージドセキュリティグループを作成します。このセキュリティグループは NLB インスタンスによって制御されるため、詳細を表示することはできますが、変更することはできません。マネージドセキュリティグループには、次の種類のセキュリティグループルールが含まれます。
優先度 1 のルール:これらのルールは、NLB インスタンスが使用するローカル IP アドレスを許可し、インスタンスとバックエンドサーバー間の通信およびヘルスチェックを可能にします。
NLB インスタンスとバックエンドサーバー間の通信が中断される可能性があるため、NLB インスタンスのローカル IP アドレスを拒否する優先度 1 のセキュリティグループルールを追加しないことを推奨します。NLB コンソールにログインして、NLB インスタンスのローカル IP アドレスを確認できます。
優先度 100 のルール:これらのルールはすべての IP アドレスを許可します。拒否ルールが設定されていない場合、このセキュリティグループ内の NLB インスタンスは、リスナーを使用してすべてのリクエストをチェックします。
基本セキュリティグループまたは高度セキュリティグループのデフォルトのアクセス制御ルール (非表示) には、すべてのリクエストを拒否するルールが含まれています。この場合、NLB インスタンスのマネージドセキュリティグループのデフォルトの許可ルールが有効になります。
このトピックでは、セキュリティグループを使用してブラックリストとホワイトリストを実装する 2 つのシナリオについて説明します。セキュリティグループルールの優先順位付けについては、「セキュリティグループルールの優先度」をご参照ください。
ブラックリスト:特定の IP アドレスからのアクセスを拒否

ホワイトリスト:特定の IP アドレスからのアクセスのみを許可

制限事項
項目 | セキュリティグループタイプ | 説明 |
NLB でサポートされるセキュリティグループ |
|
基本セキュリティグループと高度セキュリティグループの詳細については、「基本セキュリティグループと高度セキュリティグループ」をご参照ください。 |
NLB でサポートされないセキュリティグループ | マネージドセキュリティグループ | マネージドセキュリティグループの詳細については、「マネージドセキュリティグループ」をご参照ください。 |
前提条件
4 つの ECS インスタンスを作成します。詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
ECS01 と ECS02 は NLB インスタンスのバックエンドサーバーとして使用され、両方のインスタンスにアプリケーションがデプロイされます。
次のコマンドは、ECS01 と ECS02 にテストアプリケーションをデプロイする例を示しています。
ECS03 と ECS04 は、NLB インスタンスへのアクセスに使用されるパブリック IP アドレスを持つインスタンスです。既存の Linux サーバーを使用して NLB インスタンスにアクセスすることもできるため、ECS03 と ECS04 を作成する必要はありません。
ドメイン名を登録し、そのICP 登録を取得し、CNAME レコードを設定して、カスタムドメイン名を NLB インスタンスにマッピングしておきます。
次の表に、このトピックで使用する 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:サーバーグループの作成
NLB コンソールにログインします。
上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。この例では、中国 (杭州) を使用します。
-
左側のナビゲーションウィンドウで、NLB > サーバーグループ を選択します。
「サーバーグループ」ページで、「サーバーグループの作成」をクリックします。
サーバーグループの作成 ダイアログボックスで、次のパラメーターを設定し、作成 をクリックします。
このトピックでは、主要なパラメーターのみを説明します。他のパラメーターはデフォルト値のままにできます。詳細については、「サーバーグループの作成」をご参照ください。
パラメーター
説明
タイプ
サーバーグループのタイプを選択します。この例では、サーバータイプ が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。この例では RS01 を使用します。
VPC
ドロップダウンリストから VPC を選択します。この例では、ECS01 と ECS02 を含む VPC01 を使用します。
バックエンドサーバープロトコル
バックエンドサーバーのプロトコルを選択します。この例では、[TCP] が選択されています。
「サーバーグループが作成されました」ダイアログボックスで、バックエンドサーバーの追加 をクリックします。
[バックエンドサーバー]タブで、[バックエンドサーバーの追加]をクリックします。
[バックエンドサーバーの追加] パネルで、作成した ECS01 および ECS02 インスタンスを選択し、[次のステップ] をクリックします。
バックエンドサーバーのポートと重みを設定し、[OK] をクリックします。この例では、ポートは 80 に設定され、デフォルトの重みが使用されます。
ステップ 2:NLB インスタンスとリスナーの作成
左側のナビゲーションウィンドウで、 を選択します。インスタンス ページで、NLB の作成 をクリックします。
[Network Load Balancer (従量課金)] ページで、次の構成を完了します。
このトピックでは、主要なパラメーターのみを説明します。他のパラメーターについては、「インスタンスの作成」をご参照ください。
リージョン: この例では、中国 (杭州) を使用します。
インスタンスのネットワークタイプ: この例では インターネット を使用します。
VPC:この例では VPC01 を使用します。
今すぐ購入 をクリックし、画面の指示に従って購入を完了します。
「インスタンス」ページに戻り、新しく作成された NLB インスタンスを検索し、その NLB インスタンス ID をクリックします。
「リスナー」タブをクリックします。リスナー タブで、「リスナーのクイック作成」をクリックします。「リスナーのクイック作成」ダイアログボックスで、以下のパラメーターを設定して、ポート 80 で TCP リスナーを作成し、OK をクリックします。
パラメーター
説明
リスナープロトコルの選択
リスナーのプロトコルを選択します。この例では、[TCP] が選択されています。
リスニングポート
リスナーポートを入力します。この例では 80 を使用します。
サーバーグループ
[サーバー] を選択し、[サーバー] の下のサーバーグループを選択します。
この例では、「ステップ 1:サーバーグループの作成」で作成したサーバーグループを使用します。
セキュリティグループに関連付ける前に、NLB インスタンスへのアクセスを確認します。
curl -s http://whatismyip.akamai.com/コマンドを使用して、現在のクライアントのパブリック IP アドレスを特定します。ECS03 インスタンスにログインし、
telnet <domain_name> 80コマンドを実行して、NLB インスタンスへのアクセスをテストします。次の図のような応答は、接続が成功したことを示します。

ECS04 インスタンスにログインします。
telnet <domain_name> 80コマンドを実行して、NLB インスタンスへのアクセスをテストします。次の図のような応答は、接続が成功したことを示します。

結果:NLB インスタンスがセキュリティグループに関連付けられる前に、ECS03 と ECS04 の両方が正常にアクセスできます。
ステップ 3:セキュリティグループの作成
NLB インスタンスをセキュリティグループに追加する前に、ECS コンソールでセキュリティグループを作成する必要があります。次のルールで 2 つのセキュリティグループを作成します。
セキュリティグループ 1 (ブラックリスト用)
拒否ポリシーを持つルールを追加します。この例では、ECS03 インスタンスのパブリック IP アドレス (47.XX.XX.55) からのアクセスを拒否します。デフォルトのセキュリティグループルールはそのままにしておくことができます。
ポリシー
優先度
プロトコル
ポート範囲
承認オブジェクト
拒否
1
すべて
宛先:-1/-1
ソース:47.XX.XX.55
セキュリティグループ 2 (ホワイトリスト用)
許可ルールと拒否ルールを追加します。この例では、ECS03 インスタンスのパブリック IP アドレス (47.XX.XX.55) からのアクセスを許可し、他のすべてのトラフィックを拒否します。以下の表を参照してください。
ポリシー
優先度
プロトコル
ポート範囲
承認オブジェクト
許可
1
すべて
宛先:-1/-1
ソース:47.XX.XX.55
拒否
100
すべて
宛先:-1/-1
ソース:0.0.0.0/0
ECS コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、セキュリティグループを作成するリージョンを選択します。この例では、中国 (杭州) を使用します。
セキュリティグループ ページで、セキュリティグループの作成 をクリックします。
[セキュリティグループの作成]ページで、[基本情報]セクションのパラメーターを設定します。
このトピックでは、主要なパラメーターのみを説明します。他のパラメーターについては、「セキュリティグループの作成」をご参照ください。
ネットワーク: この例では、NLB インスタンスを含むのと同じ VPC である VPC1 を使用します。
タイプ: この例では、基本セキュリティグループを使用します。
セキュリティグループの作成 ページで、アクセスルール セクションのパラメーターを設定します。
インバウンド タブで、手动添加 をクリックし、セキュリティグループ 1(ブラックリスト用) および セキュリティグループ 2(ホワイトリスト用)。
セキュリティグループの作成 をクリックします。
ステップ 4:セキュリティグループへの追加と検証
ブラックリスト
「ステップ 3:セキュリティグループの作成」で作成したセキュリティグループ 1 に NLB インスタンスを追加し、セキュリティグループ 1 のルールが NLB インスタンスへのアクセスを制御することを確認します。
NLB コンソールにログインします。
上部のナビゲーションバーで、NLB インスタンスがデプロイされているリージョンを選択します。この例では、中国 (杭州) を使用します。
NLB の NLB インスタンス ページで、「手順 2: NLB インスタンスの作成とリスナーの設定」で作成した NLB インスタンスを見つけ、インスタンス ID をクリックします。インスタンスの詳細 タブで、セキュリティグループ タブをクリックします。
セキュリティグループ タブで、セキュリティグループの追加 をクリックします。セキュリティグループに NLB インスタンスを追加する ダイアログボックスで、手順 3: セキュリティグループを作成する で作成したセキュリティグループを選択し、OK をクリックします。
左側のパネルで、対象のセキュリティグループの ID をクリックします。インバウンドポリシー タブまたは アウトバウンドポリシー タブをクリックすると、セキュリティグループルールを表示できます。
次の表は、このシナリオに関連するセキュリティグループルールを示しています。
ポリシー
優先度
プロトコル
ポート範囲
承認オブジェクト
拒否
1
すべて
宛先:-1/-1ソース:47.XX.XX.55NLB インスタンスがセキュリティグループに追加された後のアクセス結果を確認します。
curl -s http://whatismyip.akamai.com/コマンドを使用して、現在のクライアントのパブリック IP アドレスを特定します。ECS03 インスタンスにログインします。
telnet <domain_name> 80コマンドを実行して、NLB インスタンスへのアクセスをテストします。接続がタイムアウトし、アクセスが拒否されたことがわかります。

ECS04 インスタンスにログインします。
telnet <domain_name> 80コマンドを実行して、NLB インスタンスへのアクセスをテストします。応答が返され、接続が成功したことがわかります。

結果:NLB インスタンスが セキュリティグループ 1 (ブラックリスト) に追加されると、拒否ルールで指定された IP アドレスからのトラフィックはブロックされ、他の IP アドレスからのトラフィックは許可されます。
ホワイトリスト
「ステップ 3:セキュリティグループの作成」で作成したセキュリティグループ 2 に NLB インスタンスを追加し、セキュリティグループ 2 のルールが NLB インスタンスへのアクセスを制御するかどうかを確認します。
NLB コンソールにログインします。
上部のナビゲーションバーで、NLB インスタンスがデプロイされているリージョンを選択します。この例では、中国 (杭州) を使用します。
NLB インスタンス ページで、手順2:NLB インスタンスを作成し、リスナーを設定する で作成した NLB インスタンスを見つけ、インスタンス ID をクリックします。インスタンスの詳細 タブで、セキュリティグループ タブをクリックします。
セキュリティグループ タブで、セキュリティグループの追加 をクリックします。 セキュリティグループに NLB インスタンスを追加する ダイアログボックスで、手順 3: セキュリティグループの作成で作成したセキュリティグループ 2 を選択し、OK をクリックします。
左側パネルで、対象のセキュリティグループのIDをクリックします。インバウンドポリシー タブまたは アウトバウンドポリシー タブをクリックすると、セキュリティグループルールを表示できます。
ポリシー
優先度
プロトコル
ポート範囲
承認オブジェクト
許可
1
すべて
宛先:-1/-1
ソース:47.XX.XX.55
拒否
100
すべて
宛先:-1/-1
ソース:0.0.0.0/0
NLB インスタンスがセキュリティグループに追加された後のアクセス結果を確認します。
curl -s http://whatismyip.akamai.com/コマンドを使用して、現在のクライアントのパブリック IP アドレスを特定します。ECS03 インスタンスにログインします。
telnet <domain_name> 80コマンドを実行して、NLB インスタンスへのアクセスをテストします。応答が返され、接続が成功したことがわかります。

ECS04 インスタンスにログインします。
telnet <domain_name> 80コマンドを実行して、NLB インスタンスへのアクセスをテストします。接続がタイムアウトし、アクセスが拒否されたことがわかります。

結果:NLB インスタンスが セキュリティグループ 2 (ホワイトリスト) に追加されると、許可ルールで指定された IP アドレスからのトラフィックのみが許可されます。
参考
NLB インスタンスとセキュリティグループの関連付けまたは関連付け解除の方法については、「NLB インスタンスとセキュリティグループの関連付け」をご参照ください。
リスナーまたはポートによるきめ細かなアクセス制御のためにセキュリティグループを設定する方法については、「リスナーまたはポートによるきめ細かなアクセス制御のためのセキュリティグループの設定」をご参照ください。
セキュリティグループの詳細な概要については、「セキュリティグループ」をご参照ください。