セキュリティグループは、インバウンドルールとアウトバウンドルールに基づいてApplication Load Balancer (ALB) のインバウンドトラフィックとアウトバウンドトラフィックを制御する仮想ファイアウォールです。 特定のIPアドレスからALBインスタンスへのアクセスを許可または拒否するには、ALBインスタンスをセキュリティグループに追加します。 セキュリティグループは、ALBインスタンスのブラックリストまたはホワイトリストとして機能します。 セキュリティグループルールを作成して、きめ細かいアクセス制御を実装できます。
シナリオ
ALBインスタンスがセキュリティグループに追加される前に、ALBインスタンスのリスナーポートはデフォルトですべてのリクエストを許可します。
ALBインスタンスがDenyルールを含まないセキュリティグループに追加されると、ALBインスタンスのリスナーポートはデフォルトですべてのリクエストを許可します。 特定のIPアドレスからALBインスタンスへのリクエストのみを許可する場合は、拒否ルールも作成する必要があります。
特定のIPアドレスからのアクセスを許可または拒否する方法の詳細については、「セキュリティグループをブラックリストまたはホワイトリストとして使用する」をご参照ください。
プロトコルとポートに基づいてアクセス制御を構成する方法の詳細については、「セキュリティグループを使用してリスナーとポートに基づいてアクセス制御を構成する」をご参照ください。
ALBインスタンスへのインバウンドアクセスを制御する場合は、ALBインスタンスをセキュリティグループに追加し、セキュリティ要件に基づいてセキュリティグループルールを設定できます。
ALBアウトバウンドトラフィックは、ユーザーに返される応答パケットを指します。 サービスの継続性を確保するため、ALBセキュリティグループは送信パケットをブロックしません。 アウトバウンドルールを作成する必要はありません。
セキュリティグループを作成するときは、優先度が1の拒否ルールにALBのローカルIPアドレスを追加しないことを推奨します。 そうしないと、セキュリティグループルールがALBの管理セキュリティグループと競合し、ALBとバックエンドサーバー間の通信が中断される可能性があります。 ALBインスタンスのローカルIPアドレスを表示するには、ALBコンソールにログインし、ALBインスタンスの詳細ページに移動します。
このトピックでは、2つのシナリオでセキュリティグループをブラックリストとホワイトリストとして使用する方法について説明します。 セキュリティグループルールの優先順位の詳細については、「セキュリティグループルールの並べ替えポリシー」をご参照ください。
ブラックリスト: 特定のIPアドレスからのアクセスを拒否するようにALBセキュリティグループを設定します
企業は、Alibaba CloudのリージョンでALBにビジネスを展開しました。 セキュリティ検査は、121.XX. XX.12などのIPアドレスからの悪意のある要求や攻撃を検出します。 このような動作は、ビジネスリスクやデータリークなどのセキュリティリスクを引き起こす可能性があります。
この問題を解決するために、会社はALBインスタンスのセキュリティグループルールを設定して、121.XX. XX.12などの特定のIPアドレスからのアクセスを拒否できます。 セキュリティグループルールは、特定のIPアドレスからの悪意のある要求や攻撃をブロックして、ビジネスのセキュリティと安定性を向上させます。
ホワイトリスト: 特定のIPアドレスからのアクセスを許可するようにALBセキュリティグループを設定します
Alibaba Cloudのリージョンで、ALBに関する機密データを含むビジネスを展開しました。 ALBインスタンスへのアクセスを制限するために、会社はセキュリティグループルールを設定して、121.XX. XX.12などの特定のIPアドレスからのアクセスのみを許可することができます。 他のIPアドレスからの要求は拒否されます。
制限事項
デフォルトでは、セキュリティグループは使用できません。 セキュリティグループを使用するには、アカウントマネージャーに連絡してください。
カテゴリ | セキュリティグループタイプ | 説明 |
サポートされているセキュリティグループALB |
|
基本セキュリティグループと高度なセキュリティグループの詳細については、「基本セキュリティグループと高度なセキュリティグループ」をご参照ください。 |
セキュリティグループがサポートされていませんALB | 管理セキュリティグループ | マネージドセキュリティグループの詳細については、「マネージドセキュリティグループ」をご参照ください。 |
前提条件
VPC1という名前の仮想プライベートクラウド (VPC) が中国 (杭州) リージョンに作成されています。 VSW1という名前のvSwitchがゾーンHに作成され、VSW2という名前の別のvSwitchがゾーンIに作成されます。詳細については、「VPCとvSwitchの作成」をご参照ください。
VSW1に2つのECS (Elastic Compute Service) インスタンスが作成され、ECS01とECS02にアプリケーションがデプロイされます。
ECSインスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。
次のコマンドは、ECS01およびECS02にアプリケーションをデプロイする方法を示しています。
ドメイン名を登録し、そのドメイン名に対してICP (Internet content provider) 番号を取得する。 詳細については、「Alibaba Cloudへのドメイン名の登録」および「概要」をご参照ください。
次の表に、クライアントとサーバーのIPアドレスを示します。 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インスタンスの作成」をご参照ください。
リージョン: ALBインスタンスを作成するリージョンです。 この例では、中国 (杭州) が選択されています。
ネットワークタイプ: ALBインスタンスのネットワークタイプ。 この例では、インターネットが選択されています。
VPC: ALBインスタンスを作成するVPC。 この例では、VPC1が選択されています。
[今すぐ購入] をクリックして、支払いを完了します。
[インスタンス] ページに戻り、ALBインスタンスのIDをクリックします。
[リスナー] タブをクリックし、[リスナーのクイック作成] をクリックします。
[クイック作成リスナー] ダイアログボックスでパラメーターを設定し、[OK] をクリックします。 この例では、ポート80でリッスンするHTTPリスナーが作成されます。 下表に、各パラメーターを説明します。
パラメーター
説明
リスナープロトコル
リスナープロトコルを選択します。 この例では、HTTPが選択されています。
リスナーポート
リスナーポートを入力します。 この例では、ポート80が指定されている。
サーバーグループ
[サーバータイプ] を選択し、[サーバータイプ] の横にあるドロップダウンリストからサーバーグループを選択します。 この例では、ステップ1で作成したサーバグループが選択されています。
手順3: CNAMEレコードの設定
実際のビジネスシナリオでは、CNAMEレコードを使用して、カスタムドメイン名をALBインスタンスのドメイン名にマップすることを推奨します。
左側のナビゲーションウィンドウで、
を選択します。On theインスタンスページのドメイン名をコピーします。ALBインスタンスを作成します。
CNAMEレコードを作成するには、次の手順を実行します。
説明ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」をご参照ください。
Alibaba Cloud DNSコンソールにログインします。
権威DNS解決ページで、ドメイン名を見つけて、アクション列のDNS設定をクリックします。
ドメイン名の詳細ページのDNS設定タブをクリックし、DNSレコードの追加をクリックします。
[DNSレコードの追加] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを入力します。 この例では、@ を入力します。
説明ルートドメイン名を使用する場合は、
@
と入力します。DNSリクエストソース
[デフォルト] を選択します。
レコード値
ALBインスタンスのドメイン名であるCNAMEを入力します。
TTL
DNSサーバーにキャッシュされるCNAMEレコードの有効期限 (TTL) 値を選択します。 この例では、デフォルト値が使用されます。
手順4: セキュリティグループの作成
ECSコンソールでセキュリティグループを作成します。 この例では、2つのセキュリティグループが作成されます。
セキュリティグループ1をブラックリストとして使用
指定したIPアドレスからのアクセスを拒否する拒否ルールを追加します。 この例では、パブリックIPアドレス121.XX. XX.12からのアクセスを拒否するセキュリティグループが作成されます。 デフォルトのセキュリティグループルールを保持できます。
Action
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
拒否
1
All
宛先: -1/-1
出典: 121.XX. XX.12
セキュリティグループ2をホワイトリストとして使用
特定のIPアドレスからのアクセスを許可する許可ルールと、特定のIPアドレスからのアクセスを拒否する拒否ルールを追加します。 この例では、パブリックIPアドレス121.XX. XX.12からのアクセスを許可する許可ルールと拒否ルールが作成されます。
Action
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
許可
1
All
宛先: -1/-1
出典: 121.XX. XX.12
拒否
100
All
宛先: -1/-1
出典: 0.0.0.0/0
ECS コンソールにログインします。
左側のナビゲーションウィンドウで、
を選択します。上部のナビゲーションバーで、セキュリティグループを作成するリージョンを選択します。 この例では、中国 (杭州) が選択されています。
[セキュリティグループ] ページで、[セキュリティグループの作成] をクリックします。
[セキュリティグループの作成] ページで、[基本情報] セクションのパラメーターを設定します。
以下のパラメーターを指定します。 その他のパラメーターの詳細については、「セキュリティグループの作成」をご参照ください。
ネットワーク: この例では、VPCが選択されています。
セキュリティグループタイプ: この例では、基本的なセキュリティグループが選択されています。
[セキュリティグループの作成] ページで、[アクセスルール] セクションのパラメーターを設定します。
[インバウンド] タブで、[ルールの追加] をクリックして、[セキュリティグループ1] および [セキュリティグループ2] のルールの設定に基づいてルールを追加します。
[セキュリティグループの作成] をクリックします。
手順5: ALBインスタンスをセキュリティグループに追加する前にアクセス制御をテストする
Client03とClient04を使用して、ECS01とECS02の可用性をテストします。
Client03にログインし、
curl http:// Domain name
コマンドを実行します。 次の図は、Hello World! を示しています。 これはECS01です。
パケットが返されます。 このパケットは、Client03がALBインスタンスにアクセスできることを示します。Client04にログインし、
curl http:// Domain name
コマンドを実行します。 次の図は、Hello World! を示しています。 これはECS02です。
パケットが返されます。これは、Client04がALBインスタンスにアクセスできることを示します。
手順6: ALBインスタンスをセキュリティグループに追加し、結果を確認します
セキュリティグループ1をブラックリストとして使用する
手順4: セキュリティグループの作成で作成したセキュリティグループ1にALBインスタンスを追加して、セキュリティグループ1のルールがALBインスタンスで有効になるかどうかをテストします。
ALBコンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスのリージョンを選択します。 この例では、中国 (杭州) が選択されています。
ALBインスタンスページで、管理するALBインスタンスのIDをクリックします。 [インスタンスの詳細] タブで、[セキュリティグループ] タブをクリックします。
[セキュリティグループ] タブで、[セキュリティグループの作成] をクリックします。 [セキュリティグループにALBを追加] ダイアログボックスで、[手順4: セキュリティグループの作成] で作成したセキュリティグループ1を選択し、[OK] をクリックします。
左側のパネルで、管理するセキュリティグループのIDをクリックします。 [インバウンドポリシー] または [アウトバウンドポリシー] タブをクリックして、セキュリティグループルールを表示できます。
次の表では、このトピックに関連するパラメーターのみを説明します。
Action
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
拒否
1
All
宛先: -1/-1
出典: 121.XX. XX.12
ALBインスタンスをセキュリティグループに追加し、結果をテストします。
Client03にログインし、
curl http:// Domain name
コマンドを実行します。 次の図は、curl :( 7) Failed connect to ********:80; Connection timed out
パケットが返されることを示しています。 このパケットは、Client03からのアクセスがALBインスタンスによって拒否されることを示す。Client04にログインし、
curl http:// Domain name
コマンドを実行します。 次の図は、Hello World! を示しています。 これはECS01です。
パケットが返されます。 このパケットは、Client04がALBインスタンスにアクセスできることを示します。
結果は、ALBインスタンスがブラックリストとして機能するセキュリティグループ1に追加された後、セキュリティグループ1の拒否ルールが指定されたIPアドレスからALBインスタンスへのアクセスを拒否することを示しています。 拒否ルールで指定されていないIPアドレスは、ALBインスタンスにアクセスできます。
セキュリティグループ2をホワイトリストとして使用する
手順4: セキュリティグループの作成で作成したセキュリティグループ2にALBインスタンスを追加し、ALBインスタンスでセキュリティグループ2のルールが有効かどうかをテストします。
ALBコンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスのリージョンを選択します。 この例では、中国 (杭州) が選択されています。
ALBインスタンスページで、管理するALBインスタンスのIDをクリックします。 [インスタンスの詳細] タブで、[セキュリティグループ] タブをクリックします。
[セキュリティグループ] タブで、[セキュリティグループの作成] をクリックします。 [セキュリティグループにALBを追加] ダイアログボックスで、[手順4: セキュリティグループの作成] で作成したセキュリティグループ2を選択し、[OK] をクリックします。
左側のパネルで、管理するセキュリティグループのIDをクリックします。 [インバウンドポリシー] または [アウトバウンドポリシー] タブをクリックして、セキュリティグループルールを表示できます。
次の表では、このトピックに関連するパラメーターのみを説明します。
Action
優先度
プロトコルタイプ
ポート範囲
権限付与オブジェクト
可
1
All
宛先: -1/-1
出典: 121.XX. XX.12
拒否
100
All
宛先: -1/-1
出典: すべてのIPv4アドレス (0.0.0.0/0)
ALBインスタンスをセキュリティグループに追加し、結果をテストします。
Client03にログインし、
curl http:// Domain name
コマンドを実行します。 次の図は、Hello World! を示しています。 これはECS01です。
パケットが返されます。 このパケットは、Client03がALBインスタンスにアクセスできることを示します。Client04にログインし、
curl http:// Domain name
コマンドを実行します。 次の図は、curl :( 7) Failed connect to ********:80; Connection timed out
パケットが返されることを示しています。 このパケットは、Client04からのアクセスがALBインスタンスによって拒否されることを示す。
テスト結果は、ALBインスタンスがホワイトリストとして機能するセキュリティグループ2に追加された後、許可ルールのIPアドレスのみがALBインスタンスにアクセスできることを示しています。
関連ドキュメント
ALBインスタンスをセキュリティグループに追加および削除する方法の詳細については、「ALBインスタンスをセキュリティグループに追加する」をご参照ください。
リスナーとポートに基づいてALBにアクセス制御を実装する方法の詳細については、「セキュリティグループを使用してリスナーとポートに基づいてアクセス制御を構成する」をご参照ください。
セキュリティグループの詳細については、「セキュリティグループ」をご参照ください。
LoadBalancerJoinSecurityGroup: ALBインスタンスをセキュリティグループに追加します。
LoadBalancerLeaveSecurityGroup: セキュリティグループからALBインスタンスを削除します。