UNPKG

@felipevelascohz/endpoints

Version:
58 lines 8.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Endpoints = void 0; const ec2 = require("aws-cdk-lib/aws-ec2"); const cdk = require("aws-cdk-lib"); class Endpoints extends cdk.Stack { constructor(scope, id, config, props) { super(scope, id, props); if (typeof config.vpc === 'string') { var vpc = ec2.Vpc.fromLookup(this, 'ImportVpc', { isDefault: false, vpcId: config.vpc }); } else { var vpc = config.vpc; } ; const { az = [ process.env.CDK_DEFAULT_REGION + 'a', process.env.CDK_DEFAULT_REGION + 'b', process.env.CDK_DEFAULT_REGION + 'c' ] } = config; const sg = new ec2.SecurityGroup(this, 'VpcEndpointsSG', { vpc, allowAllOutbound: false, securityGroupName: 'VpcEndpointsSG' }); sg.addIngressRule(ec2.Peer.ipv4(vpc.vpcCidrBlock), ec2.Port.tcp(443), 'Allow VPC'); sg.addEgressRule(ec2.Peer.ipv4(vpc.vpcCidrBlock), ec2.Port.allTraffic(), 'Allow all to VPC'); for (var i = 0; i < config.service.length; i++) { var endpoint = new ec2.InterfaceVpcEndpoint(this, config.service[i], { vpc, service: new ec2.InterfaceVpcEndpointService('com.amazonaws.' + process.env.CDK_DEFAULT_REGION + '.' + config.service[i], 443), subnets: { availabilityZones: az }, privateDnsEnabled: true, securityGroups: [sg] }); new cdk.CfnOutput(this, config.service[i] + ' Id', { value: endpoint.vpcEndpointId, description: 'Id of the endpoint ' + config.service[i] }); new cdk.CfnOutput(this, config.service[i] + ' Dns', { value: cdk.Fn.select(0, endpoint.vpcEndpointDnsEntries), description: 'Dns of the endpoint ' + config.service[i] }); } ; new cdk.CfnOutput(this, 'sgId', { value: sg.securityGroupId, description: 'Id of sg' }); } } exports.Endpoints = Endpoints; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2VuZHBvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQ0FBMkM7QUFDM0MsbUNBQW1DO0FBUW5DLE1BQWEsU0FBVSxTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQ3BDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBcUIsRUFBRSxLQUFzQjtRQUNuRixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRyxLQUFLLENBQUMsQ0FBQTtRQUd4QixJQUFJLE9BQU8sTUFBTSxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUM7WUFDL0IsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDNUMsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRzthQUNwQixDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTtTQUN2QjtRQUFBLENBQUM7UUFDRixNQUFNLEVBQUUsRUFBRSxHQUFHO1lBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxHQUFHO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsR0FBRztZQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLEdBQUc7U0FDdkMsRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUNaLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDckQsR0FBRztZQUNILGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsaUJBQWlCLEVBQUUsZ0JBQWdCO1NBQ3BDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRW5GLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtRQUU5RixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pFLEdBQUc7Z0JBQ0gsT0FBTyxFQUFFLElBQUksR0FBRyxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO2dCQUM5SCxPQUFPLEVBQUU7b0JBQ0wsaUJBQWlCLEVBQUUsRUFBRTtpQkFDeEI7Z0JBQ0QsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQ3ZCLENBQUMsQ0FBQztZQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUU7Z0JBQy9DLEtBQUssRUFBRSxRQUFRLENBQUMsYUFBYTtnQkFDN0IsV0FBVyxFQUFFLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3pELENBQUMsQ0FBQztZQUVILElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUU7Z0JBQ2hELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLHFCQUFxQixDQUFDO2dCQUN2RCxXQUFXLEVBQUUsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDMUQsQ0FBQyxDQUFDO1NBRU47UUFBQSxDQUFDO1FBQ0YsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDNUIsS0FBSyxFQUFFLEVBQUUsQ0FBQyxlQUFlO1lBQ3pCLFdBQVcsRUFBRSxVQUFVO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQXZERCw4QkF1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmludGVyZmFjZSBFbmRwb2ludENvbmZpZyB7XG4gICAgdnBjOiBzdHJpbmcgfCBlYzIuSVZwYztcbiAgICBzZXJ2aWNlOiBzdHJpbmdbXTtcbiAgICBhej86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgRW5kcG9pbnRzIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25maWc6RW5kcG9pbnRDb25maWcsIHByb3BzPzogY2RrLlN0YWNrUHJvcHMpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkICwgcHJvcHMpXG4gICAgICAgIFxuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcudnBjID09PSAnc3RyaW5nJyl7XG4gICAgICAgICAgICB2YXIgdnBjID0gZWMyLlZwYy5mcm9tTG9va3VwKHRoaXMsICdJbXBvcnRWcGMnLCB7IFxuICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdnBjSWQ6IGNvbmZpZy52cGNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHZwYyA9IGNvbmZpZy52cGNcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBheiA9IFtcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTiArICdhJywgXG4gICAgICAgICAgICBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04gKyAnYicsIFxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OICsgJ2MnXG4gICAgICAgIF19ID0gY29uZmlnO1xuICAgICAgICBjb25zdCBzZyA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnVnBjRW5kcG9pbnRzU0cnLCB7XG4gICAgICAgICAgICB2cGMsXG4gICAgICAgICAgICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiAnVnBjRW5kcG9pbnRzU0cnXG4gICAgICAgICAgfSk7XG4gIFxuICAgICAgICAgIHNnLmFkZEluZ3Jlc3NSdWxlKGVjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGVjMi5Qb3J0LnRjcCg0NDMpLCAnQWxsb3cgVlBDJyk7XG4gIFxuICAgICAgICAgIHNnLmFkZEVncmVzc1J1bGUoZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgZWMyLlBvcnQuYWxsVHJhZmZpYygpLCAnQWxsb3cgYWxsIHRvIFZQQycpXG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcuc2VydmljZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGVuZHBvaW50ID0gbmV3IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludCh0aGlzLCBjb25maWcuc2VydmljZVtpXSwge1xuICAgICAgICAgICAgICAgIHZwYyxcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBuZXcgZWMyLkludGVyZmFjZVZwY0VuZHBvaW50U2VydmljZSgnY29tLmFtYXpvbmF3cy4nICsgcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OICsgJy4nICsgY29uZmlnLnNlcnZpY2VbaV0sIDQ0MyksXG4gICAgICAgICAgICAgICAgc3VibmV0czoge1xuICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lczogYXpcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByaXZhdGVEbnNFbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBzOiBbc2ddXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgY29uZmlnLnNlcnZpY2VbaV0gKyAnIElkJywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBlbmRwb2ludC52cGNFbmRwb2ludElkLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnSWQgb2YgdGhlIGVuZHBvaW50ICcgKyBjb25maWcuc2VydmljZVtpXVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsIGNvbmZpZy5zZXJ2aWNlW2ldICsgJyBEbnMnLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGNkay5Gbi5zZWxlY3QoMCwgZW5kcG9pbnQudnBjRW5kcG9pbnREbnNFbnRyaWVzKSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0RucyBvZiB0aGUgZW5kcG9pbnQgJyArIGNvbmZpZy5zZXJ2aWNlW2ldXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9O1xuICAgICAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnc2dJZCcsIHtcbiAgICAgICAgICAgIHZhbHVlOiBzZy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0lkIG9mIHNnJ1xuICAgICAgICB9KTtcbiAgICB9XG59Il19