背景情報
同じリージョンにデプロイされているElastic Compute Service (ECS) インスタンスをCLBインスタンスに追加すると、CLBは仮想IPアドレス (VIP) を使用して、ECSインスタンスを高性能で高可用性のサーバープールに結合します。 次に、CLBは転送ルールに基づいてインバウンドリクエストをECSインスタンスに転送します。 詳細については、「CLB の概要」をご参照ください。
レイヤ7 CLBインスタンスをWAFに追加できます。 レイヤ7 CLBインスタンスをWAFに追加すると、指定されたゲートウェイを使用してCLBインスタンスのすべてのトラフィックがWAFにリダイレクトされます。 WAFは悪意のあるトラフィックを除外し、通常のトラフィックをCLBインスタンスに転送します。 次の図は、ネットワークアーキテクチャを示しています。

制限事項
次のAlibaba Cloudサービスのいずれかを使用するWebサービスをクラウドネイティブモードでWAFに追加できます。Application Load Balancer (ALB) 、Microservices Engine (MSE) 、Function Compute、Classic Load Balancer (CLB) 、Elastic Compute Service (ECS) 、およびNetwork Load Balancer (NLB) 。
. 前述のAlibaba Cloudサービスを使用しないwebサービスを保護するためにWAFを使用する場合は、CNAMEレコードモードでwebサービスのドメイン名をWAFに追加します。 詳細については、「WAFへのドメイン名の追加」をご参照ください。
項目 | 説明 |
サポートされているインスタンス | 次の要件を満たすインスタンスのみをWAFに追加できます。 |
サポートされるリージョン | |
トラフィック転送ポート数 | トラフィック転送ポートの最大数は、保護されているオブジェクトの最大数と同じです。 |
TLSセキュリティポリシー | HTTPSリスナーポートが設定されている場合、組み込みのTransport Layer Security (TLS) セキュリティポリシーのみがサポートされます。 ポートにカスタムTLSセキュリティポリシーが設定されている場合、ポートをWAFに追加することはできません。 詳細については、「サポートされているTLSセキュリティポリシー」をご参照ください。 |
Anti-DDoS ProxyおよびWAFによって保護されるサービス | Anti-DDoS ProxyとWAFを使用してwebサービスを保護する場合は、ドメイン名を追加してAnti-DDoS proxyにサービスを追加する場合にのみ、透過プロキシモードでサービスをWAFに追加できます。 |
前提条件
WAF 3.0インスタンスを購入しました。 詳細については、「サブスクリプションWAF 3.0インスタンスの購入」および「従量課金WAF 3.0インスタンスの購入」をご参照ください。
CLBインスタンスが作成され、HTTPまたはHTTPSリスナーがCLBインスタンスに追加されます。 インスタンスは前述の要件も満たしています。 要件の詳細については、このトピックの「制限」セクションを参照してください。 HTTPまたはHTTPSリスナーを追加する方法の詳細については、「HTTPリスナーの追加」または「HTTPSリスナーの追加」をご参照ください。
サブスクリプションWAFインスタンスを使用する場合は、WAFに追加した保護対象オブジェクトの数が上限を超えないようにしてください。 上限を超えると、クラウドサービスインスタンスをWAFに追加できなくなります。
WAFに追加できる保護されたオブジェクトの数を表示するには、
保護されたオブジェクトページ 
トラフィック転送ポートの追加
重要
WAFにインスタンスを追加すると、webサービスが数秒間中断されることがあります。 クライアントが自動的に再接続できる場合、webサービスは自動的に再開されます。 ビジネス要件に基づいて、再接続メカニズムとback-to-origin設定を構成します。
レイヤー7 CLBインスタンスをWAFに追加した後に次の操作を実行すると、トラフィックリダイレクションポートはWAFから自動的に削除されます。 ポートをWAFに再追加しない場合、ポート上のトラフィックはWAFによってフィルタリングされません。
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
On theクラウドネイティブタブをクリックします。CLB(HTTP/HTTPS)左側のクラウドサービスリストに表示されます。
権限付与ページで、今すぐ許可するWAFインスタンスに必要なクラウドサービスへのアクセスを許可します。
Alibaba Cloudは、AliyunServiceRoleForWAFサービスにリンクされたロールを自動的に作成します。 サービスにリンクされたロールを表示するには、Resource Access Management (RAM) コンソールにログインし、左側のナビゲーションウィンドウで を選択します。
説明
承認が完了した場合、承認ページは表示されません。 次のステップに進むことができます。
[追加] をクリックします。
[インスタンス-レイヤー7 CLBインスタンスの設定] パネルで、パラメーターを設定します。 下表に、各パラメーターを説明します。

