@gammarers/aws-waf-geo-restrict-rule
Version:
This is an AWS CDK Geo Restric Rule on WAF V2
52 lines • 5.09 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WAFGeoRestrictRule = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
class WAFGeoRestrictRule {
constructor(props) {
this.props = props;
}
allowRule(config) {
return {
name: config.ruleName || 'allow-geo-rule',
priority: config.priority,
action: { allow: {} },
statement: {
geoMatchStatement: {
countryCodes: this.props.allowCountries,
},
},
visibilityConfig: {
cloudWatchMetricsEnabled: true,
metricName: config.cloudWatchMetricsName || 'AllowGeoMetric',
sampledRequestsEnabled: true,
},
};
}
blockRule(config) {
return {
name: config.ruleName || 'block-geo-rule',
priority: config.priority,
action: { block: {} },
statement: {
notStatement: {
statement: {
geoMatchStatement: {
countryCodes: this.props.allowCountries,
},
},
},
},
visibilityConfig: {
cloudWatchMetricsEnabled: true,
metricName: config.cloudWatchMetricsName || 'BlockGeoMetric',
sampledRequestsEnabled: true,
},
};
}
}
exports.WAFGeoRestrictRule = WAFGeoRestrictRule;
_a = JSII_RTTI_SYMBOL_1;
WAFGeoRestrictRule[_a] = { fqn: "@gammarers/aws-waf-geo-restrict-rule.WAFGeoRestrictRule", version: "2.0.37" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFZQSxNQUFhLGtCQUFrQjtJQUU3QixZQUFvQixLQUE4QjtRQUE5QixVQUFLLEdBQUwsS0FBSyxDQUF5QjtJQUFHLENBQUM7SUFFdEQsU0FBUyxDQUFDLE1BQWtCO1FBQzFCLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxnQkFBZ0I7WUFDekMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDckIsU0FBUyxFQUFFO2dCQUNULGlCQUFpQixFQUFFO29CQUNqQixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO2lCQUN4QzthQUNGO1lBQ0QsZ0JBQWdCLEVBQUU7Z0JBQ2hCLHdCQUF3QixFQUFFLElBQUk7Z0JBQzlCLFVBQVUsRUFBRSxNQUFNLENBQUMscUJBQXFCLElBQUksZ0JBQWdCO2dCQUM1RCxzQkFBc0IsRUFBRSxJQUFJO2FBQzdCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBa0I7UUFDMUIsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLGdCQUFnQjtZQUN6QyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNyQixTQUFTLEVBQUU7Z0JBQ1QsWUFBWSxFQUFFO29CQUNaLFNBQVMsRUFBRTt3QkFDVCxpQkFBaUIsRUFBRTs0QkFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYzt5QkFDeEM7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELGdCQUFnQixFQUFFO2dCQUNoQix3QkFBd0IsRUFBRSxJQUFJO2dCQUM5QixVQUFVLEVBQUUsTUFBTSxDQUFDLHFCQUFxQixJQUFJLGdCQUFnQjtnQkFDNUQsc0JBQXNCLEVBQUUsSUFBSTthQUM3QjtTQUNGLENBQUM7SUFDSixDQUFDOztBQTFDSCxnREEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB3YWZ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtd2FmdjInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVDb25maWcge1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuICByZWFkb25seSBydWxlTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgY2xvdWRXYXRjaE1ldHJpY3NOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdBRkdlb1Jlc3RyaWN0UnVsZVByb3BzIHtcbiAgcmVhZG9ubHkgYWxsb3dDb3VudHJpZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgV0FGR2VvUmVzdHJpY3RSdWxlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByb3BzOiBXQUZHZW9SZXN0cmljdFJ1bGVQcm9wcykge31cblxuICBhbGxvd1J1bGUoY29uZmlnOiBSdWxlQ29uZmlnKTogd2FmdjIuQ2ZuV2ViQUNMLlJ1bGVQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGNvbmZpZy5ydWxlTmFtZSB8fCAnYWxsb3ctZ2VvLXJ1bGUnLFxuICAgICAgcHJpb3JpdHk6IGNvbmZpZy5wcmlvcml0eSxcbiAgICAgIGFjdGlvbjogeyBhbGxvdzoge30gfSxcbiAgICAgIHN0YXRlbWVudDoge1xuICAgICAgICBnZW9NYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgIGNvdW50cnlDb2RlczogdGhpcy5wcm9wcy5hbGxvd0NvdW50cmllcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogY29uZmlnLmNsb3VkV2F0Y2hNZXRyaWNzTmFtZSB8fCAnQWxsb3dHZW9NZXRyaWMnLFxuICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYmxvY2tSdWxlKGNvbmZpZzogUnVsZUNvbmZpZyk6IHdhZnYyLkNmbldlYkFDTC5SdWxlUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBjb25maWcucnVsZU5hbWUgfHwgJ2Jsb2NrLWdlby1ydWxlJyxcbiAgICAgIHByaW9yaXR5OiBjb25maWcucHJpb3JpdHksXG4gICAgICBhY3Rpb246IHsgYmxvY2s6IHt9IH0sXG4gICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgbm90U3RhdGVtZW50OiB7XG4gICAgICAgICAgc3RhdGVtZW50OiB7XG4gICAgICAgICAgICBnZW9NYXRjaFN0YXRlbWVudDoge1xuICAgICAgICAgICAgICBjb3VudHJ5Q29kZXM6IHRoaXMucHJvcHMuYWxsb3dDb3VudHJpZXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuICAgICAgICBjbG91ZFdhdGNoTWV0cmljc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIG1ldHJpY05hbWU6IGNvbmZpZy5jbG91ZFdhdGNoTWV0cmljc05hbWUgfHwgJ0Jsb2NrR2VvTWV0cmljJyxcbiAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19