Block アクションのカスタムレスポンス - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Block アクションのカスタムレスポンス

に設定されているルールアクションまたはウェブ ACL デフォルトアクションについて、カスタム HTTP AWS WAF Block レスポンスをクライアントに送り返すように指示できます。ルールアクションの詳細については、「ルールアクション」を参照してください。デフォルトのウェブ ACL アクションの詳細については、「ウェブ ACL のデフォルトアクション」を参照してください。

Block アクションのカスタムレスポンス処理を定義すると、ステータスコード、ヘッダー、レスポンス本文を定義します。で使用できるステータスコードのリストについては AWS WAF、カスタムレスポンスでサポートされるステータスコード以下のセクションを参照してください。

ユースケース

カスタムレスポンスのユースケースには、次が含まれます。

  • 非デフォルトのステータスコードをクライアントに送り返します。

  • カスタムレスポンスヘッダーをクライアントに送り返します。content-type を除き、任意のヘッダー名を指定できます。

  • 静的エラーページをクライアントに送り返します。

  • クライアントを別の URL にリダイレクトします。これを行うには、301 (Moved Permanently) または 302 (Found) などの 3xx リダイレクトステータスコードのいずれかを指定してから、新しい URL で Location という名前が付けられた新しいヘッダーを指定します。

保護されたリソースで定義したレスポンスとのインタラクション

AWS WAF Blockアクションに指定するカスタムレスポンスは、保護対象リソースで定義したレスポンス仕様よりも優先されます。

AWS 保護対象のリソースのホストサービスでは、 AWS WAF ウェブリクエストのカスタムレスポンス処理が許可されている場合があります。次に例を示します。

  • Amazon では CloudFront、ステータスコードに基づいてエラーページをカスタマイズできます。詳細については、Amazon CloudFront 開発者ガイドのカスタムエラーレスポンスの生成」を参照してください。

  • Amazon API Gateway では、ゲートウェイのレスポンスおよびステータスコードを定義できます。詳細については、「Amazon API Gateway デベロッパーガイド」の「API Gateway でのゲートウェイレスポンス」を参照してください。

AWS WAF AWS 保護対象リソースのカスタムレスポンス設定とカスタムレスポンス設定を組み合わせることはできません。個々のウェブリクエストの応答の仕様は、 AWS WAF または保護されたリソースから、そのすべてが取得されます。

AWS WAF ブロックするウェブリクエストの優先順位は次のとおりです。

  1. AWS WAF カスタムレスポンス — AWS WAF Block アクションでカスタムレスポンスが有効になっている場合、保護対象リソースは設定したカスタムレスポンスをクライアントに送り返します。保護されたリソース自体で定義する応答設定は、効果がありません。

  2. 保護されたリソースで定義されているカスタムレスポンス - それ以外の場合、保護されたリソースにカスタムレスポンス設定が指定されているときは、保護されたリソースはそれらの設定を使用してクライアントに応答します。

  3. AWS WAF Blockデフォルトレスポンス — それ以外の場合、 AWS WAF Block403 (Forbidden)保護対象リソースはクライアントにデフォルトレスポンスで応答します。

Web 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 } }