

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

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

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

# CAPTCHA および Challengeの AWS WAF
<a name="waf-captcha-and-challenge"></a>

このセクションでは、 CAPTCHA と Challengeの操作方法について説明します AWS WAF。

 AWS WAF ルールの検査基準に一致するウェブリクエストに対して CAPTCHAまたは Challengeアクションを実行するようにルールを設定できます。また、CAPTCHA パズルやブラウザチャレンジをローカルで実行するように JavaScript クライアントアプリケーションをプログラムすることもできます。

CAPTCHA パズルとサイレントチャレンジは、ブラウザが HTTPS エンドポイントにアクセスしている場合にのみ実行できます。トークンを取得するには、ブラウザクライアントが安全なコンテキストで実行されている必要があります。
+ **CAPTCHA** – エンドユーザーが CAPTCHA パズルを解いて、人間がリクエストを送信していることを証明する必要があります。CAPTCHA パズルは、人間にとっては非常に簡単かつ短時間で完了に成功できる一方、コンピュータにとっては完了に成功、あるいは有意義な成功率でランダムに完了させることを困難にすることを意図しています。

  保護パック (ウェブ ACL) ルールでは、Block アクションが正当なリクエストを多く止めてしまう場合によく CAPTCHA が使用されますが、すべてのトラフィックを許可すると、ボットなどからの望ましくないリクエストが非常に多くなる可能性があります。ルールアクションの動作については、[AWS WAF CAPTCHA および Challenge ルールアクションの仕組み](waf-captcha-and-challenge-how-it-works.md) を参照してください。

  クライアントアプリケーション統合 API で CAPTCHA パズルの実装をプログラムすることもできます。パズルをクライアントアプリケーションにプログラムするときに、クライアントアプリケーションでパズルの動作と配置をカスタマイズできます。詳細については、「[でのクライアントアプリケーション統合 AWS WAF](waf-application-integration.md)」を参照してください。
+ **Challenge** – サイレントチャレンジを実行して、クライアントセッションがボットではなく、ブラウザであることを検証する必要があります。検証は、エンドユーザーの関与なしでバックグラウンドで実行されます。これは、CAPTCHA パズルでエンドユーザーのエクスペリエンスに悪影響を与えることなく、無効だと思われるクライアントを検証する場合に適したオプションです。ルールアクションの動作については、[AWS WAF CAPTCHA および Challenge ルールアクションの仕組み](waf-captcha-and-challenge-how-it-works.md) を参照してください。

  Challenge ルールアクションは、「[でのクライアントアプリケーション統合 AWS WAF](waf-application-integration.md)」で説明されている、インテリジェントな脅威に対応したクライアント統合 API が実行するチャレンジと似ています。

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

すべてのルールアクションオプションの説明については、[でのルールアクションの使用 AWS WAF](waf-rule-action.md) を参照してください。

**Topics**
+ [AWS WAF CAPTCHA パズル](waf-captcha-puzzle.md)
+ [AWS WAF CAPTCHA および Challenge ルールアクションの仕組み](waf-captcha-and-challenge-how-it-works.md)
+ [CAPTCHA および Challenge アクションを使用するベストプラクティス](waf-captcha-and-challenge-best-practices.md)

# AWS WAF CAPTCHA パズル
<a name="waf-captcha-puzzle"></a>

このセクションでは、 AWS WAF CAPTCHA パズルの特徴と機能について説明します。

AWS WAF は、ユーザーが人間であることを確認するように要求する標準の CAPTCHA 機能を提供します。CAPTCHA は、「Completely Automated Public Turing test to tell Computers and Humans Apart」(コンピューターと人間を区別する完全自動公開チューリングテスト) の略です。CAPTCHA パズルは、人間がリクエストを送信していることを検証し、ウェブスクレイピング、クレデンシャルスタッフィング、スパムなどのアクティビティを防ぐように設計されます。CAPTCHA パズルは望ましくないリクエストをすべて排除することはできません。機械学習と人工知能を駆使することによって多くの CAPTCHA パズルが解決されました。CAPTCHA を回避するため、一部の組織は人間が介入した自動化技術で補完しています。それにもかかわらず、CAPTCHA は洗練度の低いボットトラフィックを防ぎ、大規模な運営に必要なリソースを増やすための便利なツールとして役割を果たし続けています。

