HTTP、HTTPS、または TCP リスナーを持つ Alibaba Cloud Classic Load Balancer(CLB) インスタンスを作成した場合、リスナーのポートを Web Application Firewall(WAF)に追加できます。 これにより、Web トラフィックが WAF を経由してリダイレクトされ、保護されます。 このトピックでは、CLB インスタンスの WAF 保護を有効にする方法について説明します。
背景情報
同じリージョンの Elastic Compute Service(ECS)インスタンスを Classic Load Balancer(CLB)インスタンスに追加すると、CLB は仮想 IP アドレス(VIP)を使用して ECS インスタンスをパフォーマンス専有型で可用性の高いサーバープールにグループ化します。 その後、CLB は転送ルールに基づいて受信リクエストを ECS インスタンスに転送します。 詳細については、「Classic Load Balancer(CLB)とは」をご参照ください。
WAF は、CLB インスタンスのセキュリティ保護を提供します。 CLB インスタンスポートを WAF に追加すると、そのポートに送信されるすべての Web トラフィックは、指定されたゲートウェイを経由して WAF にリダイレクトされ、検出されます。 WAF は悪意のある Web 攻撃をフィルタリングし、正当なトラフィックを CLB サーバーに転送します。 次の図は、ネットワークアーキテクチャを示しています。
WAF は、レイヤー 7 とレイヤー 4 の両方の CLB インスタンスを保護します。 レイヤー 4 CLB(TCP)インスタンスの場合、WAF はリスナーポート上の HTTP および HTTPS トラフィックを保護できます。 WAF は、HTTP または HTTPS 以外のプロトコルを使用するトラフィックを転送または保護しません。
制限事項
Application Load Balancer(ALB)、Microservices Engine(MSE)、Function Compute(FC)、Classic Load Balancer(CLB)、Elastic Compute Service(ECS)、Network Load Balancer(NLB) などの Alibaba Cloud サービスを、ネイティブモードで Web Application Firewall(WAF)に追加できます。 Alibaba Cloud にデプロイされていない Web アプリケーションを保護するには、CNAME レコードモードで WAF にドメイン名を追加します。 詳細については、「WAF にドメイン名を追加する」をご参照ください。
項目 | 説明 |
サポートされている CLB インスタンス | インスタンスは、次の要件を満たしている必要があります。
|
サポートされているリージョン |
|
トラフィックリダイレクトポートの数 | 数は、保護対象オブジェクトの数と同じです。
|
TLS セキュリティポリシー | HTTPS リスナーが構成されているトラフィックリダイレクトポートは、CLB の組み込み TLS セキュリティポリシーのみをサポートします。 ポートに他のカスタム TLS セキュリティポリシーを構成すると、ポートの追加に失敗します。 詳細については、「TLS セキュリティポリシーとは」をご参照ください。 |
ポート構成 |
|
前提条件
WAF 3.0 インスタンスが購入されていること。 詳細については、「サブスクリプション WAF 3.0 インスタンスを購入する」および「従量課金 WAF 3.0 インスタンスを購入する」をご参照ください。
指定された制限を満たす CLB インスタンスが作成され、HTTP、HTTPS、または TCP リスナーが CLB インスタンスに追加されていること。 CLB インスタンスにリスナーを追加する方法の詳細については、「HTTP リスナーを追加する」、「HTTPS リスナーを追加する」、および「TCP リスナーを追加する」をご参照ください。
サブスクリプションインスタンスを使用する場合は、インスタンスに保護対象オブジェクトを追加するための十分なクォータがあることを確認してください。 そうしないと、クラウドサービスを追加できません。
保護対象オブジェクト ページに移動して、保護対象オブジェクトの残りのクォータを確認できます。

