セキュリティグループは仮想ファイアウォールとして機能し、設定されたルールに基づいて Application Load Balancer (ALB) インスタンスのインバウンドおよびアウトバウンドトラフィックを制御します。特定の IP アドレスからの ALB インスタンスへのトラフィックを明示的に許可または拒否する必要がある場合、セキュリティグループを活用して、細かい粒度でのトラフィック制御を実現するためのブラックリストおよびホワイトリストのアクセスポリシーを作成します。
シナリオ
本トピックでは、セキュリティグループを用いてブラックリストおよびホワイトリストを設定する 2 つのシナリオについて説明します。セキュリティグループルールの優先順位に関する詳細については、「セキュリティグループルール」をご参照ください。
ブラックリスト:特定の IP アドレスからのアクセスを拒否
ある企業が Alibaba Cloud のリージョンに ALB を用いたサービスを展開しています。セキュリティチェックの過程で、セキュリティチームは、IP アドレス(例:121.XX.XX.12)から頻繁に攻撃リクエストが送信され、サービスへの攻撃を試みていることを確認しました。これは潜在的なビジネスリスクを招き、データ侵害などのセキュリティインシデントを引き起こす可能性があります。
この問題に対処するため、ALB インスタンスにセキュリティグループルールを設定し、特定の IP アドレス(121.XX.XX.12)からのアクセスをブロックします。これにより、悪意のあるリクエストおよび攻撃が遮断され、ご利用のサービスのセキュリティおよび安定性が確保されます。
ホワイトリスト:特定の IP アドレスからのアクセスを許可
ある企業が、機密情報を含むサービスを Alibaba Cloud のリージョンに ALB を用いて展開しています。ALB インスタンスへのアクセスを厳格に制限するため、特定の IP アドレス(例:121.XX.XX.12)からのみアクセスを許可し、それ以外のすべての IP アドレスからのリクエストを拒否するように、セキュリティグループルールを設定できます。
前提条件
中国 (杭州) リージョンに VPC1 という名前の Virtual Private Cloud (VPC) を作成します。また、可用性ゾーン H に vSwitch1(VSW1)と、可用性ゾーン I に vSwitch2(VSW2)を作成します。詳細については、「VPC および vSwitch の作成」をご参照ください。
VSW1 内に 2 つの ECS インスタンスを作成し、それぞれにアプリケーションをデプロイします。
ECS インスタンスの作成方法については、「ウィザードを使用したインスタンスの作成」をご参照ください。
以下の例は、ECS01 および ECS02 へのテストアプリケーションのデプロイ手順を示しています。
ドメイン名を登録し、インターネットコンテンツプロバイダー(ICP)登録を取得します。詳細については、「Alibaba Cloud におけるドメイン名の登録」および「ICP 登録」をご参照ください。
以下の表は、本トピックで使用されるクライアントおよびサーバーの IP 構成を示しています。これらの構成は参考用です。
カテゴリ | IP アドレス | 説明 |
ECS01(サーバー) |
| ALB インスタンスのバックエンドサーバーとして機能します。 |
ECS02(サーバー) |
| |
Client03 | パブリック:121.XX.XX.12 | ALB インスタンスへのアクセスを行うクライアントとして機能します。 |
Client04 | パブリック:121.XX.XX.45 |
操作手順
ステップ 1:サーバーグループの作成
ALB コンソールにログインします。
上部のナビゲーションバーで、サーバーグループが配置されているリージョンを選択します。本トピックでは例として 中国 (杭州) を使用します。
左側のナビゲーションウィンドウで、 を選択します。
サーバーグループ ページで、サーバーグループの作成 をクリックします。
サーバーグループの作成 ダイアログボックスで、以下のパラメーターを設定し、作成 をクリックします。
本トピックでは、この例に関連するパラメーターのみを説明します。その他のパラメーターはデフォルト値のままにしてください。各パラメーターの詳細については、「サーバーグループの作成および管理」をご参照ください。
パラメーター
説明
サーバーグループタイプ
サーバーグループの種類を選択します。本トピックでは例として サーバー を使用します。
サーバーグループ名
サーバーグループの名前を入力します。
VPC
ドロップダウンリストから VPC を選択します。本トピックでは、前述の VPC1 を例として使用します。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。本トピックでは例として HTTP を使用します。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。本トピックでは例として 重み付けラウンドロビン を使用します。
サーバーグループが作成されました ダイアログボックスで、バックエンドサーバーの追加 をクリックします。
バックエンドサーバー タブで、バックエンドサーバーの追加 をクリックします。
バックエンドサーバーの追加 パネルで、前述の ECS01 および ECS02 インスタンスを選択し、次へ をクリックします。
追加したサーバーのポートおよび重みを設定し、OK をクリックします。
ステップ 2:ALB インスタンスおよびリスナーの作成
ALB コンソールにログインします。
インスタンス ページで、ALB の作成 をクリックします。
購入ページで、以下の設定を行います。
本トピックでは、この例に関連するパラメーターのみを説明します。その他のパラメーターはデフォルト値のままにしてください。各パラメーターの詳細については、「ALB インスタンスの作成」をご参照ください。
リージョン:本トピックでは例として 中国 (杭州) を使用します。
ネットワークタイプ:本トピックでは例として パブリック を使用します。
VPC:本トピックでは前述の VPC1 を例として使用します。
今すぐ購入 をクリックし、画面上の指示に従ってインスタンスを有効化します。
インスタンス ページに戻り、作成した ALB インスタンスを見つけ、その ID をクリックします。
リスナー タブをクリックし、リスナーのクイック作成 をクリックします。
リスナーのクイック作成 ダイアログボックスで、以下のパラメーターを設定してポート 80 の HTTP リスナーを作成し、OK をクリックします。
パラメーター
説明
リスナープロトコルの選択
リスナーのプロトコルを選択します。本トピックでは例として HTTP を使用します。
リスナーポート
リスナーポートを入力します。本トピックでは例として 80 を使用します。
サーバーグループ
サーバー の下で、宛先となるサーバーグループを選択します。本トピックでは前述のサーバーグループを例として使用します。
ステップ 3:ドメイン名の名前解決の設定
左側のナビゲーションウィンドウで、 を選択します。
インスタンス ページで、作成した ALB インスタンスの DNS 名をコピーします。
CNAME レコードを追加するには、以下の手順を実行します。
説明ドメイン名を Alibaba Cloud で登録していない場合は、DNS 設定を構成する前に、まず Alibaba Cloud DNS コンソールにドメイン名を追加する必要があります。詳細については、「ドメイン管理」をご参照ください。ドメイン名を Alibaba Cloud で登録している場合は、以下の手順を実行してください。
Alibaba Cloud DNS コンソール にログインします。
権威 DNS 名前解決 ページで、対象のドメイン名を見つけ、解決設定 を 操作 列からクリックします。
解決設定 ページで、Add Record をクリックします。
Add Record パネルで、以下の CNAME レコードの情報を設定し、OK をクリックします。
パラメーター
説明
レコードタイプ
ドロップダウンリストから CNAME を選択します。
ホストレコード
ドメイン名のプレフィックスです。本トピックでは例として @ を使用します。
説明ルートドメインを作成する場合、ホストレコードは
@となります。Query Source
デフォルトを選択します。
レコード値
ドメインの CNAME アドレスを入力します。これは、前述でコピーした ALB インスタンスの DNS 名です。
TTL
Time To Live(TTL)は、DNS レコードが DNS サーバー上でキャッシュされる時間です。本トピックではデフォルト値を使用します。
ステップ 4:セキュリティグループの作成
ECS コンソール に移動し、以下のルールに基づいて、ブラックリストポリシー用およびホワイトリストポリシー用の 2 つのセキュリティグループを作成します。
ブラックリストポリシー用のセキュリティグループ 1
拒否ルールを追加します。本トピックでは、パブリック IP アドレス 121.XX.XX.12 からのアクセスを拒否する例を示します。デフォルトのセキュリティグループルールはそのまま使用できます。
操作
優先順位
プロトコルタイプ
ポート範囲
承認オブジェクト
拒否
1
すべて
宛先: -1/-1
送信元:121.XX.XX.12
ホワイトリストポリシー用のセキュリティグループ 2
許可ルールおよび拒否ルールを追加します。本トピックでは、パブリック IP アドレス 121.XX.XX.12 からのアクセスを許可する例を示します。許可ルールおよび拒否ルールの両方を追加する必要があります。
操作
優先順位
プロトコルタイプ
ポート範囲
許可対象
許可
1
すべて
送信先:-1/-1
送信元:121.XX.XX.12
拒否
100
すべて
送信先:-1/-1
送信元:0.0.0.0/0
ECS コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、セキュリティグループが配置されているリージョンを選択します。本トピックでは例として 中国 (杭州) を使用します。
セキュリティグループ ページで、セキュリティグループの作成 をクリックします。
セキュリティグループの作成 ページで、基本情報 のパラメーターを設定します。
本トピックでは一部のパラメーターのみを説明します。その他のパラメーターの詳細については、「セキュリティグループの作成」をご参照ください。
ネットワーク:本トピックでは前述の VPC を例として使用します。
セキュリティグループの種類:本トピックでは例として 基本セキュリティグループ を使用します。
セキュリティグループの作成 ページで、ルールの設定 のパラメーターを設定します。
ルールを追加 をクリックし、ブラックリストポリシー用のセキュリティグループ 1 および ホワイトリストポリシー用のセキュリティグループ 2 の設定に基づいてルールを作成します。
作成 をクリックします。
ステップ 5:ベースライン接続性のテスト
Client03 および Client04 を使用して ALB インスタンスへの接続性をテストします。
Client03 にログインし、
curl http://<your-domain-name>コマンドを実行します。Hello World ! This is ECS01.という応答が得られた場合、クライアントが ALB インスタンスにアクセスできることを示します。
Client04 にログインし、
curl http://<your-domain-name>コマンドを実行します。Hello World ! This is ECS02.という応答が得られた場合、クライアントが ALB インスタンスにアクセスできることを示します。
ステップ 6:セキュリティグループの関連付けおよび検証
ブラックリスト
ALB インスタンスを、ステップ 4:セキュリティグループの作成 で作成したセキュリティグループ 1 に関連付け、セキュリティグループ 1 のルールが有効であるかを検証します。
ALB コンソール にログインします。
上部のナビゲーションバーで、ALB インスタンスが配置されているリージョンを選択します。本トピックでは例として 中国 (杭州) を使用します。
インスタンス ページで、作成した ALB インスタンスを見つけ、その ID をクリックします。インスタンスの詳細ページで、セキュリティグループ タブをクリックします。
セキュリティグループ タブで、セキュリティグループの追加 をクリックします。ALB インスタンスをセキュリティグループに追加する ダイアログボックスで、ステップ 4:セキュリティグループの作成 で作成したセキュリティグループ 1 を選択し、OK をクリックします。
左側のリストで、対象のセキュリティグループの ID をクリックします。その後、インバウンド または アウトバンド タブをクリックして、セキュリティグループルールを表示できます。
以下の表は、本トピックに関連するインバウンドセキュリティグループルールを示しています。
操作
優先順位
プロトコルタイプ
ポート範囲
承認オブジェクト
拒否
1
すべて
送信先:-1/-1
送信元:121.XX.XX.12
ALB インスタンスをセキュリティグループに関連付けた後、アクセス結果をテストします。
Client03 にログインし、
curl http://<your-domain-name>コマンドを実行します。タイムアウト応答が得られた場合、セキュリティグループによってこのクライアントからのアクセスが拒否されたことを確認できます。
Client04 にログインし、
curl http://<your-domain-name>コマンドを実行します。Hello World ! This is ECS01.という応答が得られた場合、このクライアントが ALB インスタンスにアクセスできることを示します。
テスト結果より、ブラックリストポリシーが有効であることが確認できます。つまり、指定された IP アドレスはブロックされ、その他の IP アドレスからのアクセスは許可されています。
ホワイトリスト
ALB インスタンスを、ステップ 4:セキュリティグループの作成 で作成したセキュリティグループ 2 に関連付け、セキュリティグループ 2 のルールが有効であるかを検証します。
ALB コンソール にログインします。
上部のナビゲーションバーで、ALB インスタンスが配置されているリージョンを選択します。本トピックでは例として 中国 (杭州) を使用します。
インスタンス ページで、作成した ALB インスタンスを見つけ、その ID をクリックします。インスタンスの詳細 ページで、セキュリティグループ タブをクリックします。
セキュリティグループ タブで、セキュリティグループの追加 をクリックします。ALB インスタンスをセキュリティグループに追加する ダイアログボックスで、ステップ 4:セキュリティグループの作成 で作成したセキュリティグループ 2 を選択し、OK をクリックします。
左側のリストで、対象のセキュリティグループの ID をクリックします。その後、インバウンド または アウトバンド タブをクリックして、セキュリティグループルールを表示できます。
以下の表は、本トピックに関連するセキュリティグループルールを示しています。
操作
優先順位
プロトコルタイプ
ポート範囲
許可対象
許可
1
すべて
送信先:-1/-1
送信元:121.XX.XX.12
拒否
100
すべて
送信先:-1/-1
すべての IPv4 アドレス(0.0.0.0/0)
ALB インスタンスをセキュリティグループに関連付けた後、アクセス結果をテストします。
Client03 にログインし、
curl http://<your-domain-name>コマンドを実行します。Hello World ! This is ECS01.という応答が得られた場合、このクライアントが ALB インスタンスにアクセスできることを示します。
Client04 にログインし、
curl http://<your-domain-name>コマンドを実行します。タイムアウト応答が得られた場合、このクライアントからの ALB インスタンスへのアクセスが拒否されたことを示します。
テスト結果より、ホワイトリストポリシーが有効であることが確認できます。つまり、許可ルールで指定された IP アドレスからのみ ALB インスタンスへのアクセスが許可されています。
参考文献
コンソール
ALB インスタンスとセキュリティグループの関連付けや解除などに関する操作の詳細については、「ALB インスタンスとセキュリティグループの関連付け」をご参照ください。
リスナーまたはポートに基づいて ALB インスタンスへのアクセスを制御するためにセキュリティグループを設定する方法については、「リスナーまたはポートに基づく ALB インスタンスへのアクセス制御のためのセキュリティグループの使用」をご参照ください。
基本セキュリティグループおよび高度セキュリティグループの詳細については、「基本セキュリティグループおよび高度セキュリティグループ」をご参照ください。
API
LoadBalancerJoinSecurityGroup:ALB インスタンスをセキュリティグループに追加します。
LoadBalancerLeaveSecurityGroup:ALB インスタンスをセキュリティグループから削除します。