

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

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

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

# AWS WAF CAPTCHA および Challenge ルールアクションの仕組み
<a name="waf-captcha-and-challenge-how-it-works"></a>

このセクションでは、CAPTCHA と Challenge の仕組みについて説明します。

AWS WAF CAPTCHA と Challengeは標準のルールアクションであるため、実装は比較的簡単です。どちらかを使用するには、検査するリクエストを識別するルールの検査基準を作成し、2 つのルールアクションのうち 1 つを指定します。ルールアクションのオプションの一般的な情報については、「[でのルールアクションの使用 AWS WAF](waf-rule-action.md)」を参照してください。

サーバー側からサイレントチャレンジと CAPTCHA パズルを実装するだけでなく、サイレントチャレンジを JavaScript ならびに iOS および Android のクライアントアプリケーションに統合したり、JavaScript クライアントで CAPTCHA パズルをレンダリングしたりできます。これらの統合を使用すると、エンドユーザーがより良いパフォーマンスと CAPTCHA パズルエクスペリエンスを享受できるだけでなく、ルールアクションやインテリジェントな脅威の軽減を目的としたルールグループの使用に関連するコストを削減できます。これらのパラメータの詳細については「[でのクライアントアプリケーション統合 AWS WAF](waf-application-integration.md)」を参照してください。料金に関する情報については、[[AWS WAF の料金](https://aws.amazon.com/waf/pricing/)]を参照してください。

**Topics**
+ [CAPTCHA および Challenge アクション動作](waf-captcha-and-challenge-actions.md)
+ [ログとメトリクスの CAPTCHA および Challenge アクション](waf-captcha-and-challenge-logs-metrics.md)

# CAPTCHA および Challenge アクション動作
<a name="waf-captcha-and-challenge-actions"></a>

このセクションでは、CAPTCHA および Challenge アクションの役割について説明します。

ウェブリクエストが CAPTCHAまたは Challengeアクションでルールの検査基準に一致すると、 はトークンの状態とイミュニティ時間設定に従ってリクエストを処理する方法 AWS WAF を決定します。 は、リクエストが CAPTCHA パズルまたはチャレンジスクリプトインタースティシャルを処理できるかどうか AWS WAF も考慮します。スクリプトは HTML コンテンツとして処理されるように設計されており、HTML コンテンツを想定しているクライアントによってのみ適切に処理されることが可能です。

**注記**  
CAPTCHA または Challenge ルールアクションを 1 つのルールで使用、あるいはルールグループでルールアクションのオーバーライドとして使用すると、追加料金が請求されます。詳細については、「[AWS WAF 料金](https://aws.amazon.com/waf/pricing/)」を参照してください。

**アクションがウェブリクエストを処理する方法**  
AWS WAF は、次のように CAPTCHAまたは Challengeアクションをウェブリクエストに適用します。
+ **有効なトークン** – アクションと同様にこれ AWS WAF を処理します。 は、ルールCountアクション用に設定したラベルとリクエストのカスタマイズ AWS WAF を適用し、保護パック (ウェブ ACL) の残りのルールを使用してリクエストの評価を続行します。
+ **トークンの欠落、無効、または期限切れ** — リクエストの保護パック (ウェブ ACL) の評価 AWS WAF を中止し、意図した送信先への送信をブロックします。

  AWS WAF は、ルールアクションタイプに従って、クライアントに返されるレスポンスを生成します。
  + **Challenge** – AWS WAF はレスポンスに次のものが含まれます。
    + 値が `challenge` のヘッダー `x-amzn-waf-action`。
**注記**  
クライアントブラウザで実行されている Javascript アプリケーションの場合、このヘッダーはアプリケーションのドメイン内でのみ使用できます。ヘッダーは、クロスドメイン取得には使用できません。詳細については、次のセクションを参照してください。
    + HTTP ステータスコード `202 Request Accepted`。
    + 値が `text/html` の `Accept` ヘッダーがリクエストに含まれている場合、応答にはチャレンジスクリプトを備えた JavaScript ページインタースティシャルが含まれます。
  + **CAPTCHA** – レスポンスに以下 AWS WAF を含めます。
    + 値が `captcha` のヘッダー `x-amzn-waf-action`。
**注記**  
クライアントブラウザで実行されている Javascript アプリケーションの場合、このヘッダーはアプリケーションのドメイン内でのみ使用できます。ヘッダーは、クロスドメイン取得には使用できません。詳細については、次のセクションを参照してください。
    + HTTP ステータスコード `405 Method Not Allowed`。
    + `text/html` の値の `Accept` ヘッダーがリクエストに含まれている場合、応答には CAPTCHA スクリプトを使った JavaScript ページのインタースティシャルが含まれます。

保護パック (ウェブ ACL) またはルールレベルでトークンの有効期限が切れるタイミングを設定するには、「[でのタイムスタンプの有効期限とトークンイミュニティ時間の設定 AWS WAF](waf-tokens-immunity-times.md)」を参照してください。

**ヘッダーは、クライアントブラウザで実行される JavaScript アプリケーションでは使用できません**  
が CAPTCHA またはチャレンジ AWS WAF レスポンスでクライアントリクエストに応答する場合、Cross-Origin Resource Sharing (CORS) ヘッダーは含まれません。CORS ヘッダーは、JavaScript アプリケーションがどのドメイン、HTTP メソッド、および HTTP ヘッダーを使用できるかをクライアントウェブブラウザに指示する一連のアクセスコントロールヘッダーです。CORS ヘッダーがないと、クライアントブラウザで実行されている JavaScript アプリケーションには HTTP ヘッダーへのアクセスが許可されないため、CAPTCHA および Challenge 応答で提供される `x-amzn-waf-action` ヘッダーを読み取ることができません。

**チャレンジと CAPTCHA インタースティシャルの機能**  
チャレンジインタースティシャルが実行されると、クライアントが応答に成功した後、まだトークンがない場合、インタースティシャルがトークンを初期化します。その後、チャレンジ解決のタイムスタンプでトークンを更新します。

CAPTCHA インタースティシャルを実行するとき、クライアントがまだトークンを持っていない場合、CAPTCHA インタースティシャルはまずチャレンジスクリプトを呼び出し、ブラウザにチャレンジしてトークンを初期化します。その後、インタースティシャルは CAPTCHA パズルを実行します。エンドユーザーがパズルの完成に成功すると、インタースティシャルはトークンを CAPTCHA 解決のタイムスタンプで更新します。

いずれの場合も、クライアントが応答に成功してスクリプトがトークンを更新した後、スクリプトは更新されたトークンを使用して元のウェブリクエストを再送信します。

がトークン AWS WAF を処理する方法を設定できます。詳細については、「[AWS WAF インテリジェントな脅威の軽減におけるトークンの使用](waf-tokens.md)」を参照してください。

# ログとメトリクスの CAPTCHA および Challenge アクション
<a name="waf-captcha-and-challenge-logs-metrics"></a>

このセクションでは、 が CAPTCHAおよび Challengeアクションのログ記録とメトリクス AWS WAF を処理する方法について説明します。

Challenge および CAPTCHA アクションは、Count のように終了しない場合もあれば、Block のように終了する場合もあります。結果は、リクエストがアクションタイプの有効期限が切れていない有効なトークンがあるかどうかによって異なります。
+ **有効なトークン** – アクションが有効なトークンを見つけてリクエストをブロックしない場合、 はメトリクスとログを次のように AWS WAF キャプチャします。
  + `CaptchaRequests` および `RequestsWithValidCaptchaToken` または `ChallengeRequests` および `RequestsWithValidChallengeToken` のいずれかのメトリクスを増分します。
  + CAPTCHA または Challenge のアクションで `nonTerminatingMatchingRules` エントリとして一致をログに記録します。次のリストは、CAPTCHA アクションを使ったこの一致タイプにおけるログのセクションを示しています。

    ```
        "nonTerminatingMatchingRules": [
        {
          "ruleId": "captcha-rule",
          "action": "CAPTCHA",
          "ruleMatchDetails": [],
          "captchaResponse": {
            "responseCode": 0,
            "solveTimestamp": 1632420429
          }
        }
      ]
    ```
+ **トークンの欠落、無効、または期限切れ** – アクションがトークンの欠落または無効なためにリクエストをブロックすると、 はメトリクスとログを次のように AWS WAF キャプチャします。
  + `CaptchaRequests` または `ChallengeRequests` のメトリクスを増分させます。
  + 一致を HTTP `405` ステータスコードを含む `CaptchaResponse` エントリ、あるいは HTTP `202` ステータスコードを含む `ChallengeResponse` エントリとしてログ記録します。ログは、リクエストにトークンが不足しているか、トークンの有効期限が切れているか示します。ログには、 がクライアントに CAPTCHA インタースティシャルページを送信したか、クライアントブラウザにサイレントチャレンジ AWS WAF を送信したかも示されます。次のリストは、CAPTCHA アクションを含むこのタイプの一致におけるログのセクションを示しています。

    ```
        "terminatingRuleId": "captcha-rule",
        "terminatingRuleType": "REGULAR",
        "action": "CAPTCHA",
        "terminatingRuleMatchDetails": [],
        ...
        "responseCodeSent": 405,
        ...
        "captchaResponse": {
          "responseCode": 405,
          "solveTimestamp": 0,
          "failureReason": "TOKEN_MISSING"
        }
    ```

 AWS WAF ログの詳細については、「」を参照してください[ログ記録 AWS WAF 保護パック (ウェブ ACL) トラフィック](logging.md)。

 AWS WAF メトリクスの詳細については、「」を参照してください[AWS WAF メトリクスとディメンション](waf-metrics.md)。

ルールアクションのオプションの一般的な情報については、「[でのルールアクションの使用 AWS WAF](waf-rule-action.md)」を参照してください。

**トークンのないリクエストは、ログとメトリクスに 2 回表示されるように見える**  
このセクションで説明されている [CAPTCHA および Challenge アクション動作](waf-captcha-and-challenge-actions.md)、ログ記録とメトリクスに基づいて、トークンのないリクエストは通常、ログとメトリクスに 2 回表示されます。これは、意図した 1 つのリクエストが実際にクライアントによって 2 回送信されるためです。
+ トークンのない最初のリクエストは、欠落、無効、または期限切れのトークンについて、上記のログ記録とメトリクス処理を受け取ります。CAPTCHA または Challenge アクションはこの最初のリクエストを終了し、サイレントチャレンジまたは CAPTCHA パズルのいずれかでクライアントに応答します。
+ クライアントはチャレンジまたはパズルを評価し、クライアントブラウザまたはエンドユーザーが正常に応答すると、新しく取得したトークンを使用してリクエストを再度送信します。この 2 番目のリクエストは、有効なトークンを持つリクエストについて、上記のログ記録とメトリクス処理を受け取ります。　 