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

使用AWS CDK配置wafv2 IP白名单WAF规则报错排查

WAFv2 IP白名单模式配置方案

报错原因

部署时报400参数错误,核心是两个配置缺失/错误:

  • 自定义规则缺少必填的action字段,WAF要求每条规则必须明确定义匹配语句后的执行动作
  • 规则语句未实现「不匹配IP集」的NOT逻辑,不符合控制台配置的等价要求

正确配置逻辑

要完全匹配你描述的控制台操作(自定义规则 + NOT匹配IP集)实现IP白名单,配置逻辑为:

  • WebACL默认动作保持allow:未命中规则的请求默认放行
  • 自定义规则用notStatement包裹IP集引用:判断请求来源IP不在指定白名单IP集内
  • 规则动作设为block:命中上述判断的请求直接拦截,最终只有IP在白名单内的请求可以正常访问

可直接运行的完整代码

import { aws_wafv2 as wafv2 } from 'aws-cdk-lib';

// 创建IP白名单集
const cfnIPSet = new wafv2.CfnIPSet(this, 'MyCfnIPSet', {
  addresses: ['23.186.72.133/32','143.32.1.45/32'],
  ipAddressVersion: 'IPV4',
  scope: 'REGIONAL',
  description: '业务IP白名单集',
  name: `ss-${targetEnv}-ipset`,
});

// 定义白名单拦截规则
const ipWhitelistRule: wafv2.CfnWebACL.RuleProperty = {
  name: 'ip-whitelist-block',
  priority: 0,
  // 命中规则(IP不在白名单内)直接拦截
  action: {
    block: {}
  },
  statement: {
    // NOT逻辑,对应控制台"doesn't match the statement(NOT)"选项
    notStatement: {
      statement: {
        ipSetReferenceStatement: {
          arn: cfnIPSet.attrArn // 绑定已创建的IP集
        }
      }
    }
  },
  visibilityConfig: {
    cloudWatchMetricsEnabled: false,
    metricName: 'ipWhitelistBlockMetric',
    sampledRequestsEnabled: false,
  }
}

const wafacl = new wafv2.CfnWebACL(this, "MyCfnWebAll",{
  name: `ee-${targetEnv}-waf`,
  scope: "REGIONAL",
  // 默认动作:未命中规则的请求放行,即白名单IP可正常访问
  defaultAction: {
    allow:{
      customRequestHandling: {
        insertHeaders: [{
          name: 'my_allow_name',
          value: 'my_allow_value',
        }],
      },
    }
  },
  rules: [ipWhitelistRule],
  visibilityConfig:{
    cloudWatchMetricsEnabled: false,
    metricName: 'wafAclMetric',
    sampledRequestsEnabled: false
  }
});

// 关联负载均衡
new wafv2.CfnWebACLAssociation(this, 'WebACLAssociation', {
  webAclArn: wafacl.attrArn,
  resourceArn: lb.loadBalancerArn
})

配置说明:上述代码的执行逻辑和你在控制台手动配置的效果完全一致,部署后只有IP地址属于你配置的cfnIPSet地址段的请求可以访问关联的LoadBalancer,其余来源请求会被WAF直接拦截。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:24:19