这个错误通常发生在使用 AWS CDK 部署 WebACLs 和 RuleGroups 时。错误表示 MANAGED_RULE_GROUP_CONFIG 参数没有正确设置。解决方法是通过代码设置 MANAGED_RULE_GROUP_CONFIG 参数。以下是一个示例的 TypeScript 代码,可以作为参考:
import * as cdk from 'aws-cdk-lib';
import * as wafv2 from 'aws-cdk-lib/aws-wafv2';
const app = new cdk.App();
const stack = new cdk.Stack(app, 'MyStack');
const ruleGroupArn = 'arn:aws:wafv2:us-east-1:111122223333:regional/rulegroup/managed-rule-group/ABC123XYZ456';
const managedRuleGroupStatement = {
name: 'AWSManagedRulesCommonRuleSet',
priority: 100,
statement: {
managedRuleGroupStatement: {
name: 'AWSManagedRulesCommonRuleSet',
vendorName: 'AWS',
excludedRules: [],
scopeDownStatement: {},
firewalls: [],
managedRuleGroupArn: ruleGroupArn,
},
},
};
const webAcl = new wafv2.CfnWebACL(stack, 'MyWebACL', {
defaultAction: { block: {} },
scope: 'REGIONAL',
visibilityConfig: {
cloudWatchMetricsEnabled: true,
metricName: 'MyWebACLMetric',
sampledRequestsEnabled: true,
},
rules: [managedRuleGroupStatement],
});
app.synth();
在这个示例中,我们通过设置 MANAGED_RULE_GROUP_CONFIG 参数中的 managedRuleGroupStatement 对象来设置 RuleGroup。这个设置可以在 WebACL 中的 rules 数组中,像这样:
rules: [managedRuleGroupStatement]
这将为 WebACL 添加一个规则,使它可以使用指定的 RuleGroup。注意,这个规则会覆盖默认的规则。具体来说,我们使用 value 为 managedRuleGroupStatement 的 statement 段。同时,managedRuleGroup