在 AWS WAF 中使用 IP 声誉列表或匿名 IP 列表时,如何允许合法的 IP 地址?

3 分钟阅读
0

我的合法请求被 Amazon IP 声誉列表托管规则组或匿名 IP 列表托管规则组阻止。如何在 AWS WAF 中允许我的 IP 地址?

简短描述

合法请求可能会被以下其中一个 AWS 托管规则组阻止:

要允许一个或多个特定的 IP 地址,请使用以下其中一种方法来解决此问题:

  • 范围缩小语句用于缩小规则评估的请求的范围。为单个规则组中的寻址逻辑选择此选项。
  • Web 请求中的标签,允许与请求匹配的规则,将匹配结果传达给稍后在同一 Web ACL 中评估的规则。选择此选项可在多个规则中重复使用相同的逻辑。

解决方法

选项 1:使用范围缩小语句

首先,创建一个 IP 集。

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 IP sets(IP 集),然后选择 Create IP set(创建 IP 集)。
  3. 为 IP 集输入 IP set name(IP 集名称)和 Description - optional(描述 - 可选)。例如:MyTrustedIPs
    **注意:**创建 IP 集后,您无法更改 IP 集名称。
  4. 对于 Region(区域),选择要存储 IP 集的 AWS 区域。要在保护 Amazon CloudFront 分配的 Web ACL 中使用 IP 集,您必须使用 Global (CloudFront)(全局(CloudFront))。
  5. 对于 IP version(IP 版本),选择要使用的版本。
  6. 对于 IP addresses(IP 地址),采用 CIDR 表示法在每行中输入您要允许的一个 IP 地址或 IP 地址范围。
    **注意:**AWS WAF 支持除 /0 之外的所有 IPv4 和 IPv6 CIDR 范围。
    示例:
    要指定 IPv4 地址 192.168.0.26,请输入 192.168.0.26/32
    要指定 IPv6 地址 0:0:0:0:0:ffff:c000:22c,请输入 0:0:0:0:0:ffff:c000:22c/128
    要指定从 192.168.20.0 到 192.168.20.255 的 IPv4 地址范围,请输入 192.168.20.0/24
    要指定从 2620:0:2d0:200:0:0:0:0 到 2620:0:2d0:200:ffff:ffff:ffff:ffff 的 IPv6 地址范围,请输入 2620:0:2d0:200::/64
  7. 查看 IP 集的设置。如果它符合您的规格,请选择 Create IP set(创建 IP 集)。

然后,向阻止您的请求的特定 AWS 托管规则添加范围缩小语句

  1. 在导航窗格中的 AWS WAF 下,选择 Web ACL
  2. 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。
    **注意:**如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。
  3. 选择您的 Web ACL。
  4. 在 Web ACL Rules(规则)选项卡中,选择阻止您的请求的特定 AWS 托管规则组,然后选择 Edit(编辑)。
  5. 对于 Scope-down statement - optional(范围缩小语句 - 可选),选择 Enable scope-down statement(启用范围缩小语句)。
  6. 对于 If a request(如果是请求),选择 doesn’t match the statement(NOT)(与语句不匹配(NOT))。
  7. Statement(语句)中,对于 Inspect(检查),选择 Originates from IP address in(源自 IP 地址)。
  8. 对于 IP Set(IP 集),选择您之前创建的 IP 集。例如:MyTrustedIPs
  9. 对于 IP address to use as the originating address(要用作源地址的 IP 地址),选择 Source IP address(源 IP 地址)。
  10. 选择 Save rule(保存规则)。

选项 2:在 Web 请求中使用标签

