

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

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

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

# でコンポーネントをリクエストする AWS WAF
<a name="waf-rule-statement-fields-list"></a>

このセクションでは、検査のために指定できるウェブリクエストのコンポーネントについて説明します。ウェブリクエスト内のパターンを検索する一致ルールステートメントのリクエストコンポーネントを指定します。これらのステートメントのタイプには、文字列一致、正規表現一致、サイズ制約、SQL インジェクション攻撃などのステートメントがあります。リクエストコンポーネント設定の使用方法については、「[での一致ルールステートメントの使用 AWS WAF](waf-rule-statements-match.md)」で個々のルールステートメントを参照してください。

特に明記されていない限り、ウェブリクエストにルールステートメントで指定されたリクエストコンポーネントがない場合、 AWS WAF はリクエストをルール条件に一致しないものとして評価します。

**注記**  
リクエストコンポーネントは、それを必要とするルールステートメントごとに 1 つずつ指定します。リクエストの複数のコンポーネントを検査するには、コンポーネントごとにルールステートメントを作成します。

 AWS WAF コンソールと API のドキュメントには、次の場所のリクエストコンポーネント設定に関するガイダンスが記載されています。
+ コンソールの**ルールビルダー** – 通常のルールタイプの **[Statement]** (ステートメント) 設定で、**[Request components]** (コンポーネントをリクエスト) の下の **[Inspect]** (検査) ダイアログで検査するコンポーネントを選択します。
+ **API ステートメントのコンテンツ** – `FieldToMatch`

このセクションの残りの部分では、ウェブリクエストの検査対象部分のオプションについて説明します。

