パブリックに公開されている Application Load Balancer (ALB) インスタンスを Web 攻撃から保護するには、Web Application Firewall (WAF) 3.0 保護を有効にします。これにより、既存のネットワークアーキテクチャや DNS 構成を変更することなく、アプリケーションに低レイテンシーで高可用性 (HA) の Web セキュリティを提供します。
仕組み
ALB インスタンスに対して WAF 3.0 保護を有効にすると、WAF 3.0 は、埋め込み SDK を使用して、セキュリティ検出機能を ALB データプレーンに直接統合します。サービス トラフィックが ALB インスタンスに到達すると、SDK は転送パスでリアルタイムのトラフィック分析と脅威検出を実行します。SDK は悪意のあるリクエストを自動的にブロックし、有効なリクエストをバックエンドサーバーに転送します。
前提条件
アカウント要件: マルチアカウント管理を構成している場合を除き、ALB インスタンスと WAF インスタンスは同じ Alibaba Cloud アカウントに属している必要があります。
リージョン要件:
エリア
リージョン
中国
中国 (成都)、中国 (青島)、中国 (北京)、中国 (広州)、中国 (杭州)、中国 (ウランチャブ)、中国 (上海)、中国 (深圳)、中国 (張家口)、中国 (香港)
アジア太平洋
フィリピン (マニラ)、インドネシア (ジャカルタ)、日本 (東京)、マレーシア (クアラルンプール)、シンガポール、タイ (バンコク)、韓国 (ソウル)
ヨーロッパおよびアメリカ
ドイツ (フランクフルト)、米国 (シリコンバレー)、米国 (バージニア)、メキシコ
中東
SAU (リヤド - パートナーリージョン)
お使いの ALB インスタンスがこれらの要件を満たしていない場合は、代わりに CNAME レコードモード を使用してください。
手順
WAF コンソールに移動します。
WAF 3.0 コンソールにログインします。上部のナビゲーションバーで、WAF インスタンスのリソースグループとリージョン (中国本土 または 中国本土以外) を選択します。左側のナビゲーションウィンドウで、アクセス管理 をクリックします。クラウドプロダクトアクセス タブをクリックし、左側のクラウドサービスのリストから Application Load Balancer (ALB) をクリックします。
クラウドサービスを承認します (初回ユーザーのみ)。
画面の指示に従い、今すぐ許可する をクリックしてクラウドサービスの承認を完了します。RAM コンソールの ページで、AliyunServiceRoleForWAF サービスにリンクされたロールを表示できます。
ALB インスタンスを追加します。
右側のリストで、WAF に追加する ALB インスタンスを見つけ、[操作] 列の Add Now をクリックします。ターゲットインスタンスが見つからない場合は、右上隅の 資産の同期 をクリックします。
ステータスが 全部保護 と表示されたら、インスタンスは正常に追加されています。
重要ALB インスタンスが WAF に追加されると、自動的に WAF 対応エディションにアップグレードされます。これにより、ALB 側で 追加料金 が発生します。
説明複数の ALB インスタンスをバッチで追加したり、一括接続 をクリックしてすべてのインスタンスを一度に追加したりすることもできます。
保護を検証します。
保護を検証するには、ブラウザで Web サイトのドメインに続けて Web 攻撃文字列を入力します (例:
<your-website-domain>/alert(xss)、ここでalert(xss)はサンプルのクロスサイトスクリプティング攻撃です)。WAF が 405 エラーページを返した場合、攻撃を正常にインターセプトし、保護がアクティブになっています。
次のステップ
保護ルールの表示と構成
ALB インスタンスの WAF 保護を有効にすると、WAF は自動的に -alb サフィックスを持つ保護オブジェクトを作成し、コア保護モジュールのルールなど、デフォルトの保護ルールを有効にします。これは ページで表示できます。デフォルトの保護ルールが要件を満たさない場合は、保護ルールを作成または編集します。詳細については、「保護設定の概要」をご参照ください。
複数のドメインが同じ ALB インスタンスに解決され、それぞれに異なる保護ルールを設定したい場合は、ドメインを保護オブジェクトとして手動で追加してください。

