UNPKG

@aws-solutions-constructs/core

Version:
118 lines 13.5 kB
"use strict"; /** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance * with the License. A copy of the License is located at * * http://www.apache.org/licenses/LICENSE-2.0 * * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * and limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); const aws_cdk_lib_1 = require("aws-cdk-lib"); const defaults = require("../"); const assertions_1 = require("aws-cdk-lib/assertions"); const ec2 = require("aws-cdk-lib/aws-ec2"); // -------------------------------------------------------------- // Test minimal deployment with no properties // -------------------------------------------------------------- test("Test minimal deployment with no properties", () => { // Stack const stack = new aws_cdk_lib_1.Stack(); const vpc = new ec2.Vpc(stack, "test-vpc", {}); // Helper declaration defaults.buildSecurityGroup(stack, "primary-queue", { vpc, allowAllOutbound: true, }, [], []); assertions_1.Template.fromStack(stack).hasResourceProperties("AWS::EC2::SecurityGroup", { SecurityGroupEgress: [ { CidrIp: "0.0.0.0/0", Description: "Allow all outbound traffic by default", IpProtocol: "-1", }, ], }); }); test("Test deployment with ingress rules", () => { // Stack const stack = new aws_cdk_lib_1.Stack(); const vpc = new ec2.Vpc(stack, "test-vpc", {}); // Helper declaration defaults.buildSecurityGroup(stack, "primary-queue", { vpc, allowAllOutbound: true, }, [{ peer: ec2.Peer.ipv4("1.1.1.1/16"), connection: ec2.Port.tcp(100) }], []); assertions_1.Template.fromStack(stack).hasResourceProperties("AWS::EC2::SecurityGroup", { SecurityGroupIngress: [ { CidrIp: "1.1.1.1/16", Description: "from 1.1.1.1/16:100", FromPort: 100, IpProtocol: "tcp", ToPort: 100, }, ], }); }); test("Test deployment with egress rule", () => { // Stack const stack = new aws_cdk_lib_1.Stack(); const vpc = new ec2.Vpc(stack, "test-vpc", {}); // Helper declaration defaults.buildSecurityGroup(stack, "primary-queue", { vpc, allowAllOutbound: false, }, [], [ { peer: ec2.Peer.ipv4("1.1.1.1/16"), connection: ec2.Port.tcp(100) }, { peer: ec2.Peer.ipv4("2.2.2.2/24"), connection: ec2.Port.tcp(200) }, ]); assertions_1.Template.fromStack(stack).hasResourceProperties("AWS::EC2::SecurityGroup", { SecurityGroupEgress: [ { CidrIp: "1.1.1.1/16", Description: "from 1.1.1.1/16:100", FromPort: 100, IpProtocol: "tcp", ToPort: 100, }, { CidrIp: "2.2.2.2/24", Description: "from 2.2.2.2/24:200", FromPort: 200, IpProtocol: "tcp", ToPort: 200, }, ], }); }); test("Test self referencing security group", () => { const testPort = 33333; // Stack const stack = new aws_cdk_lib_1.Stack(); const vpc = new ec2.Vpc(stack, "test-vpc", {}); // Helper declaration defaults.CreateSelfReferencingSecurityGroup(stack, "testsg", vpc, testPort); assertions_1.Template.fromStack(stack).hasResourceProperties("AWS::EC2::SecurityGroupIngress", { IpProtocol: "TCP", FromPort: testPort, ToPort: testPort, GroupId: { "Fn::GetAtt": [ "testsgcachesg72A723EA", "GroupId" ] }, SourceSecurityGroupId: { "Fn::GetAtt": [ "testsgcachesg72A723EA", "GroupId" ] }, }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtaGVscGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWN1cml0eS1ncm91cC1oZWxwZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsNkNBQW9DO0FBQ3BDLGdDQUFnQztBQUNoQyx1REFBa0Q7QUFDbEQsMkNBQTJDO0FBRTNDLGlFQUFpRTtBQUNqRSw2Q0FBNkM7QUFDN0MsaUVBQWlFO0FBQ2pFLElBQUksQ0FBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7SUFDdEQsUUFBUTtJQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssRUFBRSxDQUFDO0lBRTFCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLHFCQUFxQjtJQUNyQixRQUFRLENBQUMsa0JBQWtCLENBQ3pCLEtBQUssRUFDTCxlQUFlLEVBQ2Y7UUFDRSxHQUFHO1FBQ0gsZ0JBQWdCLEVBQUUsSUFBSTtLQUN2QixFQUNELEVBQUUsRUFDRixFQUFFLENBQ0gsQ0FBQztJQUVGLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixFQUFFO1FBQ3pFLG1CQUFtQixFQUFFO1lBQ25CO2dCQUNFLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixXQUFXLEVBQUUsdUNBQXVDO2dCQUNwRCxVQUFVLEVBQUUsSUFBSTthQUNqQjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFO0lBQzlDLFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUUxQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUs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LFFBQVEsRUFBRSxRQUFRO1FBQ2xCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE9BQU8sRUFBRTtZQUNQLFlBQVksRUFBRTtnQkFDWix1QkFBdUI7Z0JBQ3ZCLFNBQVM7YUFDVjtTQUNGO1FBQ0QscUJBQXFCLEVBQUU7WUFDckIsWUFBWSxFQUFFO2dCQUNaLHVCQUF1QjtnQkFDdkIsU0FBUzthQUNWO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFFTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi4vXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUZXN0IG1pbmltYWwgZGVwbG95bWVudCB3aXRoIG5vIHByb3BlcnRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG50ZXN0KFwiVGVzdCBtaW5pbWFsIGRlcGxveW1lbnQgd2l0aCBubyBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCB2cGMgPSBuZXcgZWMyLlZwYyhzdGFjaywgXCJ0ZXN0LXZwY1wiLCB7fSk7XG5cbiAgLy8gSGVscGVyIGRlY2xhcmF0aW9uXG4gIGRlZmF1bHRzLmJ1aWxkU2VjdXJpdHlHcm91cChcbiAgICBzdGFjayxcbiAgICBcInByaW1hcnktcXVldWVcIixcbiAgICB7XG4gICAgICB2cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0sXG4gICAgW10sXG4gICAgW11cbiAgKTtcblxuICBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6RUMyOjpTZWN1cml0eUdyb3VwXCIsIHtcbiAgICBTZWN1cml0eUdyb3VwRWdyZXNzOiBbXG4gICAgICB7XG4gICAgICAgIENpZHJJcDogXCIwLjAuMC4wLzBcIixcbiAgICAgICAgRGVzY3JpcHRpb246IFwiQWxsb3cgYWxsIG91dGJvdW5kIHRyYWZmaWMgYnkgZGVmYXVsdFwiLFxuICAgICAgICBJcFByb3RvY29sOiBcIi0xXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xufSk7XG5cbnRlc3QoXCJUZXN0IGRlcGxveW1lbnQgd2l0aCBpbmdyZXNzIHJ1bGVzXCIsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCB2cGMgPSBuZXcgZWMyLlZwYyhzdGFjaywgXCJ0ZXN0LXZwY1wiLCB7fSk7XG5cbiAgLy8gSGVscGVyIGRlY2xhcmF0aW9uXG4gIGRlZmF1bHRzLmJ1aWxkU2VjdXJpdHlHcm91cChcbiAgICBzdGFjayxcbiAgICBcInByaW1hcnktcXVldWVcIixcbiAgICB7XG4gICAgICB2cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0sXG4gICAgW3sgcGVlcjogZWMyLlBlZXIuaXB2NChcIjEuMS4xLjEvMTZcIiksIGNvbm5lY3Rpb246IGVjMi5Qb3J0LnRjcCgxMDApIH1dLFxuICAgIFtdXG4gICk7XG5cbiAgVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkVDMjo6U2VjdXJpdHlHcm91cFwiLCB7XG4gICAgU2VjdXJpdHlHcm91cEluZ3Jlc3M6IFtcbiAgICAgIHtcbiAgICAgICAgQ2lkcklwOiBcIjEuMS4xLjEvMTZcIixcbiAgICAgICAgRGVzY3JpcHRpb246IFwiZnJvbSAxLjEuMS4xLzE2OjEwMFwiLFxuICAgICAgICBGcm9tUG9ydDogMTAwLFxuICAgICAgICBJcFByb3RvY29sOiBcInRjcFwiLFxuICAgICAgICBUb1BvcnQ6IDEwMCxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSk7XG59KTtcblxudGVzdChcIlRlc3QgZGVwbG95bWVudCB3aXRoIGVncmVzcyBydWxlXCIsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCB2cGMgPSBuZXcgZWMyLlZwYyhzdGFjaywgXCJ0ZXN0LXZwY1wiLCB7fSk7XG5cbiAgLy8gSGVscGVyIGRlY2xhcmF0aW9uXG4gIGRlZmF1bHRzLmJ1aWxkU2VjdXJpdHlHcm91cChcbiAgICBzdGFjayxcbiAgICBcInByaW1hcnktcXVldWVcIixcbiAgICB7XG4gICAgICB2cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbiAgICB9LFxuICAgIFtdLFxuICAgIFtcbiAgICAgIHsgcGVlcjogZWMyLlBlZXIuaXB2NChcIjEuMS4xLjEvMTZcIiksIGNvbm5lY3Rpb246IGVjMi5Qb3J0LnRjcCgxMDApIH0sXG4gICAgICB7IHBlZXI6IGVjMi5QZWVyLmlwdjQoXCIyLjIuMi4yLzI0XCIpLCBjb25uZWN0aW9uOiBlYzIuUG9ydC50Y3AoMjAwKSB9LFxuICAgIF1cbiAgKTtcblxuICBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6RUMyOjpTZWN1cml0eUdyb3VwXCIsIHtcbiAgICBTZWN1cml0eUdyb3VwRWdyZXNzOiBbXG4gICAgICB7XG4gICAgICAgIENpZHJJcDogXCIxLjEuMS4xLzE2XCIsXG4gICAgICAgIERlc2NyaXB0aW9uOiBcImZyb20gMS4xLjEuMS8xNjoxMDBcIixcbiAgICAgICAgRnJvbVBvcnQ6IDEwMCxcbiAgICAgICAgSXBQcm90b2NvbDogXCJ0Y3BcIixcbiAgICAgICAgVG9Qb3J0OiAxMDAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBDaWRySXA6IFwiMi4yLjIuMi8yNFwiLFxuICAgICAgICBEZXNjcmlwdGlvbjogXCJmcm9tIDIuMi4yLjIvMjQ6MjAwXCIsXG4gICAgICAgIEZyb21Qb3J0OiAyMDAsXG4gICAgICAgIElwUHJvdG9jb2w6IFwidGNwXCIsXG4gICAgICAgIFRvUG9ydDogMjAwLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcbn0pO1xuXG50ZXN0KFwiVGVzdCBzZWxmIHJlZmVyZW5jaW5nIHNlY3VyaXR5IGdyb3VwXCIsICgpID0+IHtcbiAgY29uc3QgdGVzdFBvcnQgPSAzMzMzMztcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCB2cGMgPSBuZXcgZWMyLlZwYyhzdGFjaywgXCJ0ZXN0LXZwY1wiLCB7fSk7XG5cbiAgLy8gSGVscGVyIGRlY2xhcmF0aW9uXG4gIGRlZmF1bHRzLkNyZWF0ZVNlbGZSZWZlcmVuY2luZ1NlY3VyaXR5R3JvdXAoXG4gICAgc3RhY2ssXG4gICAgXCJ0ZXN0c2dcIixcbiAgICB2cGMsXG4gICAgdGVzdFBvcnQsXG4gICk7XG5cbiAgVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OkVDMjo6U2VjdXJpdHlHcm91cEluZ3Jlc3NcIiwge1xuICAgIElwUHJvdG9jb2w6IFwiVENQXCIsXG4gICAgRnJvbVBvcnQ6IHRlc3RQb3J0LFxuICAgIFRvUG9ydDogdGVzdFBvcnQsXG4gICAgR3JvdXBJZDoge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgXCJ0ZXN0c2djYWNoZXNnNzJBNzIzRUFcIixcbiAgICAgICAgXCJHcm91cElkXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIFNvdXJjZVNlY3VyaXR5R3JvdXBJZDoge1xuICAgICAgXCJGbjo6R2V0QXR0XCI6IFtcbiAgICAgICAgXCJ0ZXN0c2djYWNoZXNnNzJBNzIzRUFcIixcbiAgICAgICAgXCJHcm91cElkXCJcbiAgICAgIF1cbiAgICB9LFxuICB9KTtcblxufSk7XG4iXX0=