对带有特定标签的请求进行速率限制 - Amazon WAF、 Amazon Firewall ManagerAmazon Shield Advanced、和 Amazon Shield 网络安全总监
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

引入全新的主机体验 Amazon WAF

现在,您可以使用更新的体验访问控制台中任意位置的 Amazon WAF 功能。有关更多详细信息,请参阅 使用更新的主机体验

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对带有特定标签的请求进行速率限制

您可以将速率限制与任何为请求添加标签的规则或规则组结合使用,以限制各种类别的请求数量。为此,您需要按如下方式配置保护包或 Web ACL:

  • 添加添加标签的规则或规则组,并对其进行配置,使其不会阻止或允许您想要限制速率的请求。如果您使用托管规则组,则可能需要将某些规则组规则操作覆盖为 Count 才能实施此行为。

  • 将基于速率的规则添加到您的保护包或 Web ACL 中,其优先级设置要高于标签规则和规则组。 Amazon WAF 按数字顺序评估规则,从最低顺序开始,因此基于速率的规则将在标签规则之后运行。在规则的范围缩小语句中结合使用标签匹配和标签聚合,从而在标签上配置速率限制。

以下示例使用 Amazon IP 信誉列表 Amazon 托管规则组。规则组规则AWSManagedIPDDoSList检测并标记已知 IPs 正在积极参与 DDo S 活动的请求。规则的操作在规则组定义中配置为 Count。有关规则组的更多信息,请参阅 Amazon IP 声誉列表托管规则组

以下保护包或 Web ACL JSON 列表使用 IP 信誉规则组,后面是基于标签匹配速率的规则。基于速率的规则使用范围缩小语句来筛选已由规则组规则标记的请求。基于速率的规则语句按其 IP 地址对筛选后的请求进行聚合和速率限制。

{ "Name": "test-web-acl", "Id": ... "ARN": ... "DefaultAction": { "Allow": {} }, "Description": "", "Rules": [ { "Name": "AWS-AWSManagedRulesAmazonIpReputationList", "Priority": 0, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesAmazonIpReputationList" } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList" } }, { "Name": "test-rbr", "Priority": 1, "Statement": { "RateBasedStatement": { "Limit": 100, "EvaluationWindowSec": 300, "AggregateKeyType": "IP", "ScopeDownStatement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList" } } } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "test-rbr" } } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "test-web-acl" }, "Capacity": 28, "ManagedByFirewallManager": false, "RetrofittedByFirewallManager": false, "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:" }