パラメーター | 操作 |
インスタンスとポートの選択 | インスタンスの同期 WAFに追加するインスタンスがインスタンスリストにない場合は、インスタンスの同期 をクリックしてインスタンスリストを更新します。 ポートの追加 WAFに追加するインスタンスを見つけて、操作 列の ポートの追加 をクリックします。 追加するHTTPまたはHTTPSポートを選択し、OK をクリックします。
|
Anti-DDoS Pro、Anti-DDoS Premium、Alibaba Cloud CDNなどのレイヤー7プロキシをWAFの前にデプロイするかどうか | Anti-DDoSプロキシやAlibaba Cloud CDNなどのレイヤー7プロキシをWAFの前にデプロイするかどうかを指定します。 デフォルトでは、No が選択されています。 この値は、WAFがクライアントから送信されたリクエストを受信することを示します。 リクエストはプロキシによって転送されません。 説明 クライアントからWAFにリクエストが送信されると、WAFはWAFへの接続を確立するために使用されるIPアドレスをクライアントのIPアドレスとして使用します。 IPアドレスは、リクエストのREMOTE_ADDR フィールドで指定されます。 レイヤ7プロキシがWAFの前にデプロイされている場合は、Yes を選択します。 この値は、レイヤ7プロキシによってWAFに転送されたリクエストをWAFが受信することを示します。 WAFがセキュリティ分析のためにクライアントの実際のIPアドレスを取得できるようにするには、クライアント IP の取得方法 パラメーターを設定する必要があります。 -
X-Forwarded-For の最初の IP アドレスをクライアント送信元 IP とする (デフォルト)
デフォルトでは、WAFはX-Forwarded-For フィールドの最初のIPアドレスをクライアントのIPアドレスとして使用します。
-
【推奨】偽装 XFF を回避するために、指定したヘッダの最初の IP アドレスをクライアント送信元 IP アドレスとする
X-Client-IPやX-Real-IPなど、カスタムヘッダーフィールドにクライアントの送信元IPアドレスを含むプロキシを使用する場合は、この値を選択します。 次に、ヘッダフィールド フィールドにカスタムヘッダーフィールドを入力します。 説明 カスタムヘッダーフィールドを使用してクライアントの送信元IPアドレスを格納し、WAFでヘッダーフィールドを指定することを推奨します。 このように、攻撃者はX-Forwarded-Forフィールドを偽造してWAF検査をバイパスすることはできません。 これにより、ビジネスのセキュリティが向上します。 複数のヘッダーフィールドを入力できます。 ヘッダーフィールドを入力するたびにEnterキーを押します。 複数のヘッダーフィールドを入力すると、WAFはクライアントのIPアドレスを取得するまでヘッダーフィールドを順番に読み取ります。 WAFがヘッダーフィールドからクライアントのIPアドレスを取得できない場合、WAFはX-Forwarded-Forフィールドの最初のIPアドレスをクライアントのIPアドレスとして使用します。
|
リソースグループ | CLBインスタンスを追加するリソースグループを選択します。 リソースグループを選択しない場合、インスタンスはデフォルトリソースグループに追加されます。 説明 リソース管理を使用して、リソースグループを作成し、Alibaba Cloudアカウント内のリソースを部門またはプロジェクトごとに管理できます。 詳細については、「リソースグループの作成」をご参照ください。 |
詳細設定 | -
X-Forwarded-Protoヘッダーフィールドを使用したWAFのリスニングプロトコルの取得
X-Forwarded-Proto ヘッダーフィールドは、HTTPリクエストに自動的に追加されます。 X − Forwarded − Protoヘッダフィールドは、クライアントによって使用される元のプロトコルを識別するために使用される。 WebサイトがX-Forwarded-Protoヘッダーフィールドを正しく処理できない場合、互換性の問題が発生し、ビジネスに影響を与える可能性があります。 このような問題を防ぐには、X-Forwarded-Protoヘッダーフィールドを使用してWAFのリスニングプロトコルの取得をクリアします。
-
[トラフィックマークの有効化] を選択すると、WAFを通過するリクエストがマークされます。 これは、オリジンサーバーがクライアントの発信IPアドレスまたはポートを取得するのに役立ちます。 ドメイン名をWAFに追加する前に攻撃者がオリジンサーバーに関する情報を取得し、別のWAFインスタンスを使用してリクエストをオリジンサーバーに転送する場合は、[トラフィックマークの有効化] を選択して悪意のあるトラフィックを傍受できます。 オリジンサーバーは、リクエストがWAFを通過したかどうかを確認します。 指定されたヘッダーフィールドがリクエストに存在する場合、リクエストはWAFを通過し、許可されます。 指定されたヘッダーフィールドがリクエストに存在しない場合、リクエストはWAFを通過せず、ブロックされます。 次のタイプのヘッダーフィールドを設定できます。 -
カスタムヘッダーフィールドを追加する場合は、ヘッダ名 および ヘッダ値 パラメーターを設定する必要があります。 WAFは、back-to-originリクエストにヘッダーフィールドを追加します。 これにより、オリジンサーバーは、リクエストがWAFを通過したかどうかを確認し、統計を収集し、データを分析できます。 たとえば、ALIWAF-TAG: はい のカスタムヘッダーフィールドを追加して、WAFを通過するリクエストをマークできます。 この例では、ヘッダーフィールドの名前はALIWAF-TAG で、ヘッダーフィールドの値はYes です。
-
クライアントの送信元IPアドレスを記録するヘッダーフィールドを指定できます。 これにより、オリジンサーバーはクライアントの発信IPアドレスを取得できます。 WAFがクライアントの送信元IPアドレスを取得する方法の詳細については、「Anti-DDoS Pro、Anti-DDoS Premium、Alibaba Cloud CDNなどのレイヤー7プロキシがWAFの前にデプロイされているかどうか」をご参照ください。
-
クライアントの発信ポートを記録するヘッダーフィールドを指定できます。 これにより、オリジンサーバーはクライアントのポートを取得できます。
重要 User-Agentなどの標準のHTTPヘッダーフィールドを設定しないことをお勧めします。 それ以外の場合、標準ヘッダーフィールドの元の値は、カスタムヘッダーフィールドの値で上書きされます。 マークの追加 をクリックすると、ヘッダーフィールドを追加できます。 最大5つのヘッダーフィールドを指定できます。
-
WAFとオリジンサーバー間の永続的な接続がタイムアウトした場合、永続的な接続のタイムアウト期間、再利用される永続的な接続の数、およびアイドル状態の永続的な接続のタイムアウト期間を再設定できます。 読み取り接続タイムアウト期間: WAFが配信元サーバーからの応答を待機する時間。 タイムアウト期間が終了すると、WAFは接続を閉じます。 有効な値: 1 ~ 3600 デフォルト値:120 単位は秒です。 書き込み接続タイムアウト期間: リクエストが配信元サーバーに転送されるのをWAFが待機する時間。 タイムアウト期間が終了すると、オリジンサーバーは接続を閉じます。 有効な値: 1 ~ 3600 デフォルト値:120 単位は秒です。 Back-to-origin の持続的接続: 再利用される永続接続の数またはアイドル状態の永続接続のタイムアウト期間を設定する場合は、Back-to-originキープアライブ要求をオンにして、次のパラメーターを設定します。
|
WAFに追加するインスタンスを選択し、OK.
CLBインスタンスをWAFに追加すると、インスタンスは自動的にWAFの保護対象オブジェクトになります。 保護されたオブジェクトの名前は、インスタンスID-ポート-アセット型の形式です。 デフォルトでは、保護対象オブジェクトに対してコア保護ルールモジュールの保護ルールが有効になっています。 保護されたオブジェクトを表示し、保護対象 ページでオブジェクトの保護ルールを設定できます。 [保護オブジェクト] ページに移動するには、[Webサイト設定] ページの [クラウドネイティブ] タブでCLBインスタンスのIDをクリックします。 詳細については、「保護設定の概要」をご参照ください。 
WAF保護の管理
WAFコンソールでのWAF保護の管理
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
WAF保護を管理します。
[クラウドネイティブ] タブで、左側のクラウドサービスリストで [CLB(HTTP/HTTPS)] をクリックします。 その後、WAFに追加されたCLBインスタンスを表示できます。
保護されたオブジェクトを表示し、保護ルールを設定します。
CLBインスタンスをWAFに追加すると、インスタンスは自動的にWAFの保護対象オブジェクトになります。 保護されたオブジェクトの名前には、-clb7というサフィックスが含まれます。 デフォルトでは、保護対象オブジェクトに対してコア保護ルールモジュールの保護ルールが有効になっています。 保護されたオブジェクトを表示し、[保護されたオブジェクト] ページでオブジェクトの保護ルールを設定できます。 [保護オブジェクト] ページに移動するには、[Webサイト設定] ページの [クラウドネイティブ] タブでCLBインスタンスのIDをクリックします。 詳細については、「保護設定の概要」をご参照ください。
オリジンサーバーを表示し、WAFからCLBインスタンスを削除します。
WAFにCLBインスタンスを追加した後、緊急ディザスタリカバリシナリオでは、オリジンサーバーの保護の詳細を表示し、トラフィックのリダイレクトを無効にしたり、トラフィックのリダイレクションポートを削除したりできます。
インスタンス名の左側にある
アイコンをクリックし、WAFに追加されたポートを表示します。 
ポートの詳細の表示: ポート詳細をクリックしてポート、プロトコル、証明書に関する情報を表示し、レイヤー7プロキシ (Anti-DDoS Pro、Anti-DDoS Premium、Alibaba Cloud CDNなど) をWAFの前面にデプロイするかどうか、トラフィックマークの有効化 (詳細設定) 、Back-to-originキープアライブリクエスト (詳細設定) パラメーター。
トラフィックのリダイレクトポートの削除: WAFから削除するポートを見つけて、[操作] 列の [削除] をクリックします。 [削除] メッセージで、[OK] をクリックします。
重要
WAFからトラフィックのリダイレクトポートを削除すると、webサービスが数秒間中断されることがあります。 クライアントが自動的に再接続できる場合、webサービスは自動的に再開されます。 ビジネス要件に基づいて、再接続メカニズムとback-to-origin設定を構成します。
WAFからトラフィックリダイレクトポートを削除すると、そのポートのトラフィックはWAFによって保護されなくなります。 トラフィックリダイレクトポートをWAFに再追加するには、[追加] をクリックします。 詳細については、「トラフィック転送ポートの追加」をご参照ください。
トラフィックリダイレクションポートに関連付けられた証明書の更新
トラフィックリダイレクトポートに関連付けられている証明書の有効期限が近づいている場合、または証明書が取り消された場合など、証明書が変更された場合は、証明書を更新する必要があります。
説明
証明書の残りの有効期間が30日未満の場合、
アイコンがドメイン名リストに表示されます。 これは、証明書の有効期限が近づいていることを示します。 この場合、できるだけ早い機会に証明書を更新する必要があります。
証明書の有効期限が近づいたときに電子メールやテキストメッセージなどの方法で通知を受信する場合は、証明書の通知を設定できます。 詳細については、「SSL証明書の通知の設定」をご参照ください。
証明書の有効期限によるサービスの中断を防ぐには、証明書管理サービスの証明書ホスティング機能を有効にします。 証明書に対してこの機能を有効にすると、システムは自動的に
ホストされた証明書の有効期限が近づいたときの新しい証明書。 詳細については、「証明書ホスティング機能の概要」をご参照ください。
以下の手順を実行します。
証明書を更新するか、証明書管理サービスに証明書をアップロードします。 詳細については、「証明書の更新」または「SSL証明書のアップロード」をご参照ください。
証明書をレイヤー7 CLBインスタンスに同期します。 次のいずれかの方法を使用できます。
Server Load Balancerコンソールで、証明書を更新します。 詳細については、「証明書の置き換え」をご参照ください。
CLBコンソールで証明書を更新すると、証明書は自動的にWAFに同期されます。
Certificate Management Serviceコンソールで、レイヤー7 CLBインスタンスに証明書をデプロイします。 詳細については、「Alibaba Cloudサービスへの証明書のデプロイ」をご参照ください。
certificate Management Serviceコンソールで証明書を更新する場合は、WAFコンソールで次の手順も実行する必要があります。
アクセス管理 ページの クラウドプロダクトアクセス タブで、左側のクラウドサービスリストで [CLB(HTTP/HTTPS)] をクリックします。 次に、追加 をクリックします。
[インスタンスの設定-レイヤー7 CLBインスタンス] パネルで、インスタンスの同期 をクリックして、更新された証明書を同期します。
Certificate Management Service (Original SSL Certificate) を使用して新しい証明書を購入しない場合、トラフィックのリダイレクションポートはWAFから自動的に削除されます。 証明書を更新したら、ポートをWAFに再追加します。 詳細については、「トラフィック転送ポートの追加」をご参照ください。
重要
レイヤー7 CLBインスタンスが期限切れの証明書に関連付けられている場合、WAFは新しい証明書を同期できません。 WAFが新しい証明書を同期する前に、期限切れの証明書を削除する必要があります。
CLBコンソールでのWAF保護の管理
にログインします。CLBコンソール.
上部のナビゲーションバーで、ALBインスタンスがデプロイされているリージョンを選択します。
WAF保護を管理します。
操作 | 手順 |
インスタンスのWAF保護が有効になっているかどうかの確認 | CLBインスタンスに対してWAF保護が有効になっているかどうかを確認するには、次のいずれかの方法を使用します。 方法1: [インスタンス] ページで、表示するインスタンスを見つけ、インスタンス名の右側にある アイコンの上にポインターを移動します。 [WAF保護] セクションで、インスタンスのWAF保護が有効になっているかどうかを確認します。 [すべてのポートで有効] は、CLBインスタンスでWAF保護が有効になっていることを示します。 方法2: [インスタンス] ページで、表示するCLBインスタンスのIDをクリックします。 インスタンスの詳細 タブで、[基本情報] セクションでWAF保護が有効になっているかどうかを確認します。
方法3: [インスタンス] ページで、表示するCLBインスタンスのIDをクリックします。 セキュリティ保護 タブで、[WAF保護] セクションでCLBインスタンスのWAF保護が有効になっているかどうかを確認します。
|
セキュリティレポートの表示 | CLBインスタンスをWAFに追加すると、インスタンスのWAF保護レコードをセキュリティレポートで表示できます。 方法2: [インスタンス] ページで、保護レコードを表示するCLBインスタンスのIDをクリックします。 インスタンスの詳細 タブで、[基本情報] セクションのWAF セキュリティ保護 の右側にある WAF セキュリティレポートを表示 をクリックし、[WAF 3.0コンソールのセキュリティレポート] ページに移動します。
方法3: [インスタンス] ページで、保護レコードを表示するCLBインスタンスを見つけ、インスタンスのIDをクリックします。 セキュリティ保護 タブで、[WAF保護] セクションの [WAF保護の管理] をクリックします。 [WAFの管理] パネルで、[WAFセキュリティレポートの表示] をクリックし、[WAF 3.0コンソール] の [セキュリティレポート] ページに移動します。
詳細については、「セキュリティレポート」をご参照ください。 |
WAF保護の無効化 | WAF保護を無効にすると、CLBインスタンスのトラフィックはWAFによって保護されなくなり、保護レコードはセキュリティレポートに含まれなくなります。 重要 WAF保護を無効にすると、リクエスト処理料金は課金されなくなります。 ただし、CLBインスタンス用に設定した保護ルールに対しては、引き続き機能料金が請求されます。 WAFからCLBインスタンスを削除する前に、保護ルールを削除することを推奨します。 詳細については、「課金の概要」および「保護構成の概要」をご参照ください。 方法1: [インスタンス] ページで、管理するCLBインスタンスを見つけ、[操作] 列の を選択します。 [リスナー] タブで、CLBインスタンスを見つけ、インスタンス名の右側の アイコンの上にポインターを移動します。 表示されるポップオーバーで、[無効化] をクリックします。 [WAF保護の無効化] ダイアログボックスで、[OK] をクリックします。
方法2: [インスタンス] ページで、管理するCLBインスタンスのIDをクリックします。 [リスナー] タブで、CLBインスタンスを見つけ、インスタンス名の右側の アイコンの上にポインターを移動します。 表示されるポップオーバーで、[無効化] をクリックします。 [WAF保護の無効化] ダイアログボックスで、[OK] をクリックします。
方法3: [インスタンス] ページで、管理するCLBインスタンスのIDをクリックします。 [セキュリティ保護] タブで、[WAF保護] セクションの [WAF保護の管理] をクリックします。 WAFの管理パネルで、WAF保護列でオフ にします。 [無効] メッセージで、[OK] をクリックします。
|
よくある質問
レイヤー7 CLBインスタンスのWAF保護が有効になっているかどうかを確認するにはどうすればよいですか。
ブラウザのアドレスバーにWAFに追加したドメイン名を入力します。 ドメイン名にアクセスできる場合、ドメイン名はWAFによって保護されます。
xxx.xxxx.com?id=1や1=1
などの悪意のあるSQLコードをリクエストに挿入し、リクエストがブロックされているかどうかを確認します。 405メソッドが許可されていないエラーが返されると、リクエストはブロックされます。

