AWS CDK导入CSV多IP到WAFv2 IPSet报格式错误如何解决?
问题原因
- 报错信息明确显示传入WAF的IP参数携带多余双引号,WAFv2的IPSet要求
addresses参数传入纯CIDR格式的字符串列表,不允许包含额外的引号、空白符等特殊字符 - 当前直接按行读取CSV的逻辑没有处理每行首尾的双引号,也没有过滤空行,多IP场景下就会触发非法参数报错
- 补充:你贴出的代码示例中
wafv2.CfnIPSet调用末尾缺少闭合右括号,实际运行时需要补全
解决步骤
- 修改CSV读取逻辑,对每行内容做格式化处理,参考代码如下:
with open('./test/test-ips.csv', 'r') as fin: ips = [] for line in fin.read().splitlines(): # 依次去除首尾空白字符、首尾双引号 processed_ip = line.strip().strip('"') # 过滤空行 if processed_ip: ips.append(processed_ip) # 调试可选:部署前打印确认处理后的IP格式是否符合要求 print("处理后的IP列表:", ips) ipset = wafv2.CfnIPSet( scope_=self, name='name', id='ipset', scope='REGIONAL', description='Block ips', addresses= ips, ip_address_version="IPV4" )
- 执行
cdk synth确认生成的CloudFormation模板中IPSet的addresses字段值都是无多余引号的纯CIDR格式,再执行cdk deploy即可正常部署。
内容的提问来源于stack exchange,提问作者hightest
相关产品推荐
相关产品推荐

