AWS WAF Bot Control の例: 特定のブロックされたボットを許可する - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

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

AWS WAF Bot Control の例: 特定のブロックされたボットを許可する

複数の Bot Control ルールによってボットがブロックされる可能性があります。各ブロッキングルールについて、次の手順を実行します。

AWS WAF Bot Control ルールがブロックしないボットをブロックしている場合は、次の手順を実行します。

  1. ログをチェックして、ボットをブロックしている Bot Control ルールを特定します。ブロックルールは、名前が terminatingRule で始まるフィールドのログで指定されます。ウェブ ACL ログの詳細については、「AWS WAF ウェブ ACL トラフィックのログ記録」を参照してください。ルールがリクエストに追加するラベルに注意してください。

  2. ウェブ ACL で、ブロッキングルールのアクションをカウントするようにオーバーライドします。コンソールでこれを行うには、ウェブ ACL でルールグループのルールを編集し、ルールに Count のルールアクションオーバーライドを選択します。これにより、ボットがルールによってブロックされないようにしても、ルールは一致するリクエストにラベルを適用します。

  3. Bot Control マネージドルールグループの後に、ウェブ ACL にラベル一致ルールを追加します。オーバーライドされたルールのラベルと照合し、ブロックしたくないボットを除くすべての一致するリクエストをブロックするようにルールを設定します。

    これで、ウェブ ACL が設定され、許可するボットが、ログを通じて特定したブロックルールによってブロックされなくなります。

トラフィックとログをもう一度チェックして、ボットの通過が許可されていることを確認します。許可されていない場合は、上記の手順を再度実行してください。

例えば、pingdom を除くすべてのモニタリングボットをブロックするとします。この場合、CategoryMonitoring ルールがカウントするようにオーバーライドし、その後にボット名ラベル pingdom が付いているものを除くすべてのモニタリングボットをブロックするルールを記述します。

次のルールは、Bot Control マネージドルールグループを使用しますが、CategoryMonitoring のルールアクションがカウントするようにオーバーライドします。カテゴリモニタリングルールは、一致するリクエストに通常どおりラベルを適用しますが、通常のブロックアクションを実行するのではなく、カウントするだけです。

{ "Name": "AWS-AWSBotControl-Example", "Priority": 5, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesBotControlRuleSet", "RuleActionOverrides": [ { "ActionToUse": { "Count": {} }, "Name": "CategoryMonitoring" } ], "ExcludedRules": [] } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSBotControl-Example" } }

次のルールは、前の CategoryMonitoring ルールが一致するウェブリクエストに追加するカテゴリモニタリングラベルと照合します。カテゴリモニタリングリクエストの中で、このルールはボット名 pingdom のラベルを持つものを除くすべてをブロックします。

次のルールは、ウェブ ACL の処理順序で、前の Bot Control マネージドルールグループの後に実行する必要があります。

{ "Name": "match_rule", "Priority": 10, "Statement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring" } }, { "NotStatement": { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom" } } } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "match_rule" } }