@felipevelascohz/endpoints
Version:
Library created by:
58 lines • 8.37 kB
JavaScript
;
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