翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ノンブロッキングアクションのカスタムリクエストヘッダーの挿入
このセクションでは、 に指示する方法について説明します。 AWS WAF ルールアクションがHTTPリクエストをブロックしない場合に、元のリクエストにカスタムヘッダーを挿入する。このオプションでは、リクエストにのみ追加します。元のリクエストの一部を変更したり、置き換えたりすることはできません。カスタムヘッダー挿入のユースケースには、挿入されたヘッダーに基づいてリクエストを異なる方法で処理するようにダウンストリームアプリケーションに通知し、分析のためにリクエストのフラグを立てることが含まれます。
このオプションはルールアクションに適用されます。Allow, Count, CAPTCHA および Challenge と を に設定されているウェブACLデフォルトアクションに Allow。 ルールアクションの詳細については、「」を参照してくださいでのルールアクションの使用 AWS WAF。デフォルトのウェブACLアクションの詳細については、「」を参照してくださいでのウェブACLデフォルトアクションの設定 AWS WAF。
カスタムリクエストヘッダー名
AWS WAF は、既にリクエストに含まれているヘッダーとの混同を避けるためx-amzn-waf-
、 で挿入するすべてのリクエストヘッダーをプレフィックスします。例えば、ヘッダー名 を指定するとsample
、 AWS WAF はヘッダー を挿入しますx-amzn-waf-sample
。
同じ名前のヘッダー
リクエストに既に と同じ名前のヘッダーがある場合 AWS WAF が挿入中、 AWS WAF は ヘッダーを上書きします。したがって、同じ名前の複数のルールでヘッダーを定義すると、リクエストを検査して一致を見つける最後のルールにはヘッダーが追加され、それよりも前のルールには追加されません。
終了しないルールアクションを含むカスタムヘッダー
とは異なり Allow アクション、Count アクションが停止しない AWS WAF は、ウェブ の残りのルールを使用してウェブリクエストを処理することから開始しますACL。同様に、CAPTCHA また、Challenge はリクエストトークンが有効であると判断し、これらのアクションは停止しません。 AWS WAF はウェブリクエストを処理します。したがって、これらのアクションを使用するルールでカスタムヘッダーを挿入する場合、後続のルールもカスタムヘッダーを挿入することがあります。ルールアクションの動作については、「でのルールアクションの使用 AWS WAF」を参照してください。
例えば、表示された順序で優先順位付けされた次のルールがあるとします。
-
を使用した RuleA Count アクションと という名前のカスタマイズされたヘッダー
RuleAHeader
。 -
を使用した RuleB Allow アクションと という名前のカスタマイズされたヘッダー
RuleBHeader
。
リクエストが RuleA と RuleB の両方に一致する場合、 AWS WAF はヘッダーx-amzn-waf-RuleAHeader
と を挿入しx-amzn-waf-RuleBHeader
、保護されたリソースにリクエストを転送します。
AWS WAF は、リクエストの検査が完了すると、カスタムヘッダーをウェブリクエストに挿入します。したがって、 アクションが に設定されているルールでカスタムリクエスト処理を使用する場合 Count追加したカスタムヘッダーは、後続のルールでは検査されません。
カスタムリクエスト処理の例
ルールのアクションまたはウェブのACLデフォルトアクションに対してカスタムリクエスト処理を定義します。次のリストは、ウェブ JSONのデフォルトアクションに追加されたカスタム処理の を示していますACL。
{ "Name": "SampleWebACL", "Scope": "REGIONAL", "DefaultAction": { "Allow": { "CustomRequestHandling": { "InsertHeaders": [ { "Name": "fruit", "Value": "watermelon" }, { "Name": "pie", "Value": "apple" } ] } } }, "Description": "Sample web ACL with custom request handling configured for default action.", "Rules": [], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "SampleWebACL" } }