UNPKG

@richkang/cdk-construct-network-firewall-textfile-rules

Version:

A simple AWS VPC Firewall with one stateless rule and one stateful rule to meet the AWS Config Network Firewall Conformance.

36 lines 4.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const cdk = require("aws-cdk-lib"); const assertions_1 = require("aws-cdk-lib/assertions"); const fw = require("../lib/NetworkFirewallDistributedConstruct"); test('Firewall Created', () => { const app = new cdk.App(); const stack = new cdk.Stack(app, "TestStack"); const vpc = new cdk.aws_ec2.Vpc(stack, "vpc", { ipAddresses: cdk.aws_ec2.IpAddresses.cidr("10.0.0.0/24") }); // WHEN new fw.NetworkFirewallDistributedConstruct(stack, 'MyTestConstruct', { vpc: vpc, subnetList: [ new cdk.aws_ec2.Subnet(stack, "subnet", { vpcId: vpc.vpcId, cidrBlock: "10.0.0.0/25", availabilityZone: vpc.availabilityZones[0] }) ] }) .addStatefulRules(fw.NetworkFirewallRulesBuilder.statefulRulesSourcePropertyFromFile(stack, ["./test/rules.txt"])) .buildFirewall(); ; // THEN const template = assertions_1.Template.fromStack(stack); template.hasResourceProperties('AWS::NetworkFirewall::RuleGroup', { RuleGroup: { RulesSource: { "RulesString": assertions_1.Match.anyValue(), } } }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1maXJld2FsbC1kaXN0cmlidXRlZC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0d29yay1maXJld2FsbC1kaXN0cmlidXRlZC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQW1DO0FBQ25DLHVEQUF5RDtBQUN6RCxpRUFBaUU7QUFFakUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUM1QyxXQUFXLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztLQUN6RCxDQUFDLENBQUM7SUFDSCxPQUFPO0lBQ1AsSUFBSSxFQUFFLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1FBQ25FLEdBQUcsRUFBRSxHQUFHO1FBQ1IsVUFBVSxFQUFFO1lBQ1IsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUNwQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7Z0JBQ2hCLFNBQVMsRUFBRSxhQUFhO2dCQUN4QixnQkFBZ0IsRUFBRSxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2FBQzdDLENBQUM7U0FDTDtLQUNGLENBQUM7U0FDRCxnQkFBZ0IsQ0FDZixFQUFFLENBQUMsMkJBQTJCLENBQUMsbUNBQW1DLENBQUMsS0FBSyxFQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUMvRjtTQUNBLGFBQWEsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFDRCxPQUFPO0lBQ1AsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFM0MsUUFBUSxDQUFDLHFCQUFxQixDQUFDLGlDQUFpQyxFQUNoRTtRQUNFLFNBQVMsRUFBQztZQUNOLFdBQVcsRUFBQztnQkFDUixhQUFhLEVBQUUsa0JBQUssQ0FBQyxRQUFRLEVBQUU7YUFDbEM7U0FDSjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IE1hdGNoLCBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xuaW1wb3J0ICogYXMgZncgZnJvbSAnLi4vbGliL05ldHdvcmtGaXJld2FsbERpc3RyaWJ1dGVkQ29uc3RydWN0JztcblxudGVzdCgnRmlyZXdhbGwgQ3JlYXRlZCcsICgpID0+IHtcbiAgY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgY2RrLlN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gIGNvbnN0IHZwYyA9IG5ldyBjZGsuYXdzX2VjMi5WcGMoc3RhY2ssIFwidnBjXCIsIHtcbiAgICBpcEFkZHJlc3NlczogY2RrLmF3c19lYzIuSXBBZGRyZXNzZXMuY2lkcihcIjEwLjAuMC4wLzI0XCIpXG4gIH0pO1xuICAvLyBXSEVOXG4gIG5ldyBmdy5OZXR3b3JrRmlyZXdhbGxEaXN0cmlidXRlZENvbnN0cnVjdChzdGFjaywgJ015VGVzdENvbnN0cnVjdCcsIHtcbiAgICB2cGM6IHZwYyxcbiAgICBzdWJuZXRMaXN0OiBbXG4gICAgICAgIG5ldyBjZGsuYXdzX2VjMi5TdWJuZXQoc3RhY2ssIFwic3VibmV0XCIsIHtcbiAgICAgICAgICAgIHZwY0lkOiB2cGMudnBjSWQsXG4gICAgICAgICAgICBjaWRyQmxvY2s6IFwiMTAuMC4wLjAvMjVcIixcbiAgICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHZwYy5hdmFpbGFiaWxpdHlab25lc1swXVxuICAgICAgICB9KVxuICAgIF1cbiAgfSlcbiAgLmFkZFN0YXRlZnVsUnVsZXMoXG4gICAgZncuTmV0d29ya0ZpcmV3YWxsUnVsZXNCdWlsZGVyLnN0YXRlZnVsUnVsZXNTb3VyY2VQcm9wZXJ0eUZyb21GaWxlKHN0YWNrLFtcIi4vdGVzdC9ydWxlcy50eHRcIl0pICAgIFxuICApXG4gIC5idWlsZEZpcmV3YWxsKCk7XG4gIDtcbiAgLy8gVEhFTlxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6Ok5ldHdvcmtGaXJld2FsbDo6UnVsZUdyb3VwJywgXG4gIHtcbiAgICBSdWxlR3JvdXA6e1xuICAgICAgICBSdWxlc1NvdXJjZTp7XG4gICAgICAgICAgICBcIlJ1bGVzU3RyaW5nXCI6IE1hdGNoLmFueVZhbHVlKCksXG4gICAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=