首先,创建一个 IP 集。

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中,选择 IP sets(IP 集),然后选择 Create IP set(创建 IP 集)。
  3. 为 IP 集输入 IP set name(IP 集名称)和 Description - optional(描述 - 可选)。例如:MyTrustedIPs
    **注意:**创建 IP 集后,您无法更改 IP 集名称。
  4. 对于 Region(区域),选择要存储 IP 集的 AWS 区域。要在保护 Amazon CloudFront 分配的 Web ACL 中使用 IP 集,您必须使用 Global (CloudFront)(全局(CloudFront))。
  5. 对于 IP version(IP 版本),选择要使用的版本。
  6. 对于 IP addresses(IP 地址),采用 CIDR 表示法在每行中输入您要允许的一个 IP 地址或 IP 地址范围。
    **注意:**AWS WAF 支持除 /0 之外的所有 IPv4 和 IPv6 CIDR 范围。
    示例:
    要指定 IPv4 地址 192.168.0.26,请输入 192.168.0.26/32
    要指定 IPv6 地址 0:0:0:0:0:ffff:c000:22c,请输入 0:0:0:0:0:ffff:c000:22c/128
    要指定从 192.168.20.0 到 192.168.20.255 的 IPv4 地址范围,请输入 192.168.20.0/24
    要指定从 2620:0:2d0:200:0:0:0:0 到 2620:0:2d0:200:ffff:ffff:ffff:ffff 的 IPv6 地址范围,请输入 2620:0:2d0:200::/64
  7. 查看 IP 集的设置。如果它符合您的规格,请选择 Create IP set(创建 IP 集)。

然后,在规则组中将规则操作更改为计数。

  1. 在 Web ACL 页面的 Rules(规则)选项卡中,选择阻止您的请求的 AWS 托管规则组,然后选择 Edit(编辑)。
  2. 在规则组的 Rules(规则)部分中,执行以下其中一项操作:
    对于 AWSManagedIPReputationList,开启 Count(计数)。
    对于 AnonymousIPList Rule(AnonymousIPList 规则),开启 Count(计数)。
  3. 选择 Save rule(保存规则)。

最后,创建一个数字优先级高于阻止请求的特定 AWS 托管规则的规则。

  1. 在导航窗格中的 AWS WAF 下,选择 Web ACL
  2. 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。 **注意:**如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。
  3. 选择您的 Web ACL。
  4. 选择 Rules(规则)。
  5. 选择 Add Rules(添加规则),然后选择 Add my own rules and rule groups(添加我自己的规则和规则组)。
  6. 对于 Name(名称),输入 rule name(规则名称),然后选择 Regular Rule(常规规则)。
  7. 对于 If a request(如果是请求),选择 matches all the statements (AND)(与所有语句匹配(AND))。
  8. Statement 1(语句 1)中:
    对于 Inspect(检查),选择 Has a label(有标签)。
    对于 Match scope(匹配范围),选择 Label(标签)。
    对于 Match key(匹配密钥),根据阻止您请求的托管规则,选择 awswaf:managed:aws:amazon-ip-list:AWSManagedIPReputationListawswaf:managed:aws:anonymous-ip-list:AnonymousIPList
  9. Statement 2(语句 2)中:
    对于 Negate statement (NOT)(否定语句(NOT)),选择 Negate statement results(否定语句结果)。
    对于 Inspect(检查),选择 Originates from IP address in(源自 IP 地址)。
    对于 IP set(IP 集),选择您之前创建的 IP 集。
    对于 IP address to use as the originating address(要用作源地址的 IP 地址),选择 Source IP address(源 IP 地址)。
  10. 对于 Action(操作),选择 Block(阻止)。
  11. 选择 Add Rule(添加规则)。
  12. 对于 Set rule priority(设置规则优先级),将规则移到阻止请求的 AWS 托管规则下方。
  13. 选择 Save(保存)。

**重要提示:**最佳做法是在 Action(操作)设置为 Count(计数)的情况下在非生产环境中测试规则。使用 Amazon CloudWatch 指标与 AWS WAF 采样请求或 AWS WAF 日志相结合,评估规则。如果您对规则执行您想要的操作感到满意,请将 Action(操作)更改为 Block(阻止)。


相关信息

如何检测 AWS 托管规则导致的误报并将它们添加到安全列表中?

AWS 官方
AWS 官方已更新 2 年前