CLBはレイヤー4およびレイヤー7リスナーをサポートしています。 レイヤー4リスナーはTCPまたはUDPプロトコルを使用し、レイヤー7リスナーはHTTPまたはHTTPSプロトコルを使用します。
レイヤー4リスナーは、リクエストをバックエンドサーバーに直接転送します。 CLBインスタンスがリクエストを受信すると、CLBインスタンスはリスナーポートに基づいてデータパケットの宛先IPアドレスと宛先ポートを変更します。 次に、CLBインスタンスはリクエストをバックエンドサーバーに転送します。 クライアントとバックエンドサーバーの間にTCP接続が確立されます。
レイヤー7リスナーはリバースプロキシとして機能します。 クライアント要求がCLBのレイヤー7リスナーに到達すると、CLBは、要求をバックエンドサーバーに直接転送するのではなく、HTTP経由でバックエンドサーバーへの新しいTCP接続を確立します。 レイヤー4リスナーと比較して、レイヤー7リスナーはTengine処理の追加ステップを必要とします。 クライアントポートの枯渇やバックエンドサーバーの過度のワークロードなどの要因が、レイヤー7リスナーのスループット容量に影響を与える可能性があります。 ビジネスでより高いパフォーマンスが必要な場合は、レイヤー4リスナーを使用することを推奨します。
詳細については、「CLBリスナー」をご参照ください。
レイヤー7 CLBインスタンスのWAF保護を有効にするときに、HTTPポートとHTTPSポートをWAFに追加できますか。
はい、HTTPポートとHTTPSポートを追加できます。
ポート番号が443されているCLB証明書が不完全な場合はどうすればよいですか。 SLBコンソールに移動し、証明書管理サービスからの証明書を選択します。レイヤー7 CLBインスタンスのWAF保護を有効にすると、エラーメッセージが表示されますか?
Certificate Management Serviceコンソールにログインして証明書を更新またはアップロードし、CLBコンソールで証明書を選択する必要があります。 詳細については、「証明書の更新」または「SSL証明書のアップロード」をご参照ください。
関連ドキュメント