

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

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

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

# 有効な AWS WAF トークンを持たないリクエストのブロック
<a name="waf-tokens-block-missing-tokens"></a>

このセクションでは、 AWS WAF モバイル SDK の使用時にトークンが欠落しているログインリクエストをブロックする方法について説明します。

インテリジェントな脅威の AWS Managed Rules ルールグループ `AWSManagedRulesACFPRuleSet`、`AWSManagedRulesATPRuleSet`、および を使用すると`AWSManagedRulesBotControlRuleSet`、ルールグループは AWS WAF トークン管理を呼び出してウェブリクエストトークンのステータスを評価し、それに応じてリクエストにラベルを付けます。

**注記**  
トークンのラベル付けは、これらのマネージドルールグループのいずれかを使用して評価したウェブリクエストにのみ適用されます。

適用されるトークン管理のラベル付けについては、前述の「[のトークンラベルのタイプ AWS WAF](waf-tokens-labeling.md)」セクションを参照してください。

その後、インテリジェントな脅威軽減マネージドルールグループは、トークンの要件を次のように処理します。
+ `AWSManagedRulesACFPRuleSet` `AllRequests` ルールは、すべてのリクエストに対して Challenge アクションを実行するように設定されており、`accepted` トークンラベルのないリクエストは効果的にブロックされます。
+ `AWSManagedRulesATPRuleSet` は、`rejected` トークンラベルを持つリクエストをブロックしますが、`absent` トークンラベルを持つリクエストはブロックしません。
+ `accepted`トークンラベルなしでリクエストを 5 回送信すると、`AWSManagedRulesBotControlRuleSet` のターゲットを絞った保護レベルが、クライアントにチャレンジを送信します。有効なトークンを持たない個別のリクエストはブロックされません。ルールグループの共通の保護レベルでは、トークンの要件は管理されません。

インテリジェントな脅威ルールグループの詳細については、「[AWS WAF Fraud Control アカウント作成不正防止 (ACFP) ルールグループ](aws-managed-rule-groups-acfp.md)」、「[AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) ルールグループ](aws-managed-rule-groups-atp.md)」、および「[AWS WAF Bot Control ルールグループ](aws-managed-rule-groups-bot.md)」を参照してください。

**Bot Control または ATP マネージドルールグループの使用時にトークンを持たないリクエストをブロックするには**  
Bot Control と ATP ルールグループを使用すると、有効なトークンを持たないリクエストがルールグループの評価を終了し、保護パック (ウェブ ACL) によって引き続き評価される可能性があります。

トークンが不足ているリクエスト、あるいはトークンが拒否されたリクエストをすべてブロックするには、マネージドルールグループの直後に実行するルールを追加し、ルールグループがユーザーに代わって処理しないリクエストをキャプチャしてブロックします。

次の内容では、ATP マネージドルールグループを使用する保護パック (ウェブ ACL) の JSON リストの例を示します。保護パック (ウェブ ACL) には、`awswaf:managed:token:absent` ラベルをキャプチャして処理するルールが追加されています。このルールは、ATP ルールグループの範囲に合わせて、ログインエンドポイントに送信されるウェブリクエストに評価を絞り込みます。追加されたルールは太字で表示されます。

```
{
  "Name": "exampleWebACL",
  "Id": "55555555-6666-7777-8888-999999999999",
  "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/webacl/exampleWebACL/55555555-4444-3333-2222-111111111111",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesATPRuleSet",
      "Priority": 1,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesATPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesATPRuleSet": {
                "LoginPath": "/web/login",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  }
                },
                "ResponseInspection": {
                  "StatusCode": {
                    "SuccessCodes": [
                      200
                    ],
                    "FailureCodes": [
                      401,
                      403,
                      500
                    ]
                  }
                }
              }  
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesATPRuleSet"
      }
    },
    {
      "Name": "RequireTokenForLogins",
      "Priority": 2,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "Statement": {
                "LabelMatchStatement": {
                  "Scope": "LABEL",
                  "Key": "awswaf:managed:token:absent"
                }
              }
            },
            {
              "ByteMatchStatement": {
                "SearchString": "/web/login",
                "FieldToMatch": {
                  "UriPath": {}
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                 }
                ],
                "PositionalConstraint": "STARTS_WITH"
              }
            },
            {
              "ByteMatchStatement": {
                "SearchString": "POST",
                "FieldToMatch": {
                  "Method": {}
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ],
                "PositionalConstraint": "EXACTLY"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RequireTokenForLogins"
      } 
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "exampleWebACL"
  },
  "Capacity": 51,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111111111111:webacl:exampleWebACL:"
}
```