如何创建通配符以拒绝来自 AWS WAF 中所有 ip 的所有请求

Ada*_*_SL 3 amazon-web-services terraform web-application-firewall terraform-provider-aws

我在 WAF 后面的 AWS ECS 实例中获得了一个微服务,我想创建以下规则:

  1. 允许特定IP(完成)
  2. 允许来自 VPN 内部的所有连接(完成)
  3. 拒绝所有其他请求。

前两个 IP 集已创建,但我无法使最后一个 IP 集工作。我尝试使用 和其他组合创建 IP 集,0.0.0.0/0但没有成功。

这是我的代码,我删除了 ipset 1 和 2(正在工作),这是 ipset 3:

resource "aws_wafv2_ip_set" "ipset" {
  name = "${var.app_name}-${var.environment_name}-whitelist-ips"

  scope              = "REGIONAL"
  ip_address_version = "IPV4"

  addresses = ["0.0.0.0/0"]
}

module "alb_wafv2" {
  source = "trussworks/wafv2/aws"
  version = "~> 2.0"

  name = "${var.app_name}-${var.environment_name}"
  scope = "REGIONAL"
  alb_arn = aws_lb.app_lb.arn
  associate_alb = true

  ip_sets_rule = [
    {
      name       = "${var.app_name}-${var.environment_name}-ip-blacklist"
      action     = "deny"
      priority   = 1
      ip_set_arn = aws_wafv2_ip_set.ipset.arn
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)
{
  RespMetadata: {
    StatusCode: 400,
    RequestID: "c98b2d3a-ebd0-44e0-a80a-702bc698598b"
  },
  Field: "IP_ADDRESS",
  Message_: "Error reason: The parameter contains formatting that is not valid., field: IP_ADDRESS, parameter: 0.0.0.0/0",
  Parameter: "0.0.0.0/0",
  Reason: "The parameter contains formatting that is not valid."
}
Run Code Online (Sandbox Code Playgroud)

尝试从 AWS 控制台创建 IP 集,但出现相同的错误: AWS控制台

所以我有两个问题,第一,我该怎么做?第二个,这是最好的方法吗?

提前致谢

Raf*_*faP 5

考虑使用此技巧来绕过 0.0.0.0/0 限制:
将 IPv4 地址空间分为两个块:0.0.0.0/1和 128.0.0.0/1

以下 terraform 代码段已被接受,并且 IP 集由 TF 创建(Terraform 0.15.4 和 aws 提供程序版本 3.42.0):

resource "aws_wafv2_ip_set" "ipset" {
  name = "all_internet_kludge"

  scope              = "REGIONAL"
  ip_address_version = "IPV4"

  addresses = ["0.0.0.0/1", "128.0.0.0/1"]
}

Run Code Online (Sandbox Code Playgroud)