

**の新しいコンソールエクスペリエンスの紹介 AWS WAF**

更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、[「コンソールの使用](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)」を参照してください。

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

# Block アクションのカスタムレスポンスの送信
<a name="customizing-the-response-for-blocked-requests"></a>

このセクションでは、 に設定されたルールアクションまたは保護パック (ウェブ ACL) のデフォルトアクションのためにカスタム HTTP レスポンスをクライアントに送信する AWS WAF ように に指示する方法について説明しますBlock。ルールアクションの詳細については、「[でのルールアクションの使用 AWS WAF](waf-rule-action.md)」を参照してください。デフォルトの保護パック (ウェブ ACL) アクションの詳細については、「[で保護パック (ウェブ ACL) のデフォルトアクションを設定する AWS WAF](web-acl-default-action.md)」を参照してください。

Block アクションのカスタムレスポンス処理を定義すると、ステータスコード、ヘッダー、レスポンス本文を定義します。で使用できるステータスコードのリストについては AWS WAF、次のセクション「」を参照してください[カスタムレスポンスでサポートされるステータスコード](customizing-the-response-status-codes.md)。

**ユースケース**  
カスタムレスポンスのユースケースには、次が含まれます。
+ 非デフォルトのステータスコードをクライアントに送り返します。
+ カスタムレスポンスヘッダーをクライアントに送り返します。`content-type` を除き、任意のヘッダー名を指定できます。
+ 静的エラーページをクライアントに送り返します。
+ クライアントを別の URL にリダイレクトします。これを行うには、`301 (Moved Permanently)` または `302 (Found)` などの `3xx` リダイレクトステータスコードのいずれかを指定してから、新しい URL で `Location` という名前が付けられた新しいヘッダーを指定します。

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

で保護する AWS リソースのホストサービスは、ウェブリクエストのカスタムレスポンス処理を許可する AWS WAF 場合があります。次に例を示します。
+ Amazon CloudFront を使用して、ステータスコードに基づいてエラーページをカスタマイズできます。カスタムエラーページの詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[カスタムエラーレスポンスの生成](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html)」を参照してください。
+ Amazon API Gateway では、ゲートウェイのレスポンスおよびステータスコードを定義できます。詳細については、「*Amazon API Gateway デベロッパーガイド*」の「[API Gateway でのゲートウェイレスポンス](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-gatewayResponse-definition.html)」を参照してください。

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

が AWS WAF ブロックするウェブリクエストの場合、優先順位を次に示します。

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

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

1. **AWS WAF デフォルトBlockレスポンス** – それ以外の場合、保護されたリソースは AWS WAF デフォルトのレスポンス でクライアントにBlock応答します`403 (Forbidden)`。

が AWS WAF 許可するウェブリクエストの場合、保護されたリソースの設定によって、クライアントに返送するレスポンスが決まります。許可されたリクエスト AWS WAF に対して でレスポンス設定を構成することはできません。許可されたリクエスト AWS WAF に対して で設定できる唯一のカスタマイズは、リクエストを保護されたリソースに転送する前に、元のリクエストにカスタムヘッダーを挿入することです。このオプションについては、前のセクション「[ノンブロッキングアクションのためのカスタムリクエストヘッダーの挿入](customizing-the-incoming-request.md)」で説明しました。

**カスタムレスポンスヘッダー**  
`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
 }
}
```