AWS WAF でのルールグループアクションの上書き - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

AWS WAF でのルールグループアクションの上書き

このセクションでは、ルールグループアクションを上書きする方法について説明します。

ルールグループをウェブ ACL に追加するとき、一致するウェブリクエストに対して実行されるアクションをオーバーライドできます。ウェブ ACL 設定内のルールグループのアクションをオーバーライドしても、ルールグループ自体は変更されません。AWS WAF がウェブ ACL のコンテキストでルールグループを使用する方法を変更するだけです。

ルールグループのルールアクションの上書き

ルールグループ内のルールのアクションは、任意の有効なルールアクションにオーバーライドきできます。これを実行すると、一致するリクエストは、設定されたルールのアクションがオーバーライド設定である場合とまったく同様に処理されます。

注記

ルールアクションは、終了アクションまたは非終了アクションである場合があります。終了アクションは、リクエストのウェブ ACL 評価を停止し、保護されたアプリケーションへのリクエストの継続を許可またはブロックします。

ルールアクションのオプションは以下のとおりです。

  • Allow – AWS WAF は、処理と応答のためにリクエストを保護された AWS リソースに転送されることを許可します。これは終了アクションです。定義したルールでは、リクエストを保護されたリソースに転送する前に、カスタムヘッダーを挿入できます。

  • Block – AWS WAF はリクエストをブロックします。これは終了アクションです。デフォルトでは、保護された AWS リソースは HTTP 403 (Forbidden) ステータスコードで応答します。定義したルールでは、応答をカスタマイズできます。AWS WAF がリクエストをブロックするとき、Block アクション設定は、保護されたリソースがクライアントに送り返す応答を決定します。

  • Count – AWS WAF はリクエストをカウントしますが、リクエストを許可するかブロックするかは決定しません。これは非終了アクションです。AWS WAF がウェブ ACL の残りのルールの処理を継続します。定義したルールでは、リクエストにカスタムヘッダーを挿入し、他のルールで一致するラベルを追加できます。

  • CAPTCHA および Challenge – AWS WAF は、CAPTCHA パズルおよびサイレントチャレンジを使用して、リクエストがボットから配信されたものではないことを確認し、AWS WAF トークンを使用してクライアントで最近成功した応答を追跡します。

    CAPTCHA パズルとサイレントチャレンジは、ブラウザが HTTPS エンドポイントにアクセスしている場合にのみ実行できます。トークンを取得するには、ブラウザクライアントが安全なコンテキストで実行されている必要があります。

    注記

    CAPTCHA または Challenge ルールアクションを 1 つのルールで使用、あるいはルールグループでルールアクションのオーバーライドとして使用すると、追加料金が請求されます。詳細については、AWS WAF 料金を参照してください。

    これらのルールアクションは、リクエスト内のトークンの状態に応じて、終了アクションまたは非終了アクションである場合があります。

    • 有効で期限が切れていないトークンの未終了 – 設定されている CAPTCHA またはチャレンジイミュニティ時間に従ってトークンが有効で期限切れになっていない場合、AWS WAF は Count アクションと同様にリクエストを処理します。AWS WAF は、ウェブ ACL の残りのルールに基づいてウェブリクエストの検査を継続します。Count 設定と同様に、定義したルールでは、リクエストに挿入するカスタムヘッダーを使用してこれらのアクションを設定したり (オプション)、他のルールが照合できるラベルを追加したりできます。

    • 無効または期限切れのトークンの場合、リクエストをブロックして終了する – トークンが無効、あるいは表示されたタイムスタンプの期限が切れている場合、Block アクションと同様に、AWS WAF はウェブリクエストの検査を終了してリクエストをブロックします。その後、AWS WAF はクライアントにカスタムレスポンスコードで応答します。CAPTCHA には、リクエスト内容はクライアントのブラウザが処理できることが示された場合、AWS WAF は人間のクライアントとボットを区別するように設計された JavaScript インタースティシャルで CAPTCHA パズルを送信します。Challenge アクションの場合、AWS WAF は、通常のブラウザとボットが実行するセッションを区別するように設計されたサイレントチャレンジ付きの JavaScript インタースティシャルを送信します。

    詳細については、「AWS WAF で CAPTCHA と Challenge を使用する」を参照してください。

