Classic Load Balancer (CLB) インスタンスを作成し、そのインスタンスにHTTPまたはHTTPSリスナーを追加した場合、リスナーポートをWeb Application Firewall (WAF) に追加して、ポート上のトラフィックをWAFにリダイレクトできます。 このトピックでは、レイヤー7 CLBインスタンスのWAF保護を有効にする方法について説明します。
背景情報
同じリージョンにデプロイされている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). 前述の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によってフィルタリングされません。
インスタンスに関連付けられているパブリックIPアドレスを変更します。
トラフィックリダイレクトポートに関連付けられている証明書を、Certificate Management Service (Original SSL Certificate) を使用しないで購入した証明書に置き換えます。
相互認証を有効にします。
インスタンスを削除するか、インスタンスからリスナーポートを削除します。
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
クラウドプロダクトアクセスタブをクリックします。CLB(HTTP/HTTPS)左側のクラウドサービスリストに表示されます。
クリック追加.
今すぐ許可する をクリックして、WAFインスタンスにCLBへのアクセスを許可します。
Alibaba Cloudは、AliyunServiceRoleForWAFサービスにリンクされたロールを自動的に作成します。 サービスにリンクされたロールを表示するには、Resource Access Management (RAM) コンソールにログインし、左側のナビゲーションウィンドウで を選択します。
説明WAFインスタンスがすでにCLBへのアクセスを許可されている場合は、この手順をスキップします。
[インスタンス-レイヤー7 CLBインスタンスの設定] パネルで、パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
API 操作
インスタンスとポートの選択
インスタンスの同期
WAFに追加するインスタンスがインスタンスリストにない場合は、インスタンスの同期 をクリックしてインスタンスリストを更新します。
ポートの追加
WAFに追加するインスタンスを見つけて、操作 列の ポートの追加 をクリックします。
追加するHTTPまたはHTTPSポートを選択し、OK をクリックします。
重要HTTPSポートを追加する場合は、ポートに設定されている証明書がAlibaba Cloud certificate Management Serviceを使用して購入されているか、Certificate Management Serviceにアップロードされていることを確認してください。 そうしないと、インスタンスがWAFに追加されない可能性があります。 詳細については、「」をご参照ください。トラフィックのリダイレクトにHTTPSポートを追加したときに、証明書が不完全であることを示すエラーメッセージが表示された場合はどうすればよいですか。
インスタンスのポート用に設定された証明書の有効期限が切れているか、CLBコンソールに手動でアップロードされた場合、証明書をWAFに同期できません。 証明書を、証明書管理サービスを使用して購入した、または証明書管理サービスにアップロードした新しい証明書に置き換える必要があります。
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 の取得方法 パラメーターを設定する必要があります。
リソースグループ
CLBインスタンスを追加するリソースグループを選択します。 リソースグループを選択しない場合、インスタンスはデフォルトリソースグループに追加されます。
説明リソース管理を使用して、リソースグループを作成し、Alibaba Cloudアカウント内のリソースを部門またはプロジェクトごとに管理できます。 詳細については、「リソースグループの作成」をご参照ください。
詳細設定
WAFに追加するインスタンスを選択し、OK.
CLBインスタンスをWAFに追加すると、CLBインスタンスは自動的にWAFの保護対象オブジェクトになります。 保護されたオブジェクトの名前は、インスタンスID-ポート-アセット型の形式です。 保護対象オブジェクトに対して基本保護ルールが自動的に有効になります。 保護されたオブジェクトの保護ルールは、保護対象 ページで設定できます。 [保護オブジェクト] ページに移動するには、[Webサイト設定] ページの [クラウドネイティブ] タブで、WAFに追加したCLBインスタンスのIDをクリックします。 詳細については、「保護設定の概要」をご参照ください。
WAF保護の管理
WAFコンソールでのWAF保護の管理
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
WAF保護の管理
[クラウドネイティブ] タブで、左側のクラウドサービスリストで [CLB(HTTP/HTTPS)] をクリックします。 その後、WAFに追加されたCLBインスタンスを表示できます。
保護されたオブジェクトの表示と保護ルールの設定
CLBインスタンスをWAFに追加すると、インスタンスは自動的にWAFの保護対象オブジェクトになります。 保護されたオブジェクトの名前に -clb7サフィックスが含まれ、保護されたオブジェクトに対して基本的な保護ルールが自動的に有効になります。 [保護オブジェクト] ページで、保護オブジェクトの保護ルールを表示および設定できます。 [保護オブジェクト] ページに移動するには、[Webサイト設定] ページの [クラウドネイティブ] タブでインスタンスIDをクリックします。 詳細については、「保護設定の概要」をご参照ください。
オリジンサーバーの表示とWAFからのCLBインスタンスの削除
WAFにCLBインスタンスを追加した後、緊急ディザスタリカバリシナリオでは、オリジンサーバーの保護の詳細を表示し、トラフィックのリダイレクトを無効にしたり、トラフィックのリダイレクションポートを削除したりできます。
インスタンス名の左側にあるアイコンをクリックし、WAFに追加されたポートを表示します。
ポートの詳細の表示: ポート詳細をクリックしてポート、プロトコル、証明書に関する情報を表示し、レイヤー7プロキシ (Anti-DDoS Pro、Anti-DDoS Premium、Alibaba Cloud CDNなど) をWAFの前面にデプロイするかどうか、トラフィックマークの有効化 (詳細設定) 、Back-to-originキープアライブリクエスト (詳細設定) パラメーター。
トラフィックのリダイレクトポートの削除: WAFから削除するポートを見つけて、[操作] 列の [削除] をクリックします。 [削除] メッセージで、[OK] をクリックします。
重要トラフィックリダイレクトポートを削除すると、そのポートのトラフィックはWAFによって保護されなくなります。 ポートをWAFに再追加するには、[追加] をクリックします。 詳細については、「トラフィック転送ポートの追加」をご参照ください。
トラフィック転送ポートにバインドされているSSL証明書を更新する
トラフィックリダイレクトポートにバインドされているSSL証明書の有効期限が近づいている場合、または証明書が取り消された場合など、証明書が変更された場合は、証明書を更新する必要があります。
証明書の残りの有効期間が30日未満の場合、アイコンがドメイン名リストに表示されます。 これは、証明書の有効期限が近づいていることを示します。 この場合、できるだけ早い機会に証明書を更新する必要があります。
証明書の有効期限が近づいたときに電子メールやテキストメッセージなどの方法で通知を受信する場合は、証明書の通知を設定できます。 詳細については、「SSL証明書の通知の設定」をご参照ください。
証明書の有効期限によるサービスの中断を防ぐには、証明書管理サービスの証明書ホスティング機能を有効にします。 証明書に対してこの機能を有効にすると、システムは自動的に ホストされた証明書の有効期限が近づいたときの新しい証明書。 詳細については、「証明書ホスティング機能の概要」をご参照ください。
リダイレクションポートにバインドされているSSL証明書を更新するには、次の手順を実行します。
証明書を更新するか、証明書管理サービスに証明書をアップロードします。 詳細については、「証明書の更新」または「SSL証明書のアップロード」をご参照ください。
SSL証明書をレイヤー7 CLBインスタンスに同期します。
Certificate Management Serviceコンソールで、SSL証明書をレイヤー7 CLBインスタンスにデプロイします。 詳細については、「Alibaba Cloudサービスへの証明書のデプロイ」をご参照ください。
Server Load Balancerコンソールで、SSL証明書を更新します。 詳細については、「証明書の置き換え」をご参照ください。
CLBコンソールで証明書を置き換えると、証明書は自動的にWAFに同期されます。 certificate Management Serviceコンソールで証明書を更新するには、WAFコンソールで次の手順を実行します。
アクセス管理 ページの クラウドプロダクトアクセス タブで、左側のクラウドサービスリストで [CLB(HTTP/HTTPS)] をクリックします。 次に、追加 をクリックします。
[インスタンスの設定-レイヤー7 CLBインスタンス] パネルで、インスタンスの同期 をクリックして、更新された証明書を同期します。
トラフィックリダイレクトポートにバインドされている新しい証明書がサードパーティ証明書の場合、トラフィックリダイレクトポートはWAFから自動的に削除されます。 証明書を置き換えた後、ポートをWAFに再追加します。 詳細については、「トラフィック転送ポートの追加」をご参照ください。
証明書の有効期限が切れた場合、証明書をWAFに同期できません。 期限切れの証明書を削除する必要があります。
CLBコンソールでのWAF保護の管理
よくある質問
レイヤ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証明書のアップロード」をご参照ください。
関連ドキュメント
クライアントの送信元IPアドレスを取得する方法については、「レイヤー7リスナーを有効にしてクライアントIPアドレスを保持する」をご参照ください。
CLBまたはECSインスタンスがWebサイト設定ページに表示されない問題のトラブルシューティング方法については、[Webサイト設定] ページでWAFに追加するCLBまたはECSインスタンスが見つからないのはなぜですか。