对带有特定标签的请求进行速率限制 - AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced

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

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

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

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

以下示例使用 Amazon IP 声誉列表 AWS 托管规则的规则组。规则组规则 AWSManagedIPDDoSList 会检测并标记已知其 IP 正在积极参与 DDoS 活动的请求。规则的操作在规则组定义中配置为 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:" }