トラフィックリダイレクトポートを追加する
WAF にインスタンスを追加すると、Web サービスが数秒間中断される場合があります。 クライアントが自動的に再接続できる場合、サービスは自動的に再開され、影響を受けません。 必要に応じて、サービスを監視し、再接続や back-to-origin などのディザスタリカバリメカニズムを準備することをお勧めします。
CLB インスタンスが WAF に追加されると、CLB インスタンスが削除された場合、保護されたリスナーポートが削除された場合、またはインスタンスにバインドされている EIP が置き換えられた場合、トラフィックリダイレクトポートは保護リストから自動的に削除されます。 HTTP/HTTPS リスナーを持つ CLB インスタンスのトラフィックリダイレクトポートの証明書の有効期限が切れている場合、Certificate Management Service (Original SSL Certificate)によって発行されていない証明書を使用している場合、または相互認証が有効になっている場合、WAF コンソールでのインスタンスステータスは保護異常に変わります。
これらの状況が発生した場合は、まず CLB インスタンスの構成を修正してから、WAF コンソールでインスタンスを WAF に再度追加する必要があります。 そうしないと、サービストラフィックは WAF によって保護されません。
WAF 3.0 コンソール にログインします。 上部のナビゲーションバーで、WAF インスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
[クラウドネイティブ] タブで、左側のクラウドプロダクトのリストにある [Classic Load Balancer(CLB)] をクリックします。
認証ページで、今すぐ許可する をクリックして、WAF インスタンスが必要なクラウドサービスにアクセスすることを承認します。
Alibaba Cloud は、AliyunServiceRoleForWAF サービスリンクロールを自動的に作成します。 サービスリンクロールを表示するには、Resource Access Management(RAM)コンソール にログインし、左側のナビゲーションウィンドウで を選択します。
説明認証が完了すると、認証ページは表示されません。 次のステップに進むことができます。
右側のリストで、CLB インスタンスを見つけ、WAF 保護ステータスを表示します。 ターゲットインスタンスが見つからない場合は、ページの右上隅にある [アセットの同期] をクリックします。 保護する CLB インスタンスを見つけ、
アイコンをクリックして詳細を展開し、追加するポートを選択して、[アクション] 列の [今すぐ追加] をクリックします。
表示されるダイアログボックスで、パラメータを構成します。
重要HTTPS ポートをレイヤー 7 CLB インスタンスに追加する場合は、ポートの証明書が Alibaba Cloud Certificate Management Service (Original SSL Certificate) から購入されているか、Certificate Management Service (Original SSL Certificate) にアップロードされていることを確認してください。 そうしないと、WAF 証明書ソースの検証に失敗するため、ポートを追加できません。 詳細については、「HTTPS リスナーを WAF に追加する際の不完全な証明書エラーのトラブルシューティング」をご参照ください。
レイヤー 7 CLB インスタンスのポートの証明書の有効期限が切れている場合、または手動でアップロードされた証明書を使用している場合、WAF は証明書を同期できないため、ポートを追加できません。 CLB コンソールにログインして、期限切れの証明書を置き換えるか、手動でアップロードされた証明書を Certificate Management Service(元の SSL)の証明書に置き換える必要があります。
構成項目
関連操作
[ポートのプロトコルタイプを選択](TCP リスナーの場合のみ)
ポートの [プロトコルタイプ] を選択します。 有効な値: [HTTP] および [HTTPS]。
[HTTPS] を選択した場合は、証明書をアップロードする必要があります。
説明クラウドネイティブモードでは、SM 証明書をアップロードできません。
アップロードするデフォルト証明書と拡張証明書の合計数は 25 を超えることはできません。 さらに証明書をアップロードするには、ビジネス マネージャーまたはソリューション アーキテクトにお問い合わせください。
デフォルト証明書
[HTTPS] を選択した後、次の 詳細設定 も有効にできます。
Web サイトが HTTP/2 をサポートしている場合は、[HTTP2] を選択して HTTP/2 サービスの保護を有効にできます。
説明HTTP/2 プロトコルのポートは、HTTPS プロトコルのポートと同じです。
[WAF の前にレイヤー 7 プロキシ(Anti-DDoS Pro、Premium、CDN など)がデプロイされていますか?]
リソースグループ
リソースグループリストから、ドメイン名が属するリソースグループを選択します。 リソースグループを選択しない場合、ドメイン名は [デフォルトリソースグループ] に追加されます。
説明Resource Management を使用して、事業部門やプロジェクトなどのディメンションごとにリソースグループを作成し、クラウド リソースを管理できます。 詳細については、「リソースグループを作成する」をご参照ください。
詳細設定
[OK] をクリックして構成を完了します。
WAF に CLB インスタンスを追加すると、WAF は「インスタンス ID-ポート-アセットタイプ」という名前の保護対象オブジェクトを自動的に作成し、デフォルトの軽減機能を保護対象オブジェクトに関連付けます。 プロビジョニングリストで、追加されたインスタンスの ID をクリックして、[保護対象オブジェクト] ページに移動できます。 このページでは、自動的に追加された保護対象オブジェクトを表示し、保護ルールを構成できます。 詳細については、「保護構成の概要」をご参照ください。
説明複数の CLB インスタンスを選択してバッチプロビジョニングすることもできます。 デフォルトでは、選択したインスタンスのすべての HTTP および HTTPS ポートが追加されます。 TCP ポートの場合は、HTTP ポートまたは HTTPS ポートとして追加するかどうかを指定する必要があります。 または、[ワンクリックフルアクセス] をクリックして、使用可能なすべてのインスタンスのすべての HTTP および HTTPS ポートを WAF に追加することもできます。
その他の操作
オリジンサーバーを表示し、トラフィックリダイレクトポートを管理する
WAF 3.0 コンソール にログインします。 上部のナビゲーションバーで、WAF インスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
[クラウドネイティブ] タブで、左側のクラウドサービスのリストから [Classic Load Balancer(CLB)] を選択して、追加された CLB インスタンスを表示します。

