@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.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const cdk = require("aws-cdk-lib");
const assertions_1 = require("aws-cdk-lib/assertions");
const FirewallDistributedVpc = require("../lib/FirewallDistributedVpcConstruct");
// example test. To run these tests, uncomment this file along with the
// example resource in lib/index.ts
test('Firewall Created', () => {
const app = new cdk.App();
const stack = new cdk.Stack(app, "TestStack");
const vpc = new cdk.aws_ec2.Vpc(stack, "vpc", {
cidr: "10.0.0.0/24"
});
// WHEN
new FirewallDistributedVpc.FirewallDistributedVpc(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]
})
],
rulesFile: ["./test/rules.txt"]
});
// 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXdhbGwtZGlzdHJpYnV0ZWQtdnBjLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaXJld2FsbC1kaXN0cmlidXRlZC12cGMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFtQztBQUNuQyx1REFBeUQ7QUFDekQsaUZBQWlGO0FBRWpGLHVFQUF1RTtBQUN2RSxtQ0FBbUM7QUFDbkMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtRQUM1QyxJQUFJLEVBQUUsYUFBYTtLQUNwQixDQUFDLENBQUM7SUFDSCxPQUFPO0lBQ1AsSUFBSSxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7UUFDMUUsR0FBRyxFQUFFLEdBQUc7UUFDUixVQUFVLEVBQUU7WUFDUixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBQ3BDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztnQkFDaEIsU0FBUyxFQUFFLGFBQWE7Z0JBQ3hCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7YUFDN0MsQ0FBQztTQUNMO1FBQ0QsU0FBUyxFQUFFLENBQUMsa0JBQWtCLENBQUM7S0FDaEMsQ0FBQyxDQUFDO0lBQ0gsT0FBTztJQUNQLE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxpQ0FBaUMsRUFDaEU7UUFDRSxTQUFTLEVBQUM7WUFDTixXQUFXLEVBQUM7Z0JBQ1IsYUFBYSxFQUFFLGtCQUFLLENBQUMsUUFBUSxFQUFFO2FBQ2xDO1NBQ0o7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBNYXRjaCwgVGVtcGxhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcbmltcG9ydCAqIGFzIEZpcmV3YWxsRGlzdHJpYnV0ZWRWcGMgZnJvbSAnLi4vbGliL0ZpcmV3YWxsRGlzdHJpYnV0ZWRWcGNDb25zdHJ1Y3QnO1xuXG4vLyBleGFtcGxlIHRlc3QuIFRvIHJ1biB0aGVzZSB0ZXN0cywgdW5jb21tZW50IHRoaXMgZmlsZSBhbG9uZyB3aXRoIHRoZVxuLy8gZXhhbXBsZSByZXNvdXJjZSBpbiBsaWIvaW5kZXgudHNcbnRlc3QoJ0ZpcmV3YWxsIENyZWF0ZWQnLCAoKSA9PiB7XG4gIGNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhhcHAsIFwiVGVzdFN0YWNrXCIpO1xuICBjb25zdCB2cGMgPSBuZXcgY2RrLmF3c19lYzIuVnBjKHN0YWNrLCBcInZwY1wiLCB7XG4gICAgY2lkcjogXCIxMC4wLjAuMC8yNFwiXG4gIH0pO1xuICAvLyBXSEVOXG4gIG5ldyBGaXJld2FsbERpc3RyaWJ1dGVkVnBjLkZpcmV3YWxsRGlzdHJpYnV0ZWRWcGMoc3RhY2ssICdNeVRlc3RDb25zdHJ1Y3QnLCB7XG4gICAgdnBjOiB2cGMsXG4gICAgc3VibmV0TGlzdDogW1xuICAgICAgICBuZXcgY2RrLmF3c19lYzIuU3VibmV0KHN0YWNrLCBcInN1Ym5ldFwiLCB7XG4gICAgICAgICAgICB2cGNJZDogdnBjLnZwY0lkLFxuICAgICAgICAgICAgY2lkckJsb2NrOiBcIjEwLjAuMC4wLzI1XCIsXG4gICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lOiB2cGMuYXZhaWxhYmlsaXR5Wm9uZXNbMF1cbiAgICAgICAgfSlcbiAgICBdLFxuICAgIHJ1bGVzRmlsZTogW1wiLi90ZXN0L3J1bGVzLnR4dFwiXVxuICB9KTtcbiAgLy8gVEhFTlxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6Ok5ldHdvcmtGaXJld2FsbDo6UnVsZUdyb3VwJywgXG4gIHtcbiAgICBSdWxlR3JvdXA6e1xuICAgICAgICBSdWxlc1NvdXJjZTp7XG4gICAgICAgICAgICBcIlJ1bGVzU3RyaW5nXCI6IE1hdGNoLmFueVZhbHVlKCksXG4gICAgICAgIH1cbiAgICB9XG4gIH0pO1xufSk7XG4iXX0=