AWS WAF は CAPTCHA パズルをランダムに生成し、ローテーションスルーして、ユーザーに固有の課題が提示されるようにします。 AWS WAF は定期的に新しいタイプのパズルとスタイルを追加して、自動化手法に対して効果的を維持します。 AWS WAF CAPTCHA スクリプトは、パズルに加えて、タスクが人間によって完了されていることを確認し、再生攻撃を防ぐために、クライアントに関するデータを収集します。

各 CAPTCHA パズルには、エンドユーザーが新しいパズルをリクエストしたり、音声パズルと視覚パズルを切り替えたり、追加の指示にアクセスしたり、パズルの解答を送信したりするための標準的なコントロールセットが含まれています。すべてのパズルには、スクリーンリーダー、キーボードコントロール、コントラスト色のサポートが含まれています。

 AWS WAF CAPTCHA パズルは、ウェブコンテンツアクセシビリティガイドライン (WCAG) の要件を満たしています。詳細については、World Wide Web Consortium (W3C) ウェブサイトの「[Web Content Accessibility Guidelines (WCAG) Overview](https://www.w3.org/WAI/standards-guidelines/wcag/)」(Web Content Accessibility Guidelines (WCAG) の概要) を参照してください。

**Topics**
+ [CAPTCHA パズル言語へのサポート](waf-captcha-puzzle-language-support.md)
+ [CAPTCHA パズルの例](waf-captcha-puzzle-examples.md)

# CAPTCHA パズル言語へのサポート
<a name="waf-captcha-puzzle-language-support"></a>

このセクションでは、 AWS WAF CAPTCHA パズルでサポートされている言語を一覧表示します。

CAPTCHA パズルは、クライアントブラウザ言語での書面による指示、またはブラウザ言語がサポートされていない場合は英語で始まります。このパズルには、ドロップダウンメニューによって代替言語オプションを用意しています。

ユーザーは、ページの下部にあるヘッドフォンアイコンを選択して、音声指示に切り替えることができます。音声バージョンのパズルでは、ユーザーがテキストボックスに入力する必要があるテキストに関する指示に、バックグラウンドノイズを重ねて発信します。

次の表に、CAPTCHA パズルの書面的な手順と、各選択肢の音声サポートで選択できる言語を示します。


**AWS WAF CAPTCHA パズルでサポートされている言語**  

| 書面的な指示のサポート | ロケールコード | 音声指示のサポート | 
| --- | --- | --- | 
|  アラビア語  |  ar-SA  |  アラビア語  | 
|  簡体字中国語  |  zh-CN  |  英語の音声  | 
|  Dutch  |  nl-NL  |  Dutch  | 
|  英語  |  en-US  |  英語  | 
|  French  |  fr-FR  |  フランス語  | 
|  ドイツ語  |  de-DE  |  German  | 
|  Italian  |  it-IT  |  Italian  | 
|  Japanese  |  ja-JP  |  英語の音声  | 
|  ブラジルポルトガル語  |  pt-BR  |  ブラジルポルトガル語  | 
|  Spanish  |  es-ES  |  Spanish  | 
|  Turkish  |  tr-TR  |  Turkish  | 

# CAPTCHA パズルの例
<a name="waf-captcha-puzzle-examples"></a>

一般的なビジュアル CAPTCHA パズルでは、ユーザーが 1 つ以上のイメージを理解して操作できることを示すためのインタラクションが必要です。

次のスクリーンショットは、画像グリッドパズルの例を示しています。このパズルでは、特定のタイプのオブジェクトを含むグリッド内のすべての画像を選択する必要があります。

![\[画面には、「人間であることの確認させてください」というタイトルと「すべての椅子を選択してください」というテキストが含まれています。テキストの下には 3x3 グリッドの画像があり、その中には椅子が含まれているものもあれば、ベッドや窓などの椅子ではないオブジェクトが含まれているものもあります。画面の下部には、別のパズルをロード、情報ボックスの表示と非表示を切り替え、オーディオパズルを切り替え、言語を変更するオプションがあります。また、下部には [確認] ボタンがあります。\]](http://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/images/CAPTCHAPuzzleGrid.png)


音声パズルオプションでは、ユーザーがテキストボックスに入力する必要があるテキストに関する発音指示に、バックグラウンドノイズを重ねて発信します。

次のスクリーンショットは、選択した音声パズルの表示内容を示しています。

![\[画面には「Solve the puzzle」(パズルを解いてください) というタイトルと「Click play to listen to instructions」(再生をクリックして指示を聞いてください) というテキストが含まれています。テキストの下には、[Play] (再生) ボタンを示す画像があります。画像の下には「Keyboard audio toggle: alt + space」(キーボード音声切り替え: alt + スペース) というテキストがあります。以下は「Enter your response」(回答を入力) というタイトルで、その下にテキスト入力ボックスがあります。開いている情報ボックスには、「Solve by listening to the recording and typing your answer into the text box」(録音を聞いて、テキストボックスに回答を入力して解いてください) というテキストが含まれています。画面の下部には、別のパズルをロードしたり、情報ボックスの表示と非表示を切り替えたり、視覚パズルに切り替えたりするオプションがあります。また、下部には [Submit] (送信) ボタンがあります。\]](http://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/images/CAPTCHAPuzzleAudio.png)




# 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 番目のリクエストは、有効なトークンを持つリクエストについて、上記のログ記録とメトリクス処理を受け取ります。　 

# CAPTCHA および Challenge アクションを使用するベストプラクティス
<a name="waf-captcha-and-challenge-best-practices"></a>

このセクションのガイダンスに従って、CAPTCHA AWS WAF またはチャレンジを計画および実装します。

**CAPTCHA およびチャレンジの実装の計画**  
ウェブサイトの使用状況、保護するデータの機密性、リクエストのタイプに基づいて、CAPTCHA パズルまたはサイレントチャレンジを配置する場所を決定します。必要に応じてパズルを提示できるように、CAPTCHA に適用するリクエストを選択します。ただし、役に立たずにユーザーエクスペリエンスを低下させる可能性がある場合、パズルの提示を控えてください。Challenge アクションを使用てエンドユーザーへの影響が少ないサイレントチャレンジを実行しますが、リクエストが JavaScript 対応のブラウザから送信されていることを確認できます。

CAPTCHA パズルとサイレントチャレンジは、ブラウザが HTTPS エンドポイントにアクセスしている場合にのみ実行できます。トークンを取得するには、ブラウザクライアントが安全なコンテキストで実行されている必要があります。

**クライアントで CAPTCHA パズルやサイレントチャレンジを実行する場所を決定**  
CSS や画像のリクエストなど、CAPTCHA による影響を受けたくないリクエストを特定します。CAPTCHA は必要な場合にのみ使用してください。たとえば、ログイン時に CAPTCHA チェックを行う予定で、ユーザーが常にログインから別の画面に直接ダイレクトされる場合、2 つ目の画面で CAPTCHA チェックを要求することはおそらく不要であり、ユーザーエクスペリエンスを低下させる可能性があります。

が`GET``text/html`リクエストに応じて CAPTCHA パズルとサイレントチャレンジ AWS WAF のみを送信するように Challengeと CAPTCHAを設定します。`POST`リクエスト、クロスオリジンリソース共有 (CORS) プリフライト`OPTIONS`要求、またはその他の非要求`GET`リクエストタイプに応答しても、パズルもチャレンジも実行することはできません。他のリクエストに対するブラウザの動作は異なる場合があり、インタースティシャルを適切に処理できない可能性があります。

クライアントが HTML を受け入れられても、CAPTCHA またはチャレンジインタースティシャルを処理できない場合があります。たとえば、小さな iFrame を持つウェブページ上のウィジェットは HTML を受け入れますが、CAPTCHA の表示またはその処理ができない場合があります。このようなタイプのリクエストのルールアクションは、HTML を受け入れないリクエストと同じように、設定しないでください。

**以前に取得したトークンの確認に CAPTCHA または Challenge を使用**  
ルールアクションは、正規ユーザーが常にトークンを持っている必要がある場所で、有効なトークンの存在を確認する場合にのみ使用できます。このような状況では、リクエストでインタースティシャルを処理できるかどうかは問題ではありません。

例えば、JavaScript クライアントアプリケーションの CAPTCHA API を実装し、保護されたエンドポイントに最初のリクエストを送信する直前にクライアントで CAPTCHA パズルを実行する場合、最初のリクエストには、チャレンジと CAPTCHA の両方に有効なトークンが常に含まれている必要があります。JavaScript クライアントアプリケーション統合については、「[AWS WAF JavaScript 統合](waf-javascript-api.md)」を参照してください。

この状況では、保護パック (ウェブ ACL) に、この最初の呼び出しと一致するルールを追加し、Challenge または CAPTCHA ルールアクションでルールを設定することができます。ルールが正規のエンドユーザーとブラウザに一致すると、アクションは有効なトークンを検索します。したがって、アクションがリクエストをブロックしたり、リクエストに応答してチャレンジや CAPTCHA パズルを送信したりすることはありません。ルールアクションの仕組みの詳細については、「[CAPTCHA および Challenge アクション動作](waf-captcha-and-challenge-actions.md)」を参照してください。

**CAPTCHA および Challenge で機密性のある非 HTML データを保護する**  
次のアプローチで、API などの機密性の高い非 HTML データに CAPTCHA および Challenge 保護を使用できます。

1. HTML レスポンスを受け取り、機密性の高い HTML 以外のデータに対するリクエストの近くで実行されるリクエストを特定します。

1. HTML のリクエストと照合し、機密データのリクエストと照合する CAPTCHA または Challenge ルールを記述します。

1. CAPTCHA および Challenge イミュニティ時間の設定を調整し、通常のユーザーインタラクションで、クライアントが HTML リクエストから取得するトークンが、機密データのリクエストにおいて利用可能で有効期限が切れないようします。チューニングの情報については、「[でのタイムスタンプの有効期限とトークンイミュニティ時間の設定 AWS WAF](waf-tokens-immunity-times.md)」を参照してください。

機密データのリクエストが CAPTCHA または Challenge ルールに一致すると、クライアントが以前のパズルまたはチャレンジからの有効なトークンをまだ持っている場合、そのリクエストはブロックされません。トークンが利用できない、あるいはタイムスタンプが有効期限が切れている場合、機密データをアクセスするリクエストは失敗します。ルールアクションの仕組みの詳細については、「[CAPTCHA および Challenge アクション動作](waf-captcha-and-challenge-actions.md)」を参照してください。

**CAPTCHA および Challenge を使用して既存ルールの調整**  
既存のルールを確認し、変更するか追加するかを確認します。一般的なシナリオをいくつか次に示します。
+ トラフィックをブロックするレートベースルールがあるものの、正規ユーザーのブロックを避けるためにレート制限を比較的高く維持する場合、ブロックルールの後に 2 つ目のレートベースルールを追加することを検討してください。2 つ目のルールにブロッキングルールよりも低い制限を設定し、ルールアクションを CAPTCHA また Challenge に設定します。ブロッキングルールは、高すぎるレートでリクエストを受け取らないように引き続きブロックします。新しいルールは、ほとんどの自動化トラフィックをさらに低いレートでブロックします。レートベースルールの詳細については、「[でのレートベースのルールステートメントの使用 AWS WAF](waf-rule-statement-type-rate-based.md)」を参照してください。
+ リクエストをブロックするマネージドルールグループがある場合、一部またはすべてのルールの動作を Block から CAPTCHA または Challenge に切り替えることができます。これを行うには、マネージドルールグループの設定で、ルールアクション設定をオーバーライドします。ルールアクションのオーバーライドの情報については、「[ルールグループのルールアクションの上書き](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules)」を参照してください。

**デプロイする前に CAPTCHA およびチャレンジの実装をテストしてください**  
すべての新機能については、[AWS WAF 保護のテストとチューニング](web-acl-testing.md) のガイダンスに従ってください。

テストのとき、トークンタイムスタンプの有効期限要件を確認し、ウェブ ACL およびルールレベルのイミュニティ時間を設定して、ウェブサイトへのアクセスを制御および顧客に優れたエクスペリエンスを提供することのバランスが適切に維持できるようにします。詳細については、「[でのタイムスタンプの有効期限とトークンイミュニティ時間の設定 AWS WAF](waf-tokens-immunity-times.md)」を参照してください。