ポートの詳細を表示する: ポート詳細 をクリックして、ポート、プロトコル、および証明書に関する情報を表示します。 [WAF の前にレイヤー 7 プロキシ(Anti-DDoS Pro、Premium、CDN など)がデプロイされていますか?]、[トラフィックマーキングを有効にする](詳細設定)、および [back-to-origin の持続的接続を構成する](詳細設定)パラメータも構成できます。
サービスプロバイダーリストから削除する: 接続解除 をクリックします。 接続解除 ダイアログボックスで、OK をクリックします。
重要WAF からインスタンスを削除すると、Web サービスで数秒間一時的な切断が発生する場合があります。 クライアントが自動的に再接続できる場合、接続は自動的に復元され、サービスには影響しません。 必要に応じて、サービスを監視し、再接続や back-to-origin などのディザスタリカバリメカニズムを準備することをお勧めします。
インスタンスを削除すると、アセットへのトラフィックは WAF によって保護されなくなります。 ポートを再度追加できます。 詳細については、「トラフィックリダイレクトポートを追加する」をご参照ください。
トラフィックリダイレクトポートに関連付けられた証明書を更新する
トラフィックリダイレクトポートに関連付けられた証明書の有効期限が近づいている場合、または証明書が変更された場合(たとえば、失効した場合)、証明書を更新する必要があります。
証明書の残りの有効期間が 30 日未満の場合、ドメイン名リストに
アイコンが表示されます。 これは、証明書の有効期限が近づいていることを示しています。 この場合、できるだけ早く証明書を更新する必要があります。証明書の有効期限が近づいたときに、メールやショートメッセージなどの方法で通知を受信する場合は、証明書の通知を構成できます。 詳細については、「SSL 証明書の通知を構成する」をご参照ください。
証明書の有効期限切れによるサービス中断を防ぐために、Certificate Management Service (Original SSL Certificate) の証明書ホスティング機能を有効にできます。 この機能は、ホストされている証明書の有効期限が近づくと、証明書を自動的に申請します。 詳細については、「証明書のホスティングとは」をご参照ください。
次の手順を実行します。
Certificate Management Service (Original SSL Certificate) で証明書を更新するか、証明書をアップロードします。 詳細については、「公式 SSL 証明書を更新する」または「SSL 証明書をアップロードして共有する」をご参照ください。
CLB リスナーのプロトコルに基づいて、次の手順を実行して証明書を WAF に同期します。
元の CLB プロトコルが HTTP/HTTPS(レイヤー 7)である
証明書を CLB インスタンスに同期します。
Certificate Management Service(元の SSL 証明書) コンソールで、証明書をレイヤー 7 CLB インスタンスにデプロイします。 詳細については、「SSL 証明書を Alibaba Cloud サービスにデプロイする」をご参照ください。
Server Load Balancer コンソールで、証明書を更新します。 詳細については、「証明書を置き換える」をご参照ください。
CLB コンソールで証明書を置き換えると、WAF は変更を自動的に同期します。 Certificate Management Service (Original SSL Certificate) コンソールから証明書を CLB インスタンスにデプロイする場合は、WAF コンソールの [プロビジョニング] ページで [アセットの同期] をクリックする必要があります。
トラフィックリダイレクトポートの証明書を、CLB インスタンスに手動でアップロードされた証明書に置き換えると、トラフィックリダイレクトポートはサービスプロバイダーリストから自動的に削除されます。 証明書を置き換えた後、ポートを再度追加する必要があります。 詳細については、「トラフィックリダイレクトポートを追加する」をご参照ください。
重要レイヤー 7 CLB インスタンスが期限切れの証明書に関連付けられている場合、WAF は新しい証明書を同期できません。 新しい証明書を同期する前に、期限切れの証明書を削除する必要があります。
元の CLB プロトコルが TCP(レイヤー 4)である
クラウドプロダクトアクセス タブで、[Classic Load Balancer(CLB)] タブをクリックします。 次に、宛先インスタンスを見つけ、
アイコンをクリックし、宛先ポートの 操作 列にある 証明書の編集 をクリックします。デフォルト証明書 セクションで、既存ファイルを選択 を選択し、新しい証明書を選択します。
CLB コンソールで WAF 保護を管理する
よくある質問
CLB インスタンスが WAF に正常に追加されたことを確認するにはどうすればよいですか?
ブラウザにドメイン名を入力して、アクセスをテストします。 Web サイトにアクセスできることを確認した後、
xxx.xxxx.com?id=1 and 1=1などの悪意のある SQL インジェクション文字列をドメイン名に追加して、WAF 保護をテストします。 [405] ブロックページが返された場合、攻撃はブロックされており、WAF 保護がアクティブであることを示しています。
Classic Load Balancer(CLB)は、レイヤー 4 プロトコル(TCP および UDP)とレイヤー 7 プロトコル(HTTP および HTTPS)の負荷分散を提供します。
レイヤー 4 リスナーは、リクエストをバックエンドサーバーに直接転送します。 CLB インスタンスがリクエストを受信すると、リスナーに構成されているバックエンドポートに基づいてリクエストパケットの宛先 IP アドレスと宛先ポートを変更し、トラフィックを対応するバックエンドサーバーに転送します。 クライアントとバックエンドサーバー間で TCP 接続が確立されます。
レイヤー 7 リスナーは、リバースプロキシとして機能します。 クライアントリクエストが CLB インスタンスに到達すると、インスタンスはバックエンドサーバーとの新しい TCP 接続を確立し、新しい接続を介してリクエストを転送します。 元のリクエストパケットを直接転送するわけではありません。 レイヤー 7 リスナーの基盤となる実装には、レイヤー 4 リスナーと比較して、追加の Tengine 処理ステップが含まれています。 クライアントポートが不足している場合、またはバックエンドサーバーの接続が多すぎる場合、レイヤー 7 サービスのパフォーマンスが低下する可能性があります。 高いパフォーマンス要件がある場合は、レイヤー 4 リスナーを使用することをお勧めします。
詳細については、「CLB リスナー」をご参照ください。
レイヤー 7 CLB(HTTP/HTTPS)インスタンスの WAF 保護を有効にする場合、HTTP ポートと HTTPS ポートの両方を同時に追加できますか?
はい、できます。
CLB インスタンスを追加すると、「ポート 443 の CLB 証明書が不完全です。 CLB コンソールに移動し、SSL 証明書サービスから証明書を再選択してください。」というエラーメッセージが表示されます。 どうすればよいですか?
SSL 証明書コンソール にログインして、証明書を更新またはアップロードする必要があります。 次に、インスタンスを WAF に追加する前に、CLB コンソールで証明書を再選択します。 詳細については、「公式 SSL 証明書を更新する」または「SSL 証明書をアップロードして共有する」をご参照ください。
参考資料
複数のドメイン名が同じ CLB インスタンスに解決され、各ドメイン名に個別の保護ルールを構成する場合は、ドメイン名を保護対象オブジェクトとして手動で追加する必要があります。 詳細については、「保護対象オブジェクトを手動で追加する」をご参照ください。
リスナーからクライアントの送信元 IP アドレスを取得するには、「CLB のレイヤー 7 リスナーからクライアントの送信元 IP アドレスを取得する」および「CLB のレイヤー 4 リスナーからクライアントの送信元 IP アドレスを取得する」をご参照ください。
プロビジョニングページでインスタンスが見つからない問題のトラブルシューティングを行うには、「プロビジョニングページで追加する CLB、NLB、または ECS インスタンスが見つからない問題のトラブルシューティング」をご参照ください。
> [管理]