CloudFront からの通信を AWS WAF の BotControl ルールによって誤検知してしまう際の対処方法を教えてください
困っていた内容
ALB に AWS WAF を適用し、その ALB を CloudFront のオリジンとして利用しています。
現在、WAF を Block モードへ切り替える前に Count モードで誤検知の確認を行っているのですが、
ログを確認したところ、CloudFront エッジサーバからの通信が
AWSManagedRulesBotControlRuleSet の SignalNonBrowserUserAgent ルールでカウントされていました。
また、該当リクエストの User-Agent には「Amazon CloudFront」と記録されています。
このように SignalNonBrowserUserAgent ルール を Block として設定した場合、
CloudFront からの正規通信を遮断してしまう認識ですがこれを遮断しないようにするには、
AWSManagedRulesBotControlRuleSet をどのように設定すればよいでしょうか。
質問への回答
User-Agent ヘッダーに「Amazon CloudFront」が含まれるリクエストは、
AWSManagedRulesBotControlRuleSet 内の SignalNonBrowserUserAgent ルールにより
Block 対象となる可能性があり、AWSManagedRulesBotControlRuleSet を Block アクションに変更した場合、
CloudFront からのオリジンアクセスが遮断される可能性があります。
そのため、ドキュメントに記載されているラベルを用いた除外設定[1]を行い、
「Amazon CloudFront」の値の User-Agent ヘッダーをもつリクエストが
SignalNonBrowserUserAgent のルールにて Block されないように設定することが適切な対処方法です。
参考資料
-
[1]AWS マネージドルールによる誤検知を検出するにはどうすればよいですか?
https://repost.aws/ja/knowledge-center/waf-detect-false-positives-from-amrs -
[2]カスタムオリジンの場合のリクエストおよびレスポンスの動作 - User-Agent ヘッダー https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/RequestAndResponseBehaviorCustomOrigin.html#request-custom-user-agent-header
-
[3]AWS WAF Bot Control ルールグループ - Bot Control のルールリスト
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/aws-managed-rule-groups-bot.html#aws-managed-rule-groups-bot-rules






