Classic Load Balancer(CLB)インスタンスを作成し、そのインスタンスに HTTP または HTTPS リスナーを追加した場合は、インスタンスの Web トラフィックを保護のために WAF にリダイレクトするために、リスナーポートを Web Application Firewall(WAF) に追加します。このトピックでは、レイヤー 7 CLB インスタンスの WAF 保護を有効にする方法について説明します。
背景情報
同じリージョンにデプロイされた Elastic Compute Service(ECS)インスタンスを CLB インスタンスに追加すると、CLB は仮想 IP アドレス(VIP)を使用して ECS インスタンスを高パフォーマンス、高可用性のサーバープールに結合します。次に、CLB は転送ルールに基づいて受信リクエストを ECS インスタンスに転送します。
レイヤー 7 CLB インスタンスを WAF に追加できます。WAF 保護を有効にするには、CLB インスタンスのトラフィックリダイレクトポートを WAF に追加します。追加されると、トラフィックリダイレクトが有効になっているポートからのトラフィックは、特定のゲートウェイを介して WAF にリダイレクトされます。WAF は悪意のあるトラフィックをフィルタリングし、通常のトラフィックを CLB インスタンスに転送します。次の図は、ネットワークアーキテクチャを示しています。
制限
次の Alibaba Cloud サービスのいずれかを使用する Web サービスは、クラウドネイティブモードで WAF に追加できます。Application Load Balancer(ALB)、マイクロサービスエンジン(MSE)、Function Compute、Classic Load Balancer(CLB)、Elastic Compute Service(ECS)、および Network Load Balancer(NLB)。. 前述の Alibaba Cloud サービスを使用していない Web サービスを WAF で保護する場合は、Web サービスのドメイン名を CNAME レコードモードで 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 インスタンスが作成され、CLB インスタンスに HTTP または HTTPS リスナーが追加されていること。また、インスタンスは上記の要件を満たしていること。要件の詳細については、このトピックの「制限」セクションを参照してください。HTTP または HTTPS リスナーを追加する方法の詳細については、「HTTP リスナーを追加する」または「HTTPS リスナーを追加する」をご参照ください。
サブスクリプション WAF インスタンスを使用している場合は、WAF に追加された保護対象の数が上限を超えていないことを確認してください。数が上限を超えている場合は、クラウドサービスインスタンスを WAF に追加しないでください。
WAF に追加できる保護対象の数を表示するには、保護対象ページ にアクセスします。
トラフィックリダイレクトポートを追加する
WAF にインスタンスを追加すると、Web サービスが数秒間中断される場合があります。クライアントが自動的に再接続できる場合、Web サービスは自動的に再開されます。ビジネス要件に基づいて、再接続メカニズムとオリジン復帰設定を構成します。
[レイヤー 7 CLB] インスタンスを WAF に追加した後に次の操作を実行すると、トラフィックリダイレクトポートは WAF から自動的に削除されます。ポートを WAF に再度追加しないと、ポート上のトラフィックは WAF によってフィルタリングされません。
インスタンスに関連付けられているパブリック IP アドレスを変更する。
トラフィックリダイレクトポートに関連付けられている証明書を、Certificate Management Service (Original SSL Certificate) を使用して発行されていない証明書に置き換える。
相互認証を有効にする。
インスタンスからリスナーポートを削除する。
インスタンスを削除する。
WAF 3.0 コンソール にログインします。上部のナビゲーションバーで、WAF インスタンスのリソースグループとリージョンを選択します。中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、アクセス管理 をクリックします。
[クラウドネイティブ] タブで、左側のクラウドサービスリストの [CLB(HTTP/HTTPS)] をクリックします。
認証ページで、今すぐ許可する をクリックして、必要なクラウドサービスにアクセスするための WAF インスタンスを認証します。
Alibaba Cloud は、AliyunServiceRoleForWAF サービスロールを自動的に作成します。サービスロールを表示するには、Resource Access Management(RAM)コンソール にログインし、左側のナビゲーションウィンドウで を選択します。
説明認証が完了すると、認証ページは表示されません。次の手順に進むことができます。
[追加] をクリックします。
[インスタンスの設定 - レイヤー 7 CLB インスタンス] パネルで、パラメータを構成します。次の表でパラメータについて説明します。
パラメータ
操作
インスタンスとポートの選択
資産の同期
WAF に追加するインスタンスがインスタンスリストにない場合は、資産の同期 をクリックしてインスタンスリストを更新します。
ポートの追加
WAF に追加するインスタンスを見つけ、操作 列の ポートの追加 をクリックします。
追加する HTTP または HTTPS ポートを選択し、OK をクリックします。
重要HTTPS ポートを追加する場合は、ポートに構成されている証明書が Alibaba Cloud Certificate Management Service を使用して購入されているか、Certificate Management Service にアップロードされていることを確認してください。そうでない場合、インスタンスを WAF に追加できない可能性があります。詳細については、「CLB インスタンスの HTTPS リスナーポートを WAF に追加すると、インスタンスに必要な証明書が不完全であるというメッセージが表示されます。どうすればよいですか?」をご参照ください。
インスタンスのポートに構成されている証明書の有効期限が切れているか、CLB コンソールで手動でアップロードされた場合、証明書を WAF に同期できません。証明書を、Certificate Management Service を使用して購入した新しい証明書、または Certificate Management Service にアップロードされた新しい証明書に置き換える必要があります。
[WAF の前に Anti-DDoS Pro、Anti-DDoS Premium、または Alibaba Cloud CDN などのレイヤー 7 プロキシがデプロイされているかどうか]
Anti-DDoS Proxy や Alibaba Cloud CDN などのレイヤー 7 プロキシが WAF の前にデプロイされているかどうかを指定します。
デフォルトでは、No が選択されています。この値は、WAF がクライアントから送信されたリクエストを受信することを指定します。リクエストはプロキシによって転送されません。
説明リクエストがクライアントから WAF に送信されると、WAF は WAF への接続の確立に使用された IP アドレスをクライアントの IP アドレスとして使用します。IP アドレスは、リクエストの
REMOTE_ADDR
フィールドで指定されます。レイヤー 7 プロキシが WAF の前にデプロイされている場合は、Yes を選択します。この値は、WAF がレイヤー 7 プロキシによって WAF に転送されたリクエストを受信することを指定します。WAF がセキュリティ分析のためにクライアントの実際の IP アドレスを取得できるようにするには、クライアント IP の取得方法 パラメータを構成する必要があります。
リソースグループ
CLB インスタンスを追加するリソースグループを選択します。リソースグループを選択しないと、インスタンスは [デフォルトのリソースグループ] に追加されます。
説明リソース管理を使用して、Alibaba Cloud アカウント内で部門またはプロジェクト別にリソースグループを作成し、リソースを管理できます。詳細については、「リソースグループを作成する」をご参照ください。
詳細設定
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 インスタンスを削除します。
CLB インスタンスを WAF に追加した後、オリジンサーバーの保護の詳細を表示し、緊急ディザスタリカバリシナリオでトラフィックリダイレクトを無効にするか、トラフィックリダイレクトポートを削除できます。
インスタンス名の左側にある
アイコンをクリックして、WAF に追加されたポートを表示します。
ポートの詳細を表示: ポート詳細 をクリックして、ポート、プロトコル、および証明書に関する情報を表示し、[WAF の前に Anti-DDoS Pro、Anti-DDoS Premium、または Alibaba Cloud CDN などのレイヤー 7 プロキシがデプロイされているかどうか]、[トラフィックマークを有効にする] (詳細設定)、および [オリジン復帰キープアライブリクエスト] (詳細設定) パラメータを構成します。
トラフィックリダイレクトポートを削除: WAF から削除するポートを見つけ、[アクション] 列の [削除] をクリックします。[削除] メッセージで、[OK] をクリックします。
重要WAF からトラフィックリダイレクトポートを削除すると、Web サービスが数秒間中断される場合があります。クライアントが自動的に再接続できる場合、Web サービスは自動的に再開されます。ビジネス要件に基づいて、再接続メカニズムとオリジン復帰設定を構成します。
WAF からトラフィックリダイレクトポートを削除すると、ポート上のトラフィックは WAF によって保護されなくなります。トラフィックリダイレクトポートを WAF に再度追加するには、[追加] をクリックします。詳細については、「トラフィックリダイレクトポートを追加する」をご参照ください。
トラフィックリダイレクトポートに関連付けられている証明書を更新する
トラフィックリダイレクトポートに関連付けられている証明書の有効期限が切れそうになっている場合、または証明書が変更された場合(証明書が失効した場合など)、証明書を更新する必要があります。
証明書の残りの有効期間が 30 日未満の場合、ドメイン名リストに
アイコンが表示されます。これは、証明書の有効期限が切れそうになっていることを示しています。この場合、できるだけ早く証明書を更新する必要があります。
証明書の有効期限が切れそうになったときにメールやショートメッセージなどの方法で通知を受信するには、証明書の通知を構成します。
証明書の有効期限切れによるサービス中断を防ぐには、Certificate Management Service の 証明書ホスティング機能 を有効にします。証明書に対してこの機能を有効にすると、ホストされている証明書の有効期限が切れそうになったときに、システムが自動的に新しい証明書を申請 します。
次の手順を実行します。
証明書を更新するか、Certificate Management Service に証明書をアップロードします。詳細については、「公式 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 保護を管理する
手動インストール
WAF 保護がレイヤー 7 CLB インスタンスで有効になっているかどうかを確認するにはどうすればよいですか?
ブラウザのアドレスバーに、WAF に追加された ALB インスタンスのエンドポイントを入力します。エンドポイントにアクセスできる場合、インスタンスは WAF によって保護されています。
xxx.xxxx.com?id=1 and 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 ポートを追加できます。
レイヤー 7 CLB インスタンスの WAF 保護を有効にするときに、「ポート番号が 443 の CLB 証明書が不完全です。SLB コンソールに移動し、証明書管理サービスから証明書を選択してください。」というエラーメッセージが表示された場合はどうすればよいですか?
[証明書管理サービス コンソール] にログインして証明書を更新またはアップロードし、CLB コンソールで証明書を選択する必要があります。詳細については、「公式 SSL 証明書を更新する」または「SSL 証明書をアップロードする」をご参照ください。
JavaScript で REST API を使用する
複数のドメイン名が同じ CLB インスタンスに解決され、追加後にこれらのドメインの保護ルールを個別に設定する場合は、「保護対象オブジェクトとしてドメインを手動で追加する」をご参照ください。
クライアントの送信元 IP アドレスを取得する方法の詳細については、「レイヤー 7 リスナーを有効にしてクライアント IP アドレスを保持し、バックエンドサーバーに渡す」をご参照ください。
CLB または ECS インスタンスが Web サイト設定ページに表示されない問題のトラブルシューティング方法の詳細については、「Web サイト設定ページで WAF に追加する CLB または ECS インスタンスが見つからないのはなぜですか?」をご参照ください。