You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建AWS WAFv2 RuleGroup遇WAFInvalidParameterException错误求助

问题分析与解决

错误根源

报错信息明确指出:OR statement with only one nested statement,AWS WAF的OR语句要求至少包含2个及以上的子语句,你当前仅在or_statement里放了一个IP集引用,不符合规则,这才是报错的核心原因,和capacity参数无关。

同时你的规则逻辑也与需求相悖:当前配置是匹配白名单IP时执行block动作,这和"仅允许列表内IP请求"的需求完全相反。

修正方案

要实现"仅允许白名单IP访问",正确逻辑是:当请求IP不在白名单IP集中时,拦截请求。需要将or_statement替换为not_statement,具体修正后的代码如下:

resource "aws_wafv2_ip_set" "ip_whitelist" {
  name               = "${var.waf_type}-${var.team_name}-${var.environment}-ipset"
  scope              = "CLOUDFRONT"
  ip_address_version = "IPV4"
  addresses          = var.micro_frontend_ip_address_whitelist
}

resource "aws_wafv2_rule_group" "ip_whitelist" {
  name        = "${var.waf_type}-${var.team_name}-${var.environment}-waf-rule-group"
  description = "This rule group contains whitelist rules for the micro-frontends."
  scope       = "CLOUDFRONT"
  capacity    = 1  # 单个IP集规则的容量需求足够,无需调整

  rule {
    name     = "${var.waf_type}-${var.team_name}-${var.environment}-whitelist-rule"
    priority = 0

    action {
      block {}
    }

    statement {
      # 使用NOT语句反转匹配逻辑:拦截不在白名单内的请求
      not_statement {
        statement {
          ip_set_reference_statement {
            arn = aws_wafv2_ip_set.ip_whitelist.arn
          }
        }
      }
    }

    visibility_config {
      cloudwatch_metrics_enabled = true
      metric_name                = "${var.waf_type}-${var.team_name}-${var.environment}-waf-rule-group"
      sampled_requests_enabled   = false
    }
  }

  visibility_config {
    cloudwatch_metrics_enabled = true
    metric_name                = "${var.waf_type}-${var.team_name}-${var.environment}-waf-rule-group"
    sampled_requests_enabled   = false
  }
}

关键说明

  • not_statement用于反转嵌套语句的匹配结果,正好满足"拦截非白名单IP"的需求
  • AWS WAF的OR语句强制要求至少2个子语句,单条件场景下不能使用
  • capacity = 1对于单个IP集引用规则完全足够,无需调整为500

内容的提问来源于stack exchange,提问作者sd-gallowaystorm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 23:57:24