AWS CDK WAF添加多Statement规则时报STATEMENT字段值错误如何解决
问题原因
该报错由AWS WAF v2的CloudFormation属性命名不规范导致:
- 你使用的是CDK L1级WAFv2构造(直接映射CloudFormation资源),这类构造要求所有Statement相关字段、资源属性使用首字母大写的驼峰命名格式
- 你当前配置中使用的小写开头字段
orStatement、iPSetReferenceStatement、statements等无法被CloudFormation识别,系统判定Statement字段没有传入有效的单一声明,因此抛出“需要恰好一个值”的400错误。
解决方法
将规则配置中所有相关字段的首字母改为大写即可,修改后的参考配置如下:
{ 'name': 'ruleName', 'priority': 3, 'statement': { 'OrStatement': { 'Statements': [ { 'IpSetReferenceStatement': { 'Arn': 'arn:myARN' } }, { 'IpSetReferenceStatement': { 'Arn': 'arn:myARN' } } ] } }, 'action': { 'Allow': {} }, 'visibilityConfig': { 'SampledRequestsEnabled': True, 'CloudWatchMetricsEnabled': True, 'MetricName': 'ruleName' } }
额外提示:如果使用CDK L2级WAFv2构造,直接调用官方封装的aws_cdk.aws_wafv2.OrStatement、aws_cdk.aws_wafv2.IpSetReferenceStatement等类生成规则配置,可自动规避命名错误问题。
内容的提问来源于stack exchange,提问作者hightest
相关产品推荐
相关产品推荐