このオプションの使用方法については、「ルールグループ内のルールアクションのオーバーライド」を参照してください。

ルールアクションを Count にオーバーライド

ルールアクションオーバーライドの最も一般的な使用例は、ルールアクションの一部またはすべてを Count にオーバーライドして、ルールグループの動作を本番稼働に移行する前にテストおよびモニタリングすることです。

これを使用して誤検出を生成しているルールグループをトラブルシューティングすることもできます。誤検出は、ブロックすると想定していないトラフィックをルールグループがブロックするときに発生します。ルールグループ内で、許可したいリクエストをブロックするルールを特定した場合、そのルールに対するこのカウントアクションのオーバーライドを保持し、リクエストに対するアクションを除外できます。

テストでルールアクションのオーバーライドを使用する詳細については、「AWS WAF 保護のテストとチューニング」を参照してください。

JSON リスト: RuleActionOverridesExcludedRules に置き換えます

2022 年 10 月 27 日より前にウェブ ACL 内の Count にルールグループのルールアクションを設定した場合、AWS WAF によってウェブ ACL JSON 内のオーバーライドを ExcludedRules として保存されています。これで、ルールを Count にオーバーライドする JSON 設定が RuleActionOverrides 設定に追加されました。

AWS WAF コンソールを使用して既存のルールグループ設定を編集すると、コンソールはオーバーライドアクションが Count に設定された状態で、JSON のすべての ExcludedRules 設定を RuleActionOverrides 設定に自動的に変換します。

  • 現在の設定例:

    "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesAdminProtectionRuleSet", "RuleActionOverrides": [ { "Name": "AdminProtection_URIPATH", "ActionToUse": { "Count": {} } } ]
  • 古い設定例:

    OLD SETTING "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesAdminProtectionRuleSet", "ExcludedRules": [ { "Name": "AdminProtection_URIPATH" } ] OLD SETTING

JSON リストですべての ExcludedRules 設定は、アクションを Count に設定した RuleActionOverrides 設定に更新することをお勧めします。API はどちらの設定も受け付けますが、新しい RuleActionOverrides 設定のみを使用した場合、コンソール作業と API 作業の間で JSON リストの一貫性が保たれます。

ルールグループの戻り値アクションを Count に上書き

ルールグループが返すアクションをオーバーライドして、Count に設定できます。

注記

これは、AWS WAF によるルールグループ自体の評価方法を変更しないため、ルールグループ内のルールをテストするための適切なオプションではありません。これは、ルールグループの評価からウェブ ACL に返される結果の AWS WAF による処理方法にのみ影響します。ルールグループ内のルールをテストする場合は、前述のセクションで説明したオプション ルールグループのルールアクションの上書き を使用します。

ルールグループアクション Count にオーバーライドすると、AWS WAF はルールグループの評価を正常に処理します。

ルールグループ内のルールが一致しない、あるいはすべての一致するルールに Count アクションがある場合、このオーバーライドはルールグループまたはウェブ ACL の処理に影響を与えません。

ウェブリクエストに一致し、かつ、終了ルールアクションを持つルールグループの最初のルールにより、AWS WAF はルールグループの評価を停止し、終了アクションの結果をウェブ ACL 評価レベルに返します。この時点で、ウェブ ACL 評価でこのオーバーライドが有効になります。AWS WAF は、ルールグループ評価の結果が Count アクションのみになるように、終了アクションをオーバーライドします。その後、AWS WAF は、ウェブ ACL の残りのルールの処理を続行します。

このオプションの使用方法については、「ルールグループの評価結果を Count にオーバーライド」を参照してください。