进行Bot Control

在本节中,我们将开始使用 AWS WAF Bot Control

  • 检测、标记和控制已知和普遍存在的机器人,例如 HTTP 库和已知的自动化工具。
  • 我们将了解什么是经过验证的机器人(例如 SEO 引擎和社交媒体链接抓取器),以及如何通过 AWS WAF 允许良性机器人流量。

启用通用机器人控制

到目前为止,我们已经使用了免费的托管规则来控制可疑的传入流量。在本节中,我们将使用一个付费的托管规则,它可以检测传入流量中的机器人特征。

在Web ACL Rules选项卡上,添加一个新的托管规则:

image-20240623201054084

在"Bot Control"旁边,单击"Add to web ACL"按钮:

image-20240623201304607

单击"Edit”。对于检查级别,我们将从"Common"开始。

image-20240623201332018

“Common"检查级别仅使用被动检查传入请求,不会更改任何流量到客户端或从客户端发出的内容。默认情况下,除了经过验证的SEO引擎和社交媒体爬虫,阻止其他识别出来的Bot。

所有机器人类别的默认设置都是 Block。让我们保持原样,向下滚动并单击"save rule”:

image-20240623201600149

继续点击保存,在设置规则优先级页面上,单击选择AWS-AWSManagedRulesBotControlRuleSet规则,然后单击"Move up"按钮,直到该规则位于最上面,然后单击保存:

image-20240623201749184

测试Bot Control

尝试使用curl来尝试从应用获得响应:

curl -v https://<<d1234567890>>.cloudfront.net (将*d1234567890*替换为我们自己的CloudFront地址)。

直接返回了403:

image-20240623201949501

通过CloudWatch Log insight查询(在启用机器人控制后,日志可能需要一分钟才会出现):

fields @timestamp,httpRequest.uri
| filter terminatingRuleId = "AWS-AWSManagedRulesBotControlRuleSet"
| limit 100

image-20240623202238189