その他の操作
ALB インスタンスの WAF 保護の無効化/削除
WAF 保護を一時的に無効にする: 統合後に多数の誤検知などの問題が発生した場合は、WAF 保護を一時的に無効にする必要がある場合があります。これを行うには、WAF コンソールの [保護対象] ページに移動し、WAF 保護ステータス スイッチをオフにします。詳細については、「ワンクリックで WAF 保護を無効にする」をご参照ください。
保護の削除: ALB インスタンスの保護に WAF を使用しなくなった場合は、クラウドプロダクトアクセス タブに移動し、左側のクラウドサービスリストから Application Load Balancer (ALB) をクリックし、ターゲットインスタンスを見つけて、[操作] 列の [削除] をクリックします。表示されるダイアログボックスで、[OK] をクリックします。
重要保護を削除すると、ALB インスタンスへのトラフィックは WAF で保護されなくなり、セキュリティレポートにはそのトラフィックのデータが含まれなくなります。
WAF インスタンスが従量課金の課金方法を使用している場合、ALB インスタンスを削除した後はリクエスト処理の料金は請求されません。ただし、WAF インスタンスとその保護ルールは残っているため、機能使用料は引き続き請求されます。WAF の使用を停止し、すべての WAF 課金を停止したい場合は、「WAF サービスを終了する」をご参照ください。
ALB コンソールでの WAF 保護の有効化と管理
このトピックで説明した方法に加えて、ALB コンソールで ALB インスタンスの WAF 保護を有効にすることもできます。詳細については、次のトピックをご参照ください。
ALB コンソールでインスタンスの WAF 保護を有効にするには、「ALB コンソールで WAF 保護を有効にする」をご参照ください。
ALB コンソールで WAF 対応インスタンスを管理するには、「ALB コンソールで WAF 保護を管理する」をご参照ください。
API 操作を使用して ALB インスタンスのエディションを変更するには、「UpdateLoadBalancerEdition」をご参照ください。
本番環境への適用
ALB インスタンスの WAF 保護を有効にしたり削除したりしても、サービスには影響しません。ただし、WAF 保護を有効にする場合は、ログとサービスの正常性を監視して、サービスの可用性を確保する必要があります。
段階的な展開: ベストプラクティスとして、まずオフピーク時に非本番環境の ALB インスタンスを追加します。インスタンスを一定期間実行し、サービスが安定していることを確認した後、本番環境の ALB インスタンスを統合します。
サービス監視: 統合が完了したら、次の方法を使用してサービスが正常に機能していることを確認します。
メンテナンス: 攻撃と誤検知に細心の注意を払いながら、継続的な運用とメンテナンスを実行します。
イベントのレビュー: セキュリティレポートを監視し、Cloud Monitor 通知を構成して、攻撃やセキュリティイベントに関する情報を常に把握します。
ルールの調整: 攻撃ログを確認して、WAF が有効なビジネスリクエストを誤ってブロックしていないかを分析し、それに応じて保護ルールを最適化します。
制限事項
ID 検証: WAF 対応の ALB インスタンスを購入する前に、ID 検証を完了する必要があります。
インスタンスのステータス:
実行中状態の Basic および Standard の ALB インスタンスのみが WAF 対応エディションにアップグレードできます。
Container Service for Kubernetes (ACK) の ALB インスタンスで WAF 保護を有効にするには、「WAF 対応 ALB インスタンスを使用してアプリケーションを保護する」をご参照ください。
統合インスタンス数: 統合インスタンス数は、WAF インスタンスの仕様の上限を超えることはできません。
サブスクリプション: Basic Edition は最大 300、Pro Edition は最大 600、Enterprise Edition は最大 2,500、Ultimate Edition は最大 10,000。
従量課金: 最大 10,000。
サポートされていない機能: データ漏洩防止、およびボット管理のアンチクローラーシナリオにおける自動 Web SDK 統合。
よくある質問
追加したい ALB インスタンスが見つからないのはなぜですか?
まず、アクセス管理 ページの右上隅にある 資産の同期 をクリックします。
それでもインスタンスが見つからない場合は、前提条件を満たしていません。たとえば、中国本土以外のリージョンにある ALB インスタンスには、クラウドネイティブ統合のために中国本土以外のリージョンにある WAF インスタンスが必要であるか、CNAME レコードモードを使用する必要があります。

1 つのドメイン名が複数の ALB インスタンスに解決される場合、WAF 保護を追加するにはどうすればよいですか?
クラウドネイティブモードを使用する: これらすべての ALB インスタンスを WAF に追加して保護する必要があります。
CNAME レコードモードを使用する: CNAME レコードモードでドメインを追加し、複数の ALB インスタンスの CNAME をオリジンアドレスとして構成します。
複数のドメイン名が同じ ALB インスタンスに解決される場合、WAF 保護を追加するにはどうすればよいですか?
クラウドネイティブモードを使用する: ALB インスタンスを追加すると、インスタンス上のすべてのドメイン名がデフォルトの WAF 保護ポリシーによって保護されます。ただし、ドメインごとに異なる保護ルールを構成する場合は、ドメインを保護オブジェクトとして手動で追加する必要があります。詳細については、「保護オブジェクトを手動で追加する」をご参照ください。
CNAME レコードモードを使用する: 各ドメインを 1 つずつ追加します。
ALB インスタンス上のドメインにクラウドネイティブモードと CNAME レコードモードの両方を使用できますか?
両方のモードを使用すると転送の競合や保護の失敗が発生するため、これは推奨されません。CNAME レコードモードですでに追加されているドメインがあり、クラウドネイティブモードに切り替えたい場合は、まず DNS レコードをオリジンに戻し、DNS の変更が伝播するのを待ってから、ドメインの CNAME レコードモードの構成を削除し、その後、クラウドネイティブモードを使用して対応する ALB インスタンスを追加する必要があります。
WAF 2.0 と WAF 3.0 が ALB インスタンスと統合する方法の違いは何ですか?
WAF 3.0 SDK 統合: WAF 3.0 は SDK ベースの統合を使用します。SDK は ALB インスタンスに埋め込まれ、トラフィックの抽出、検出、保護を担当します。WAF はトラフィックを転送しないため、この統合により、余分なホップの待機時間や追加の転送レイヤーの互換性の問題が回避されます。リクエストは 1 つのゲートウェイのみを通過するため、WAF が ALB インスタンスから証明書と暗号化スイートの構成を同期する必要がなくなります。これにより、証明書や構成のドリフトなどの問題が防止されます。
WAF 2.0 透明プロキシ: WAF 2.0 は透明プロキシ方式を使用します。トラフィックリダイレクトポートを構成することにより、クラウドサービスゲートウェイは自動的にルートを変更して Web トラフィックを WAF に誘導します。WAF は攻撃トラフィックをブロックし、通常のリクエストをオリジンに転送し、トラフィック転送とセキュリティ検出の両方に関与します。リクエストは 2 つのゲートウェイを通過する必要があり、WAF とロードバランサーの両方でタイムアウトや証明書などの構成を維持する必要があります。
詳細については、「WAF 3.0 と WAF 2.0 の比較」をご参照ください。