如何使用 AWS WAF 在 API Gateway REST API 上应用基于速率的规则?

2 分钟阅读
0

我想使用 AWS WAF 在 Amazon API Gateway REST API 上实施基于速率的规则。

解决方案

**注意:**AWS WAF 目前仅支持 API Gateway REST API。

要使用 AWS WAF 在 REST API 上应用基于速率的规则,请先创建一个 Web 访问控制列表 (Web ACL)。然后,创建基于速率的规则,并将 Web ACL 关联到 REST API。

创建 Web ACL

完成以下步骤。

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs(Web ACL)。
  3. 选择 Create web ACL(创建 Web ACL)。
  4. 要设置 Web ACL,请配置以下值:
    对于 Resource type(资源类型),选择 Regional resources(区域资源)。
    对于 Region(区域),选择您的 REST API 所在的 AWS 区域。
    对于 Name(名称),输入 Web ACL 的名称。
    (可选)对于 Description(描述),输入 Web ACL 的描述。
    (可选)对于 CloudWatch metric name(CloudWatch 指标名称),请输入 Amazon CloudWatch 指标名称。默认情况下,CloudWatch 指标名称与 Web ACL 名称相同。
    对于 Associated AWS resources(关联的 AWS 资源),如果您已经创建了 REST API,则选择您的 API。否则,请跳过此字段,然后在创建 REST API 后对其进行更新。
    **注意:**您可以保留所有其他字段的默认设置,以后根据需要再进行修改。
  5. 选择 Next(下一步)。
  6. 选择 Create web ACL(创建 Web ACL)。

创建基于速率的规则

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs(Web ACL)。
  3. 对于 Region(区域),请选择在其中创建了 Web ACL 的 AWS 区域。
    **注意:**如果该 Web ACL 为 Amazon CloudFront 设置,则选择 Global(全球)。
  4. 选择您的 Web ACL。
  5. Rules(规则)下,选择 Add rules(添加规则),然后选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  6. 要设置规则,请配置以下值:
    对于 Rule type(规则类型),请选择 Rule Builder(规则生成器)。
    对于 Name(名称),输入规则的名称。
    对于 Type(类型),请选择 Rate-based rule(基于速率的规则)。
    Rate-limiting criteria(速率限制标准)下,配置以下值:
    对于 Rate limit(速率限制),请输入一个介于 100 和 20,000,000 之间的数字。
    对于 Evaluation window(评估窗口),输入您的评估窗口。
    对于 Request aggregation(请求聚合),要根据客户端 IP 字段设置速率限制,请选择 Source IP address(源 IP 地址)。或者,要根据标头中的 IP 地址设置速率限制,请选择 IP address in header(标头中的 IP 地址)。 
    注意:如果您的流量流经代理或内容分发网络 (CDN),请使用标头中的 IP 地址。有关更多信息,请参阅 Forwarded IP address(转发的 IP 地址)。
    对于 Scope of inspection and rate limiting(检查范围和速率限制),要为 Web ACL 检查的所有请求创建规则,请选择 Consider all requests(考虑所有请求)。或者,要应用范围缩小语句,请选择 Only consider request that match the criteria in a rule statement(仅考虑符合规则语句中相应条件的请求)。
  7. 对于 Action(操作),请选择 Block(阻止)。
  8. 选择 Add rule(添加规则)。
  9. 选择 Save(保存)。

将 Web ACL 与 REST API 进行关联

完成以下步骤:

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 AWS WAF,然后选择 Web ACLs(Web ACL)。
  3. 选择您的 Web ACL。
  4. 选择 Associated AWS resources(关联的 AWS 资源)。
  5. 选择 Add AWS resources(添加 AWS 资源)。
  6. 选择 Amazon API Gateway REST API,然后选择您的 API。 
    **注意:**如果您看不到自己的 REST API,请验证 API 和 Web ACL 是否位于同一区域。
  7. 选择 Add(添加)。

相关信息

基于速率的规则聚合选项和密钥

三条最重要的基于速率的 AWS WAF 规则

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

AWS 官方
AWS 官方已更新 7 个月前