@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
JavaScript
;
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=