特定のIPアドレスからNetwork Load Balancer (NLB) インスタンスへのリクエストを拒否または許可する場合は、NLBインスタンスのセキュリティグループを設定してアクセス制御を実装できます。 NLBセキュリティグループは、詳細なアクセス制御を実装するホワイトリストまたはブラックリストとして使用できます。
サンプルシナリオ
NLBインスタンスがセキュリティグループに追加される前に、NLBインスタンスのリスナーポートはデフォルトですべてのリクエストを受け入れます。
NLBインスタンスがDenyルールを含まないセキュリティグループに追加されると、NLBインスタンスのリスナーポートはデフォルトですべてのリクエストを受け入れます。 特定のIPアドレスからNLBインスタンスへのリクエストのみを許可する場合は、拒否ルールも作成する必要があります。
NLBインスタンスにアクセス制御要件があり、NLBインスタンスへのインバウンドトラフィックを制御する場合は、NLBインスタンスをセキュリティグループに追加し、ビジネス要件に基づいてセキュリティグループルールを設定できます。
NLBインスタンスのアウトバウンドトラフィックは、ユーザーリクエストに返される応答を参照します。 サービスが影響を受けないようにするため、NLBセキュリティグループはアウトバウンドトラフィックを制限しません。 セキュリティグループのアウトバウンドルールを設定する必要はありません。
次のシナリオは、ホワイトリストとブラックリストの仕組みを示すために使用されます。 詳細については、「セキュリティグループルール」をご参照ください。
ブラックリストは、特定のIPアドレスからのアクセスを拒否します。
ホワイトリストは、特定のIPアドレスからのアクセスのみを許可します。
制限事項
カテゴリ | セキュリティグループタイプ | 説明 |
NLBでサポートされているセキュリティグループ |
|
基本セキュリティグループと高度なセキュリティグループの詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。 |
NLBでサポートされていないセキュリティグループ | 管理セキュリティグループ | マネージドセキュリティグループの詳細については、「マネージドセキュリティグループ」をご参照ください。 |
前提条件
4つのECS (Elastic Compute Service) インスタンスが作成されます。 ECSインスタンスの作成方法の詳細については、「ECSインスタンスの購入」をご参照ください。
ECS01およびECS02は、NLBインスタンスのバックエンドサーバーとして機能します。 アプリケーションはECS01およびECS02にデプロイされます。
次のサンプルコマンドを使用して、ECS01およびECS02にテストアプリケーションをデプロイします。
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: サーバーグループの作成
NLBコンソールにログインします。
上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。
左側のナビゲーションウィンドウで、を選択します。
[サーバーグループ] ページで、[サーバーグループの作成] をクリックします。
[サーバーグループの作成] ダイアログボックスで、次のパラメーターを設定し、[作成] をクリックします。
サーバーグループを作成するための重要なパラメーターを次の表に示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「サーバーグループの作成」をご参照ください。
パラメーター
説明
サーバーグループタイプ
サーバグループの種類を指定します。 この例では、[サーバー] が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。 この例では、RS01が使用される。
[VPC]
ドロップダウンリストからVPCを選択します。 この例では、VPC1が選択されています。 サーバーグループは、ECS01およびECS02と同じVPCに存在する必要があります。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。 この例では、TCPが選択されています。
[サーバーグループ作成] ダイアログボックスで、[バックエンドサーバーの追加] をクリックします。
[バックエンドサーバー] タブで、[バックエンドサーバーの追加] をクリックします。
[バックエンドサーバーの追加] パネルで、[ECS01] と [ECS02] を選択し、[次へ] をクリックします。
バックエンドサーバーのポートと重みを指定し、[OK] をクリックします。 この例では、ポート80が指定され、デフォルトの重みが使用されます。
手順2: NLBインスタンスの作成とリスナーの設定
左側のナビゲーションウィンドウで、
を選択します。 [インスタンス] ページで、[NLBの作成] をクリックします。[NLB (従量課金)] ページで、次のパラメーターを設定します。
次の表に、一部のパラメーターのみを示します。 その他のパラメーターの詳細については、「NLBインスタンスの作成」をご参照ください。
リージョン: この例では、中国 (杭州) が選択されています。
ネットワークタイプ: この例では、インターネットが選択されています。
VPC: この例では、VPC01が選択されています。
[今すぐ購入] をクリックし、支払いを完了します。
[インスタンス] ページに戻り、作成したNLBインスタンスを見つけ、NLBインスタンスのIDをクリックします。
[リスナー] タブをクリックします。 [リスナー] タブで、[クイック作成リスナー] をクリックします。 [リスナーのクイック作成] ダイアログボックスで、次のパラメーターを設定して、ポート80を使用するTCPリスナーを作成し、[OK] をクリックします。
パラメーター
手順
リスナープロトコル
リスナープロトコルを選択します。 この例では、TCPが選択されています。
リスナーポート
この例では、ポート80が使用される。
サーバーグループ
[サーバータイプ] を選択し、[サーバータイプ] の横にあるドロップダウンリストからサーバーグループを選択します。
この例では、手順1: サーバーグループの作成で作成されたサーバーグループが選択されています。
NLBインスタンスがセキュリティグループに追加されていない場合、NLBインスタンスのアクセシビリティを確認します。
curl -s http://whatismyip.akamai.com/
コマンドを使用して、要求を送信するクライアントのパブリックIPアドレスを照会できます。ECS03にログインします。 次のコマンドを実行して、ECS03がNLBインスタンスにアクセスできるかどうかをテストします。
telnetドメイン名80
。次の図に示すようにエコー応答パケットを受信した場合、ECS03はNLBインスタンスにアクセスできます。
ECS04にログインします。 次のコマンドを実行して、ECS04がNLBインスタンスにアクセスできるかどうかをテストします:
telnetドメイン名80
。次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできます。
結果は、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
ECS コンソールにログインします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、セキュリティグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。
[セキュリティグループ] ページで、[セキュリティグループの作成] をクリックします。
[セキュリティグループの作成] ページで、[基本情報] セクションのパラメーターを設定します。
以下のパラメーターを指定します。 その他のパラメーターの詳細については、「セキュリティグループの作成」をご参照ください。
ネットワーク: この例では、VPC 1が選択されています。 セキュリティグループは、NLBインスタンスと同じVPCに存在する必要があります。
セキュリティグループタイプ: この例では、基本的なセキュリティグループが選択されています。
[セキュリティグループの作成] ページで、[アクセスルール] セクションのパラメーターを設定します。
[インバウンド] タブで、[ルールの追加] をクリックして、[セキュリティグループ1] および [セキュリティグループ2] のルールの設定に基づいてルールを追加します。
[セキュリティグループの作成] をクリックします。
手順4: NLBインスタンスをセキュリティグループに追加し、結果を確認します
セキュリティグループ1をブラックリストとして使用する
手順3で作成したセキュリティグループ1にNLBインスタンスを追加し、セキュリティグループ1のルールがNLBインスタンスで有効かどうかをテストします。
NLBコンソールにログインします。
上部のナビゲーションバーで、NLBインスタンスがデプロイされているリージョンを選択します。 この例では、中国 (杭州) が選択されています。
[NLB] の [インスタンス] をクリックします。 表示されるページで、手順2: NLBインスタンスの作成とリスナーの設定で作成されたNLBインスタンスを見つけ、インスタンスIDをクリックします。 [インスタンスの詳細] ページで、[セキュリティグループ] タブをクリックします。
[セキュリティグループ] タブで、[セキュリティグループの作成] をクリックします。 [セキュリティグループにNLBインスタンスを追加] ダイアログボックスで、手順3で作成したセキュリティグループを選択し、[OK] をクリックします。
左側のパネルで、管理するセキュリティグループのIDをクリックします。 [インバウンドポリシー] または [アウトバウンドポリシー] タブをクリックして、セキュリティグループルールを表示できます。
次の表に、このトピックに関連するパラメーターを示します。
ポリシー
優先度
プロトコル
ポート範囲
権限付与オブジェクト
拒否
1
All
宛先: -1/-1
出典: 47.XX. XX.55
セキュリティグループ内のNLBインスタンスへのアクセスが拒否されているかどうかをテストします。
curl -s http://whatismyip.akamai.com
コマンドを使用して、リクエストを送信するクライアントのパブリックIPアドレスを照会できます。ECS03にログインします。 次のコマンドを実行して、ECS03がNLBインスタンスにアクセスできるかどうかをテストします。
telnetドメイン名80
。次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできませんでした。
ECS04にログインします。 次のコマンドを実行して、ECS04がNLBインスタンスにアクセスできるかどうかをテストします:
telnetドメイン名80
。次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできます。
結果は、NLBインスタンスがセキュリティグループ1に追加された後、拒否ルールで指定されたIPアドレスがNLBインスタンスにアクセスできなくなることを示しています。 拒否ルールで指定されていないIPアドレスは、NLBインスタンスにアクセスできます。
セキュリティグループ2をホワイトリストとして使用する
手順3で作成したセキュリティグループ2にNLBインスタンスを追加し、セキュリティグループ2のルールがNLBインスタンスで有効かどうかをテストします。
NLBコンソールにログインします。
上部のナビゲーションバーで、NLBインスタンスがデプロイされているリージョンを選択します。 この例では、中国 (杭州) が選択されています。
[NLB] の [インスタンス] をクリックします。 表示されるページで、手順2: NLBインスタンスの作成とリスナーの設定で作成されたNLBインスタンスを見つけ、インスタンスIDをクリックします。 [インスタンスの詳細] ページで、[セキュリティグループ] タブをクリックします。
[セキュリティグループ] タブで、[セキュリティグループの作成] をクリックします。 [セキュリティグループにNLBインスタンスを追加] ダイアログボックスで、手順3で作成したセキュリティグループ2を選択し、[OK] をクリックします。
左側のパネルで、管理するセキュリティグループのIDをクリックします。 [インバウンドポリシー] または [アウトバウンドポリシー] タブをクリックして、セキュリティグループルールを表示できます。
ポリシー
優先度
プロトコル
ポート範囲
権限付与オブジェクト
必須
1
All
宛先: -1/-1
出典: 47.XX. XX.55
拒否
100
All
宛先: -1/-1
出典: 0.0.0.0/0
セキュリティグループ内のNLBインスタンスへのアクセスが拒否されているかどうかをテストします。
curl -s http://whatismyip.akamai.com
コマンドを使用して、リクエストを送信するクライアントのパブリックIPアドレスを照会できます。ECS03にログインします。 次のコマンドを実行して、ECS03がNLBインスタンスにアクセスできるかどうかをテストします。
telnetドメイン名80
。次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできます。
ECS04にログインします。 コマンドを実行して、ECS04がNLBインスタンスにアクセスできるかどうかをテストします:
telnetドメイン名80
。次の図に示すようにエコー応答パケットを受信した場合、ECS04はNLBインスタンスにアクセスできませんでした。
結果は、NLBインスタンスがセキュリティグループ2に追加された後、セキュリティグループ2の許可ルールで指定されたIPアドレスのみがNLBインスタンスにアクセスできることを示しています。
関連ドキュメント
セキュリティグループにNLBインスタンスを追加および削除する方法の詳細については、「セキュリティグループにNLBインスタンスを追加する」をご参照ください。
リスナーまたはポートに基づいて詳細なアクセス制御を有効にする方法の詳細については、「NLBインスタンスのセキュリティグループの構成」をご参照ください。
セキュリティグループの詳細については、「セキュリティグループ」をご参照ください。