跳至内容

如何使用聚合键在 AWS WAF 中配置速率限制规则?

3 分钟阅读
0

我想使用聚合键功能来配置一条规则,用于在 AWS WAF 中跟踪和限制客户请求速率。

解决方法

使用 Cookie 来设置速率限制

对于具有单个名称和动态值的 Cookie,请完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. 选择您的 Protection pack(保护包)。
  5. 在您选择的保护包中,选择 Rules(规则)。
  6. 选择 Rules(规则)旁边的 View and edit(查看和编辑)以查看或修改与您的保护包关联的规则。
  7. 在 Manage rules(管理规则)的右侧窗格中,选择 Add rules(添加规则)。
  8. 选择 Create new rule(创建新规则)。
  9. 选择 Custom rule(自定义规则),然后选择 Next(下一步)。
  10. 对于 Rule Type(规则类型),选择 Rate based rule(基于速率的规则),然后选择 Next(下一步)。
  11. Rules(规则)下,选择 Add Rules(添加规则)。
  12. 选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  13. 输入以下值来设置您的规则:
    对于 Rule type(规则类型),请选择 Rule Builder(规则生成器)。
    对于 Name(名称),请输入名称以标识此规则。
    对于 Type(类型),请选择 Rate-based rule(基于速率的规则)。
    对于 Rate limit(速率限制),请输入一个介于 100 和 20,000,000 之间的数字。
    对于 Evaluation window(评估窗口),请选择 1、2、5 或 10 分钟。
    对于 Request aggregation(请求聚合),请选择 Custom keys(自定义键)。
    (可选)选择 text transformation(文本转换)或 None(无)。
    对于 If a Request(如果请求),请选择 Consider all requests(考虑所有请求)。
    对于 Action(操作),请选择 Block(阻止)。
    对于 Cookie Name(Cookie 名称),请输入您的 Cookie 名称。
  14. 选择 Add Rule(添加规则)。
  15. 选择 Save(保存)。

使用托管式标签命名空间来设置速率限制

对于包含 CategoryHTTPLibrary 标签的请求,请完成以下步骤。

将特定的托管式规则组设置为计数模式

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. 选择您的 Protection pack(保护包)。
  5. 在您选择的保护包中,选择 Rules(规则)。
  6. 选择 Rules(规则)旁边的 View and edit(查看和编辑)以查看或修改与您的保护包关联的规则。
  7. Rules(规则)下,选择 Add Rules(添加规则)。
  8. 选择 Add managed rule groups(添加托管式规则组)。
  9. 选择 AWS managed rule groups(AWS 托管式规则组)。
  10. Paid rule groups(付费规则组)下,对于 Bot Control rule set(机器人控制功能规则集),请开启 Add to web ACL(添加到 Web ACL)。
  11. 选择 Edit(编辑)。
  12. 对于 Inspection level(检查级别),请选择 Common(通用)。
  13. 在规则列表中,对于 HTTP library(HTTP 库),请选择 Count(计数)。
  14. 选择 Add Rule(添加规则)。
  15. 对于 Set Rule Priority(设置规则优先级),请选择您的规则,然后将其优先级更新为低于 Bot Control rule set(机器人控制功能规则集)。
  16. 选择 Save(保存)。

向 Web ACL 添加自定义规则

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. 选择您的 Protection pack(保护包)。
  5. 在您选择的保护包中,选择 Rules(规则)。
  6. 选择 Rules(规则)旁边的 View and edit(查看和编辑)以查看或修改与您的保护包关联的规则。
  7. 在 Manage rules(管理规则)的右侧窗格中,选择 Add rules(添加规则)。
  8. 选择 Create new rule(创建新规则)。
  9. 选择 Custom rule(自定义规则),然后选择 Next(下一步)。
  10. 对于 Rule Type(规则类型),选择 Rate based rule(基于速率的规则),然后选择 Next(下一步)。
  11. Rules(规则)下,选择 Add Rules(添加规则)。
  12. 选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  13. 要设置规则,请配置以下值:
    对于 Rule type(规则类型),请选择 Rule Builder(规则生成器)。
    对于 Name(名称),请输入名称以标识此规则。
    对于 Type(类型),请选择 Rate-based rule(基于速率的规则)。
    对于 Rate limit(速率限制),请输入一个介于 100 和 20,000,000 之间的数字。
    对于 Evaluation window(评估窗口),请选择 1、2、5 或 10 分钟。
    对于 Request aggregation(请求聚合),请选择 Custom keys(自定义键)。
    对于 Label namespace(标签命名空间),请输入 awswaf:managed:aws:bot-control:bot:category:
    对于 Scope of inspection and rate limiting(检查范围和速率限制),请选择 Consider all requests(考虑所有请求)。
    对于 Action(操作),请选择 Block(阻止)。
  14. 选择 Add Rule(添加规则)。
  15. 对于 Set Rule Priority(设置规则优先级),请更新自定义规则的规则优先级,使其低于托管式规则的优先级。有关详细信息,请参阅设置规则优先级
  16. 选择 Save(保存)。

使用 IP 设置速率限制

**注意:**仅当流量带有特定主机标头时,您才能使用 IP 来设置速率限制。如果流量没有标头,则 AWS WAF 不应用速率限制。

对于包含特定主机标头(例如 example.com)的请求,请完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF
  3. 选择 Resources & protection packs(资源和保护包)。
  4. 选择您的 Protection pack(保护包)。
  5. 在您选择的保护包中,选择 Rules(规则)。
  6. 选择 Rules(规则)旁边的 View and edit(查看和编辑)以查看或修改与您的保护包关联的规则。
  7. 在 Manage rules(管理规则)的右侧窗格中,选择 Add rules(添加规则)。
  8. 选择 Create new rule(创建新规则)。
  9. 选择 Custom rule(自定义规则),然后选择 Next(下一步)。
  10. 对于 Rule Type(规则类型),选择 Rate based rule(基于速率的规则),然后选择 Next(下一步)。
  11. 要设置规则,请配置以下值:
    对于 Rule type(规则类型),请选择 Rule Builder(规则生成器)。
    对于 Name(名称),请输入名称以标识此规则。
    对于 Type(类型),请选择 Rate-based rule(基于速率的规则)。
    对于 Rate limit(速率限制),请输入一个介于 100 和 20,000,000 之间的数字。
    对于 Evaluation window(评估窗口),请选择 1、2、5 或 10 分钟。
    对于 Request aggregation(请求聚合),请选择 Source IP Address(源 IP 地址)。
    对于 Scope of inspection and rate limiting(检查范围和速率限制),请选择 Only consider requests that match the criteria in a rule statement(仅考虑符合规则语句中相关标准的请求)。
    对于 If a request(如果请求),请选择 Matches the statement(匹配语句)。
    对于检查,选择单个标头
    对于 Header field name(标头字段名称),输入 Host
    对于 Match type(匹配类型),请选择 Exactly matching String(完全匹配字符串)。
    对于 String to match(要匹配的字符串),请输入 example.com。**注意:**将 example.com 替换为您的网址。
    (可选)选择 text transformation(文本转换)或 None(无)。
    对于 Action(操作),请选择 Block(阻止)。
  12. 选择 Add rule(添加规则)。
  13. 选择 Save(保存)。
AWS 官方已更新 10 个月前