**Topics**
+ [HTTP メソッド](#waf-rule-statement-request-component-http-method)
+ [単一ヘッダー](#waf-rule-statement-request-component-single-header)
+ [すべてのヘッダー](#waf-rule-statement-request-component-headers)
+ [ヘッダーの順序](#waf-rule-statement-request-component-header-order)
+ [cookie](#waf-rule-statement-request-component-cookies)
+ [URI フラグメント](#waf-rule-statement-request-component-uri-fragment)
+ [URI パス](#waf-rule-statement-request-component-uri-path)
+ [JA3 フィンガープリント](#waf-rule-statement-request-component-ja3-fingerprint)
+ [JA4 フィンガープリント](#waf-rule-statement-request-component-ja4-fingerprint)
+ [クエリ文字列](#waf-rule-statement-request-component-query-string)
+ [Single query parameter (単一クエリパラメータ)](#waf-rule-statement-request-component-single-query-param)
+ [All query parameters (すべてのクエリパラメータ)](#waf-rule-statement-request-component-all-query-params)
+ [[Body] (本文)](#waf-rule-statement-request-component-body)
+ [JSON 本文](#waf-rule-statement-request-component-json-body)

## HTTP メソッド
<a name="waf-rule-statement-request-component-http-method"></a>

リクエストの HTTP メソッドが検査されます。HTTP メソッドは、ウェブリクエストが保護対象リソースに対して実行を求めている操作のタイプ (`POST` または `GET` など) を示しています。

## 単一ヘッダー
<a name="waf-rule-statement-request-component-single-header"></a>

リクエスト内の単一の名前付きヘッダーが検査されます。

このオプションでは、`User-Agent` や `Referer` などのヘッダー名を指定します。名前の文字列一致では大文字と小文字は区別されず、リクエストヘッダーとルールの両方から先頭と末尾のスペースをトリミングした後に実行されます。

## すべてのヘッダー
<a name="waf-rule-statement-request-component-headers"></a>

すべてのリクエストヘッダー (cookie を含む) を検査します。フィルターを適用して、すべてのヘッダーのサブセットを検査できます。

このオプションでは、次の仕様を指定します。
+ **一致パターン** – inspection のヘッダーのサブセットを取得するために使用するフィルター。 は、ヘッダーキーでこれらのパターン AWS WAF を探します。

  一致パターン設定は、次のいずれかになります。
  + **[All]** (すべて) – すべてのキーに一致します。すべてのヘッダーのルール検査基準を評価します。
  + **[Excluded headers]** (除外されるヘッダー) – ここで指定した文字列のいずれとも一致しないキーを持つヘッダーのみを検査します。キーと一致する文字列は大文字と小文字に区別されません。一致は、リクエストヘッダーと一致ルールから先頭と末尾のスペースをトリミングした後に実行されます。
  + **[Included headers]** (含まれるヘッダー) – ここで指定した文字列のいずれかに一致するキーを持つヘッダーのみを検査します。キーと一致する文字列は大文字と小文字に区別されません。一致は、リクエストヘッダーと一致ルールから先頭と末尾のスペースをトリミングした後に実行されます。
+ **一致範囲** – がルール検査基準で検査 AWS WAF する必要があるヘッダーの部分。**[キー]**、**[値]**、または **[すべて]** を指定して、キーと値の両方で一致するものがあるかどうかを検査することができます。

  **[すべて]** では、キーで一致するもの、および値で一致するものを見つける必要はありません。キー、値、またはその両方で一致するものを見つける必要があります。キーと値で一致するものを見つけるようにするには、論理 `AND` ステートメントを使用して、キーを検査する一致ルールと値を検査する一致ルールの 2 つを組み合わせます。
+ **オーバーサイズ処理** – AWS WAF が検査 AWS WAF できるよりも大きいヘッダーデータを持つリクエストを処理する方法。 は、リクエストヘッダーの最初の 8 KB (8,192 バイト) まで、および最初の 200 個のヘッダーまで検査 AWS WAF できます。コンテンツは、最初の制限に達する AWS WAF まで検査できます。検査を続行するか、検査をスキップするかを選択できます。検査をスキップする場合、リクエストがルールに一致するとマークするか一致しないとマークするかを選択できます。オーバーサイズコンテンツの処理の詳細については、「[でのウェブリクエストコンポーネントのオーバーサイズ化 AWS WAF](waf-oversize-request-components.md)」を参照してください。

## ヘッダーの順序
<a name="waf-rule-statement-request-component-header-order"></a>

が検査のために AWS WAF 受け取るウェブリクエストに表示される順序で、リクエストのヘッダー名のリストを含む文字列を検査します。 AWS WAF は文字列を生成し、それを検査のコンポーネントと一致するフィールドとして使用します。 は、文字列内のヘッダー名をコロンで AWS WAF 区切り、スペースを追加しません。例: `host:user-agent:accept:authorization:referer`。

このオプションでは、次の仕様を指定します。
+ **オーバーサイズ処理** – AWS WAF が検査 AWS WAF できる数以上のヘッダーデータを持つリクエストを処理する方法。 は、リクエストヘッダーの最初の 8 KB (8,192 バイト) まで、および最初の 200 ヘッダーまでを検査 AWS WAF できます。コンテンツは、最初の制限に達する AWS WAF まで検査できます。使用可能なヘッダーの検査を続行するか、検査をスキップするかを選択できます。検査をスキップする場合、リクエストがルールに一致するか一致しないかをマークします。オーバーサイズコンテンツの処理の詳細については、「[でのウェブリクエストコンポーネントのオーバーサイズ化 AWS WAF](waf-oversize-request-components.md)」を参照してください。

## cookie
<a name="waf-rule-statement-request-component-cookies"></a>

すべてのリクエスト cookie を検査します。フィルターを適用して、すべての cookie のサブセットを検査できます。

このオプションでは、次の仕様を指定します。
+ **[Match patterns]** (一致パターン) – 検査用の cookie のサブセットを取得するために使用するフィルター。 AWS WAF は、cookie キーでこれらのパターンを検索します。

  一致パターン設定は、次のいずれかになります。
  + **[All]** (すべて) – すべてのキーに一致します。すべての cookie のルール検査基準を評価します。
  + **[Excluded cookies]** (除外される cookie) – ここで指定した文字列のいずれとも一致しないキーを持つ cookie のみを検査します。キーの文字列一致は大文字と小文字が区別され、完全に一致する必要があります。
  + **[Included cookies]** (含まれる cookie) – ここで指定した文字列のいずれかに一致するキーを持つ cookie のみを検査します。キーの文字列一致は大文字と小文字が区別され、完全に一致する必要があります。
+ **一致範囲** – がルール検査基準で検査 AWS WAF する必要がある Cookie の一部。キーと値の両方に、**[Keys]** (キー)、**[Values]** (値)、または **[All]** (すべて) を指定できます。

  **[すべて]** では、キーで一致するもの、および値で一致するものを見つける必要はありません。キー、値、またはその両方で一致するものを見つける必要があります。キーと値で一致するものを見つけるようにするには、論理 `AND` ステートメントを使用して、キーを検査する一致ルールと値を検査する一致ルールの 2 つを組み合わせます。
+ **オーバーサイズ処理** – AWS WAF が検査 AWS WAF できるよりも大きい Cookie データを持つリクエストを処理する方法。 は、リクエスト Cookie の最初の 8 KB (8,192 バイト) まで、および最初の 200 個の Cookie まで検査 AWS WAF できます。コンテンツは、最初の制限に達する AWS WAF まで検査できます。検査を続行するか、検査をスキップするかを選択できます。検査をスキップする場合、リクエストがルールに一致するとマークするか一致しないとマークするかを選択できます。オーバーサイズコンテンツの処理の詳細については、「[でのウェブリクエストコンポーネントのオーバーサイズ化 AWS WAF](waf-oversize-request-components.md)」を参照してください。

## URI フラグメント
<a name="waf-rule-statement-request-component-uri-fragment"></a>

**注記**  
フラグメント検査は、CloudFront ディストリビューションと Application Load Balancer でのみ利用可能です。

「\$1」記号の後に続く URL の一部を検査し、\$1section2 など、リソースに関する追加情報を提供します。詳細については、「[Uniform Resource Identifier (URI): 一般的な構文](https://tools.ietf.org/html/rfc3986#section-3)」を参照してください。

このオプションでテキスト変換を使用しない場合、 AWS WAF は URI フラグメントを正規化せず、リクエストでクライアントから受信したとおりに検査します。テキスト変換については、「[でのテキスト変換の使用 AWS WAF](waf-rule-statement-transformation.md)」を参照してください。

**ルールステートメントの要件**  
このルールステートメントにはフォールバック動作を指定する必要があります。フォールバック動作は、URI にフラグメントがないか、関連するサービスが Application Load Balancer または CloudFront でない場合にウェブリクエスト AWS WAF に割り当てる一致ステータスです。一致を選択した場合、 はリクエストをルールステートメントに一致するものとして AWS WAF 処理し、ルールアクションをリクエストに適用します。一致しないことを選択した場合、 はリクエストをルールステートメントと一致しないものとして AWS WAF 扱います。

## URI パス
<a name="waf-rule-statement-request-component-uri-path"></a>

URL 内でリソースを識別する部分 (`/images/daily-ad.jpg` など) が検査されます。詳細については、「[Uniform Resource Identifier (URI): 一般的な構文](https://tools.ietf.org/html/rfc3986#section-3)」を参照してください。

このオプションでテキスト変換を使用しない場合、 AWS WAF は URI を正規化せず、リクエストでクライアントから受信したとおりに検査します。テキスト変換については、「[でのテキスト変換の使用 AWS WAF](waf-rule-statement-transformation.md)」を参照してください。

## JA3 フィンガープリント
<a name="waf-rule-statement-request-component-ja3-fingerprint"></a>

リクエストの JA3 フィンガープリントを検査します。

**注記**  
JA3 フィンガープリント検査は、Amazon CloudFront ディストリビューションと Application Load Balancer でのみ利用可能です。

JA3 フィンガープリントは、受信リクエストの TLS Client Hello から生成される 32 文字のハッシュです。このフィンガープリントは、クライアントの TLS 設定の一意の識別子として機能します。 AWS WAF は、計算に十分な TLS Client Hello 情報を持つリクエストごとに、このフィンガープリントを計算してログに記録します。この情報は、ほとんどすべてのウェブリクエストに含まれています。

**クライアントの JA3 フィンガープリントを取得する方法**  
クライアントリクエストの JA3 フィンガープリントは、保護パック (ウェブ ACL) ログからを取得できます。 AWS WAF がフィンガープリントを計算できる場合は、それをログに含めます。フィールドのログ記録については、「[保護パック (ウェブ ACL) トラフィックのログフィールド](logging-fields.md)」を参照してください。

**ルールステートメントの要件**  
JA3 フィンガープリントは、指定した文字列と完全に一致するように設定されている文字列一致ステートメント内のみで検査することができます。同じ TLS 設定を持つ将来のリクエストと一致させるために、文字列一致ステートメントの仕様のログから JA3 フィンガープリント文字列を指定します。文字列一致ルールステートメントの詳細については、「[文字列一致ルールステートメント](waf-rule-statement-type-string-match.md)」を参照してください。

このルールステートメントにはフォールバック動作を指定する必要があります。フォールバック動作は、 が JA3 フィンガープリントを計算できない場合にウェブリクエスト AWS WAF AWS WAF に割り当てる一致ステータスです。一致を選択した場合、 AWS WAF はリクエストをルールステートメントに一致するものとして処理し、ルールアクションをリクエストに適用します。一致しないことを選択した場合、 はリクエストをルールステートメントと一致しないものとして AWS WAF 扱います。

この一致オプションを使用するには、保護パック (ウェブ ACL) トラフィックをログに記録する必要があります。詳細については、「[ログ記録 AWS WAF 保護パック (ウェブ ACL) トラフィック](logging.md)」を参照してください。

## JA4 フィンガープリント
<a name="waf-rule-statement-request-component-ja4-fingerprint"></a>

リクエストの JA4 フィンガープリントを検査します。

**注記**  
JA4 フィンガープリント検査は、Amazon CloudFront ディストリビューションと Application Load Balancer でのみ使用できます。

JA4 フィンガープリントは、受信リクエストの TLS Client Hello から派生した 36 文字のハッシュです。このフィンガープリントは、クライアントの TLS 設定の一意の識別子として機能します。JA4 フィンガープリントは JA3 フィンガープリントの拡張機能であり、一部のブラウザでは一意のフィンガープリントが少なくなります。 AWS WAF は、計算に十分な TLS Client Hello 情報を持つリクエストごとにこのフィンガープリントを計算してログに記録します。この情報は、ほとんどすべてのウェブリクエストに含まれています。

**クライアントの JA4 フィンガープリントを取得する方法**  
クライアントリクエストの JA4 フィンガープリントは、保護パック (ウェブ ACL) ログからを取得できます。 AWS WAF がフィンガープリントを計算できる場合は、それをログに含めます。フィールドのログ記録については、「[保護パック (ウェブ ACL) トラフィックのログフィールド](logging-fields.md)」を参照してください。

**ルールステートメントの要件**  
JA4 フィンガープリントは、指定した文字列と完全に一致するように設定された文字列一致ステートメント内でのみ検査できます。同じ TLS 設定を持つ将来のリクエストと一致するように、文字列一致ステートメント仕様のログから JA4 フィンガープリント文字列を指定します。文字列一致ルールステートメントの詳細については、「[文字列一致ルールステートメント](waf-rule-statement-type-string-match.md)」を参照してください。

このルールステートメントにはフォールバック動作を指定する必要があります。フォールバック動作は、 が JA4 フィンガープリントを計算できない場合にウェブリクエスト AWS WAF AWS WAF に割り当てる一致ステータスです。一致を選択した場合、 AWS WAF はリクエストをルールステートメントに一致するものとして処理し、ルールアクションをリクエストに適用します。一致しないことを選択した場合、 はリクエストをルールステートメントと一致しないものとして AWS WAF 扱います。

この一致オプションを使用するには、保護パック (ウェブ ACL) トラフィックをログに記録する必要があります。詳細については、「[ログ記録 AWS WAF 保護パック (ウェブ ACL) トラフィック](logging.md)」を参照してください。

## クエリ文字列
<a name="waf-rule-statement-request-component-query-string"></a>

URL 内で `?` 文字の後に続く部分 (ある場合) が検査されます。

**注記**  
クロスサイトスクリプティングの一致ステートメントについては、**[Query string]** (クエリ文字列) ではなく、**[All query parameters]** (すべてのクエリパラメータ) を選択することをお勧めします。**[All query parameters]** (すべてのクエリパラメータ) を選択すると、基本コストに 10 WCU が追加されます。

## Single query parameter (単一クエリパラメータ)
<a name="waf-rule-statement-request-component-single-query-param"></a>

クエリ文字列の一部として定義した単一のクエリパラメータを検査します。 AWS WAF は、指定したパラメータの値を検査します。

このオプションでは、**[Query argument]** (クエリ引数) も指定します。例えば、URL が `www.xyz.com?UserName=abc&SalesRegion=seattle` である場合は、クエリ引数として `UserName` または `SalesRegion` を指定できます。引数の名前は最大 30 文字です。名前では大文字と小文字が区別されないため、`UserName` と指定すると、 AWS WAF では `UserName` のすべてのバリエーション (`username`、`UsERName` など) と一致します。

クエリ文字列に、指定したクエリ引数の複数のインスタンスが含まれている場合、 OR はロジックを使用して一致のすべての値を AWS WAF 検査します。例えば、URL `www.xyz.com?SalesRegion=boston&SalesRegion=seattle` では、 AWS WAF は、指定された名前を `boston` および `seattle` に対して評価します。いずれかが一致する場合、検査結果は一致となります。

## All query parameters (すべてのクエリパラメータ)
<a name="waf-rule-statement-request-component-all-query-params"></a>

リクエスト内のすべてのクエリパラメータが検査されます。これは単一のクエリパラメータコンポーネントの選択に似ていますが、クエリ文字列内のすべての引数の値を AWS WAF 検査します。例えば、URL が `www.xyz.com?UserName=abc&SalesRegion=seattle` である場合は、`UserName` または `SalesRegion` の値が検査基準に一致すると、 AWS WAF は一致をトリガーします。

このオプションを選択すると、基本コストに 10 WCU が追加されます。

## [Body] (本文)
<a name="waf-rule-statement-request-component-body"></a>

プレーンテキストとして評価されて、リクエストボディが検査されます。また、JSON コンテンツタイプを使用して、本文を JSON として評価することもできます。

リクエストボディは、リクエストの一部で、リクエストヘッダーの直後に続く部分です。これには、フォームからのデータなど、ウェブリクエストに必要な追加データが含まれます。
+ コンソールで、**[Content type]** (コンテンツタイプ) の **[Plain text]** (プレーンテキスト) を選択して、**[Request option]** (リクエストオプション) の **[Body]** (本文) でこれを選択します。
+ API では、ルールの `FieldToMatch` の指定で、リクエストボディをプレーンテキストとして検査するように `Body` を指定します。

Application Load Balancer および の場合 AWS AppSync、 はリクエストの本文の最初の 8 KB を検査 AWS WAF できます。CloudFront、API Gateway、Amazon Cognito、App Runner、Verified Access では、デフォルトで最初の 16 KB を検査 AWS WAF でき、保護パック (ウェブ ACL) 設定で制限を最大 64 KB まで増やすことができます。詳細については、「[でのボディ検査の管理に関する考慮事項 AWS WAF](web-acl-setting-body-inspection-limit.md)」を参照してください。

このコンポーネントタイプには、オーバーサイズの処理を指定する必要があります。オーバーサイズ処理は、 が検査 AWS WAF できるよりも大きい本文データを持つリクエストを が AWS WAF 処理する方法を定義します。検査を続行するか、検査をスキップするかを選択できます。検査をスキップする場合、リクエストがルールに一致するとマークするか一致しないとマークするかを選択できます。オーバーサイズコンテンツの処理の詳細については、「[でのウェブリクエストコンポーネントのオーバーサイズ化 AWS WAF](waf-oversize-request-components.md)」を参照してください。

本文を解析された JSON として評価することもできます。これに関する詳細については、次のセクションを参照してください。

## JSON 本文
<a name="waf-rule-statement-request-component-json-body"></a>

JSON として評価されて、リクエストボディが検査されます。本文をプレーンテキストとして評価することもできます。

リクエストボディは、リクエストの一部で、リクエストヘッダーの直後に続く部分です。これには、フォームからのデータなど、ウェブリクエストに必要な追加データが含まれます。
+ コンソールで、**[Content type]** (コンテンツタイプ) の **[JSON]** を選択して、**[Request option]** (リクエストオプション) の **[Body]** (本文) でこれを選択します。
+ API で、ルールの `FieldToMatch` の指定で `JsonBody` を指定します。

Application Load Balancer および の場合 AWS AppSync、 はリクエストの本文の最初の 8 KB を検査 AWS WAF できます。CloudFront、API Gateway、Amazon Cognito、App Runner、Verified Access では、デフォルトで最初の 16 KB を検査 AWS WAF でき、保護パック (ウェブ ACL) 設定で制限を最大 64 KB まで増やすことができます。詳細については、「[でのボディ検査の管理に関する考慮事項 AWS WAF](web-acl-setting-body-inspection-limit.md)」を参照してください。

このコンポーネントタイプには、オーバーサイズの処理を指定する必要があります。オーバーサイズ処理は、 が検査 AWS WAF できるよりも大きい本文データを持つリクエストを が AWS WAF 処理する方法を定義します。検査を続行するか、検査をスキップするかを選択できます。検査をスキップする場合、リクエストがルールに一致するとマークするか一致しないとマークするかを選択できます。オーバーサイズコンテンツの処理の詳細については、「[でのウェブリクエストコンポーネントのオーバーサイズ化 AWS WAF](waf-oversize-request-components.md)」を参照してください。

このオプションを選択すると、一致ステートメントの基本コスト WCU が 2 倍になります。例えば、一致ステートメントのベースコストが JSON 解析なしで 5 WCU の場合、JSON 解析を使用すると、コストが 10 WCU に倍増します。

このオプションでは、以下のセクションで説明されている通り追加の仕様を提供します。

**が JSON 本文検査 AWS WAF を処理する方法**  
は、ウェブリクエスト本文を JSON として AWS WAF 検査する場合、本文を解析し、検査用に JSON 要素を抽出するステップを実行します。 は、設定の選択に従ってこれらのステップ AWS WAF を実行します。

が AWS WAF 実行するステップを以下に示します。

1. **本文の内容を解析する** – は、検査用に JSON 要素を抽出するためにウェブリクエスト本文の内容を AWS WAF 解析します。 は本文のコンテンツ全体を解析するために最善を AWS WAF 尽くしますが、コンテンツのさまざまなエラー状態で解析が失敗する可能性があります。例としては、無効な文字、重複するキー、切り捨て、ルートノードがオブジェクトまたは配列ではないコンテンツなどがあります。

   オプションの**本文解析フォールバック動作**によって AWS WAF 、JSON 本文を完全に解析できなかった場合の動作が決まります。
   + **None (デフォルトの動作)** - 解析エラーが発生した時点までのみコンテンツ AWS WAF を評価します。
   + **文字列として評価** - 本文をプレーンテキストとして検査します。 は、JSON 検査用に定義したテキスト変換と検査基準を本文テキスト文字列 AWS WAF に適用します。
   + **一致** - ウェブリクエストをルールステートメントに一致するものとして扱います。 はルールアクションをリクエスト AWS WAF に適用します。
   + **一致なし** - ウェブリクエストをルールステートメントと一致しないものとして処理します。
**注記**  
このフォールバック動作は、JSON 文字列の解析中に でエラー AWS WAF が発生した場合にのみトリガーされます。

**解析では JSON が完全に検証されません**  
AWS WAF 解析では入力 JSON 文字列が完全に検証されないため、無効な JSON であっても解析が成功する可能性があります。

   たとえば、 はエラーなしで次の無効な JSON を AWS WAF 解析します。
   + カンマ不足: `{"key1":"value1""key2":"value2"}`
   + コロン不足: `{"key1":"value1","key2""value2"}`
   + 余分なコロン: `{"key1"::"value1","key2""value2"}`

   このように、解析は成功したものの結果が完全に有効な JSON ではない場合、評価の後続のステップの結果が異なることがあります。抽出で一部の要素が欠落したり、ルール評価で予期しない結果が出たりする可能性があります。アプリケーションで受信した JSON を検証し、必要に応じて無効な JSON を処理することをお勧めします。

1. **JSON 要素を抽出** – 設定に従って検査する JSON 要素のサブセット AWS WAF を識別します。
   + オプション **JSON 一致スコープ**は、 が検査 AWS WAF する JSON 内の要素のタイプを指定します。

     キーと値の両方に、**[Keys]** (キー)、**[Values]** (値)、または **[All]** (すべて) を指定できます。

     **[すべて]** では、キーで一致するもの、および値で一致するものを見つける必要はありません。キー、値、またはその両方で一致するものを見つける必要があります。キーと値で一致するものを見つけるようにするには、論理 `AND` ステートメントを使用して、キーを検査する一致ルールと値を検査する一致ルールの 2 つを組み合わせます。
   + **検査するコンテンツ**オプションは、 AWS WAF 検査するサブセットに設定された要素をフィルタリングする方法を指定します。

     いずれかを指定する必要があります。
     + **[完全な JSON コンテンツ]** – すべての要素を評価します。
     + **[含まれる要素のみ]** – パスが提供された JSON ポインタの基準に一致する要素のみを評価します。このオプションで JSON 内のすべてのパスを表示しないでください。**代わりに **[完全な JSON コンテンツ]** を使用してください。

       JSON ポインタ構文の詳細については、インターネットエンジニアリングタスクフォース (IETF) ドキュメントの「[JavaScript オブジェクト表記 (JSON) ポインタ](https://tools.ietf.org/html/rfc6901)」を参照してください。

       例えば、コンソールで次の内容を指定できます。

       ```
       /dogs/0/name
       /dogs/1/name
       ```

       API または CLI では、次を指定できます。

       ```
       "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
       ```

   例えば、**[検査するコンテンツ]** 設定が **[含まれる要素のみ]** で、含まれている要素設定が `/a/b` であるとします。

   たとえば、次の JSON ボディの例の場合: 

   ```
   { 
     "a":{
       "c":"d",
       "b":{
         "e":{
           "f":"g"
         }
       }
     }
   }
   ```

   が各 **JSON 一致スコープ**設定を検査 AWS WAF する要素セットを以下に示します。含まれている要素のパスの一部であるキー `b` は評価されないことを注意してください。
   + **すべて**: `e`、`f,` および `g`。
   + **キー **: `e` および `f`。
   + **値**: `g`。

1. **JSON 要素セットの検査** – 抽出された JSON 要素に指定したテキスト変換 AWS WAF を適用し、結果の要素セットをルールステートメントの一致基準と照合します。これは、他のウェブリクエストコンポーネントに対するものと同じ変換および評価の動作です。抽出された JSON 要素のいずれかが一致する場合、そのウェブリクエストはルールに一致します。