【问题标题】:How to create a wildcard to deny all requests from all ips in AWS WAF如何创建通配符以拒绝来自 AWS WAF 中所有 ip 的所有请求
【发布时间】:2021-08-19 02:46:34
【问题描述】:

我在 WAF 后面的 AWS 中的 ECS 实例中有一个微服务,我想创建这些规则:

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

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

这是我的代码,我删除了 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
    }
  ]
}
{
  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."
}

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

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

提前致谢

【问题讨论】:

  • “我尝试创建” - 你能显示你尝试的带有错误消息的实际代码吗?
  • 我的错,我添加了实际代码和输出@Marcin

标签: amazon-web-services terraform terraform-provider-aws web-application-firewall


【解决方案1】:

您无需阻止 0.0.0.0/0。创建两条 IP 规则后,在 WAF 控制台上查看“针对不匹配任何规则的请求的默认 Web ACL 操作”,并将操作设置为阻止。

【讨论】:

    【解决方案2】:

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

    以下 terraform sn-p 被接受,ip 集由 TF 创建(Terraform 0.15.4 和 aws provider version 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"]
    }
    
    

    【讨论】:

      【解决方案3】:

      您不能阻止所有地址 (CIDR /0)。它不支持。来自docs

      AWS WAF 支持所有 IPv4 和 IPv6 CIDR 范围除了 /0

      相反,您可以使用网络 ACL 拒绝所有流量或安全组。

      【讨论】:

      • 我已将默认操作设置为“阻止”,非常感谢您的帮助
      猜你喜欢
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 2020-03-18
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      相关资源
      最近更新 更多