@gammarers/aws-waf-ip-rate-limit-rule
Version:
This is an AWS CDK Rate Limit Rule on WAF V2.
39 lines • 5.88 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WAFIPRateLimitRule = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
class WAFIPRateLimitRule {
constructor(props) {
this.props = props;
}
blockRule(config) {
return {
name: config.ruleName || 'block-rate-limit-rule',
priority: config.priority,
action: {
block: {
// customResponse: {
// CustomResponseBodyKey: 'ip-restrict',
// ResponseCode: 403,
// },
},
},
visibilityConfig: {
cloudWatchMetricsEnabled: true,
metricName: config.cloudWatchMetricsName || 'BlockRateLimitRuleMetric',
sampledRequestsEnabled: true,
},
statement: {
rateBasedStatement: {
aggregateKeyType: 'IP',
limit: this.props.rateLimit,
},
},
};
}
}
exports.WAFIPRateLimitRule = WAFIPRateLimitRule;
_a = JSII_RTTI_SYMBOL_1;
WAFIPRateLimitRule[_a] = { fqn: "@gammarers/aws-waf-ip-rate-limit-rule.WAFIPRateLimitRule", version: "2.0.35" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFZQSxNQUFhLGtCQUFrQjtJQUU3QixZQUFvQixLQUE4QjtRQUE5QixVQUFLLEdBQUwsS0FBSyxDQUF5QjtJQUNsRCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWtCO1FBQzFCLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSx1QkFBdUI7WUFDaEQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUU7Z0JBQ0wscUJBQXFCO2dCQUNyQiwyQ0FBMkM7Z0JBQzNDLHdCQUF3QjtnQkFDeEIsTUFBTTtpQkFDUDthQUNGO1lBQ0QsZ0JBQWdCLEVBQUU7Z0JBQ2hCLHdCQUF3QixFQUFFLElBQUk7Z0JBQzlCLFVBQVUsRUFBRSxNQUFNLENBQUMscUJBQXFCLElBQUksMEJBQTBCO2dCQUN0RSxzQkFBc0IsRUFBRSxJQUFJO2FBQzdCO1lBQ0QsU0FBUyxFQUFFO2dCQUNULGtCQUFrQixFQUFFO29CQUNsQixnQkFBZ0IsRUFBRSxJQUFJO29CQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2lCQUM1QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBN0JILGdEQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHdhZnYyIGZyb20gJ2F3cy1jZGstbGliL2F3cy13YWZ2Mic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUNvbmZpZyB7XG4gIHJlYWRvbmx5IHByaW9yaXR5OiBudW1iZXI7XG4gIHJlYWRvbmx5IHJ1bGVOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBjbG91ZFdhdGNoTWV0cmljc05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV0FGSVBSYXRlTGltaXRSdWxlUHJvcHMge1xuICByZWFkb25seSByYXRlTGltaXQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFdBRklQUmF0ZUxpbWl0UnVsZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm9wczogV0FGSVBSYXRlTGltaXRSdWxlUHJvcHMpIHtcbiAgfVxuXG4gIGJsb2NrUnVsZShjb25maWc6IFJ1bGVDb25maWcpOiB3YWZ2Mi5DZm5XZWJBQ0wuUnVsZVByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogY29uZmlnLnJ1bGVOYW1lIHx8ICdibG9jay1yYXRlLWxpbWl0LXJ1bGUnLFxuICAgICAgcHJpb3JpdHk6IGNvbmZpZy5wcmlvcml0eSxcbiAgICAgIGFjdGlvbjoge1xuICAgICAgICBibG9jazoge1xuICAgICAgICAgIC8vICBjdXN0b21SZXNwb25zZToge1xuICAgICAgICAgIC8vICAgIEN1c3RvbVJlc3BvbnNlQm9keUtleTogJ2lwLXJlc3RyaWN0JyxcbiAgICAgICAgICAvLyAgICBSZXNwb25zZUNvZGU6IDQwMyxcbiAgICAgICAgICAvLyAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgbWV0cmljTmFtZTogY29uZmlnLmNsb3VkV2F0Y2hNZXRyaWNzTmFtZSB8fCAnQmxvY2tSYXRlTGltaXRSdWxlTWV0cmljJyxcbiAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzdGF0ZW1lbnQ6IHtcbiAgICAgICAgcmF0ZUJhc2VkU3RhdGVtZW50OiB7XG4gICAgICAgICAgYWdncmVnYXRlS2V5VHlwZTogJ0lQJyxcbiAgICAgICAgICBsaW1pdDogdGhpcy5wcm9wcy5yYXRlTGltaXQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLy9leHBvcnQgY2xhc3MgV2FmSXBSYXRlTGltaXRSdWxlR3JvdXAgZXh0ZW5kcyB3YWYuQ2ZuUnVsZUdyb3VwIHtcbi8vICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2FmSXBSYXRlTGltaXRSdWxlR3JvdXBQcm9wcykge1xuLy8gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4vLyAgICAgIG5hbWU6IHByb3BzPy5uYW1lLFxuLy8gICAgICBkZXNjcmlwdGlvbjogJ3JhdGUgbGltaXQgcnVsZSBncm91cCcsXG4vLyAgICAgIHNjb3BlOiAoKCk6IHN0cmluZyA9PiB7XG4vLyAgICAgICAgc3dpdGNoIChwcm9wcy5zY29wZSkge1xuLy8gICAgICAgICAgY2FzZSBTY29wZS5HTE9CQUw6XG4vLyAgICAgICAgICAgIHJldHVybiAnQ0xPVURGUk9OVCc7XG4vLyAgICAgICAgICBjYXNlIFNjb3BlLlJFR0lPTkFMOlxuLy8gICAgICAgICAgICByZXR1cm4gJ1JFR0lPTkFMJztcbi8vICAgICAgICB9XG4vLyAgICAgIH0pKCksXG4vLyAgICAgIGNhcGFjaXR5OiAxMCxcbi8vICAgICAgY3VzdG9tUmVzcG9uc2VCb2RpZXM6IHtcbi8vICAgICAgICBbJ2lwLXJlc3RyaWN0J106IHtcbi8vICAgICAgICAgIGNvbnRlbnRUeXBlOiAnVEVYVF9QTEFJTicsXG4vLyAgICAgICAgICBjb250ZW50OiAnU29ycnksIFlvdSBBcmUgTm90IEFsbG93ZWQgdG8gQWNjZXNzIFRoaXMgU2VydmljZS4nLFxuLy8gICAgICAgIH0sXG4vLyAgICAgIH0sXG4vLyAgICAgIHJ1bGVzOiBbXG4vLyAgICAgICAge1xuLy8gICAgICAgICAgcHJpb3JpdHk6IDEwLFxuLy8gICAgICAgICAgbmFtZTogJ3JhdGUtbGltaXQtcnVsZScsXG4vLyAgICAgICAgICBhY3Rpb246IHtcbi8vICAgICAgICAgICAgYmxvY2s6IHtcbi8vICAgICAgICAgICAgICBDdXN0b21SZXNwb25zZToge1xuLy8gICAgICAgICAgICAgICAgQ3VzdG9tUmVzcG9uc2VCb2R5S2V5OiAnaXAtcmVzdHJpY3QnLFxuLy8gICAgICAgICAgICAgICAgUmVzcG9uc2VDb2RlOiA0MDMsXG4vLyAgICAgICAgICAgICAgfSxcbi8vICAgICAgICAgICAgfSxcbi8vICAgICAgICAgIH0sXG4vLyAgICAgICAgICB2aXNpYmlsaXR5Q29uZmlnOiB7XG4vLyAgICAgICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbi8vICAgICAgICAgICAgc2FtcGxlZFJlcXVlc3RzRW5hYmxlZDogdHJ1ZSxcbi8vICAgICAgICAgICAgbWV0cmljTmFtZTogJ1dhZlJhdGVMaW1pdFJ1bGUnLFxuLy8gICAgICAgICAgfSxcbi8vICAgICAgICAgIHN0YXRlbWVudDoge1xuLy8gICAgICAgICAgICByYXRlQmFzZWRTdGF0ZW1lbnQ6IHtcbi8vICAgICAgICAgICAgICBhZ2dyZWdhdGVLZXlUeXBlOiAnSVAnLFxuLy8gICAgICAgICAgICAgIGxpbWl0OiBwcm9wcz8ucmF0ZUxpbWl0Q291bnQgPz8gMTAwMCxcbi8vICAgICAgICAgICAgfSxcbi8vICAgICAgICAgIH0sXG4vLyAgICAgICAgfSxcbi8vICAgICAgXSxcbi8vICAgICAgdmlzaWJpbGl0eUNvbmZpZzoge1xuLy8gICAgICAgIGNsb3VkV2F0Y2hNZXRyaWNzRW5hYmxlZDogdHJ1ZSxcbi8vICAgICAgICBzYW1wbGVkUmVxdWVzdHNFbmFibGVkOiB0cnVlLFxuLy8gICAgICAgIG1ldHJpY05hbWU6ICdSYXRlTGltaXRSdWxlJyxcbi8vICAgICAgfSxcbi8vICAgICAgdGFnczogW10sXG4vLyAgICB9KTtcbi8vICB9XG4vL30iXX0=