翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
のカスタムレスポンスの送信 Block actions
このセクションでは、 に指示する方法について説明します。 AWS WAF に設定されたルールアクションまたはウェブACLデフォルトアクションのカスタムHTTPレスポンスをクライアントに送信するには Block。 ルールアクションの詳細については、「」を参照してくださいでのルールアクションの使用 AWS WAF。デフォルトのウェブACLアクションの詳細については、「」を参照してくださいでのウェブACLデフォルトアクションの設定 AWS WAF。
のカスタムレスポンス処理を定義する場合 Block アクションでは、ステータスコード、ヘッダー、レスポンス本文を定義します。で使用できるステータスコードのリスト AWS WAF、次のセクション「」を参照してくださいカスタムレスポンスでサポートされるステータスコード。
ユースケース
カスタムレスポンスのユースケースには、次が含まれます。
-
非デフォルトのステータスコードをクライアントに送り返します。
-
カスタムレスポンスヘッダーをクライアントに送り返します。
content-type
を除き、任意のヘッダー名を指定できます。 -
静的エラーページをクライアントに送り返します。
-
クライアントを別の にリダイレクトしますURL。これを行うには、
301 (Moved Permanently)
や などの3xx
リダイレクトステータスコードのいずれかを指定し302 (Found)
、新しいLocation
で という名前の新しいヘッダーを指定しますURL。
保護されたリソースで定義したレスポンスとのインタラクション
に指定したカスタムレスポンス AWS WAF Block アクションは、保護されたリソースで定義したレスポンス仕様よりも優先されます。
のホストサービス AWS で保護する リソース AWS WAF は、ウェブリクエストのカスタムレスポンス処理を許可する場合があります。次に例を示します。
-
Amazon では CloudFront、ステータスコードに基づいてエラーページをカスタマイズできます。詳細については、「Amazon CloudFront デベロッパーガイド」の「カスタムエラーレスポンスの生成」を参照してください。
-
Amazon API Gateway では、ゲートウェイのレスポンスとステータスコードを定義できます。詳細については、「Amazon Gateway デベロッパーガイド」のAPI「ゲートウェイでのゲートウェイレスポンス」を参照してください。 API
組み合わせることはできません AWS WAF 保護された のカスタムレスポンス設定を使用したカスタムレスポンス設定 AWS リソース。個々のウェブリクエストのレスポンス仕様は、 から完全に取得されます。 AWS WAF または、保護されたリソースから完全に。
ウェブリクエストの場合 AWS WAF ブロックでは、優先順位を以下に示します。
-
AWS WAF カスタムレスポンス – の場合 AWS WAF Block アクションでカスタムレスポンスが有効になっている場合、保護されたリソースは設定されたカスタムレスポンスをクライアントに送信します。保護されたリソース自体で定義する応答設定は、効果がありません。
-
保護されたリソースで定義されているカスタムレスポンス - それ以外の場合、保護されたリソースにカスタムレスポンス設定が指定されているときは、保護されたリソースはそれらの設定を使用してクライアントに応答します。
-
AWS WAF デフォルト Block response – それ以外の場合、保護されたリソースはクライアントに で応答します。 AWS WAF デフォルト Block レスポンス
403 (Forbidden)
。
ウェブリクエストの場合 AWS WAF では、保護されたリソースの設定によって、クライアントに送り返されるレスポンスが決まります。でレスポンス設定を構成することはできません。 AWS WAF 許可されたリクエストの 。で設定できる唯一のカスタマイズ AWS WAF 許可されたリクエストの は、保護されたリソースにリクエストを転送する前に、元のリクエストにカスタムヘッダーを挿入することです。このオプションについては、前のセクション「ノンブロッキングアクションのカスタムリクエストヘッダーの挿入」で説明しました。
カスタムレスポンスヘッダー
content-type
を除き、任意のヘッダー名を指定できます。
カスタムレスポンス本文
カスタムレスポンスの本文は、使用するウェブACLまたはルールグループのコンテキスト内で定義します。カスタムレスポンス本文を定義したら、それを作成したウェブACLまたはルールグループ内の他の場所を参照して使用できます。個々の Block アクション設定では、使用するカスタム本文を参照し、カスタムレスポンスのステータスコードとヘッダーを定義します。
コンソールでカスタムレスポンスを作成するときは、既に定義したレスポンス本文から選択するか、新しい本文を作成できます。コンソールの外部では、ウェブACLまたはルールグループレベルでカスタムレスポンス本文を定義し、ウェブACLまたはルールグループ内のアクション設定からそれらを参照します。これは、次のセクションJSONの例に示されています。
カスタムレスポンスの例
次の例では、カスタムレスポンス設定JSONを持つルールグループの を一覧表示します。カスタムレスポンス本文は、ルールグループ全体のために定義され、ルールアクションでキーによって参照されます。
{ "ARN": "test_rulegroup_arn", "Capacity": 1, "CustomResponseBodies": { "CustomResponseBodyKey1": { "Content": "This is a plain text response body.", "ContentType": "TEXT_PLAIN" } }, "Description": "This is a test rule group.", "Id": "test_rulegroup_id", "Name": "TestRuleGroup", "Rules": [ { "Action": { "Block": { "CustomResponse": { "CustomResponseBodyKey": "CustomResponseBodyKey1", "ResponseCode": 404, "ResponseHeaders": [ { "Name": "BlockActionHeader1Name", "Value": "BlockActionHeader1Value" } ] } } }, "Name": "GeoMatchRule", "Priority": 1, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ] } }, "VisibilityConfig": { "CloudWatchMetricsEnabled": true, "MetricName": "TestRuleGroupReferenceMetric", "SampledRequestsEnabled": true } } ], "VisibilityConfig": { "CloudWatchMetricsEnabled": true, "MetricName": "TestRuleGroupMetric", "SampledRequestsEnabled": true } }