【以下的问题经过翻译处理】 使用WAFV2时,调用GetWebACL时会出现CustomResponse配置丢失的情况。如果随后将此配置用于调用UpdateWebACL,则CustomResponse将丢失。
这是一个严重的错误,可能会导致未检测到的配置丢失,因为两个API调用的响应都是成功的。
API文档说明:
要修改Web ACL,请执行以下操作:
1)通过调用GetWebACL检索它
2)根据需要更新其设置
3)将完整的Web ACL规范提供给UpdateWebACL
例如,具有以下配置的WAFV2规则:
{
"Name":"RateLimit-3000",
"Priority":8,
"Statement":{
"RateBasedStatement":{
"Limit":3000,
"AggregateKeyType":"IP"
}
},
"Action":{
"Block":{
"CustomResponse":{
"ResponseCode":429,
"CustomResponseBodyKey":"TooManyRequests"
}
}
},
"VisibilityConfig":{
"SampledRequestsEnabled":true,
"CloudWatchMetricsEnabled":true,
"MetricName":"RateLimit-3000"
}
}
通过调用GetWebACL的API调用返回:
{
"Name":"RateLimit-3000",
"Priority":8,
"VisibilityConfig":{
"MetricName":"RateLimit-3000",
"CloudWatchMetricsEnabled":true,
"SampledRequestsEnabled":true
},
"Action":{
"Block": { }
},
"Statement":{
"RateBasedStatement":{
"AggregateKeyType":"IP",
"Limit":3000
}
}
}
如果将该配置传递回UpdateWebACL的API调用,则Block Action中的CustomResponse将被删除。
这是一个已知的错误,还是有其他正确更新WebACL而不会丢失配置的方法?