UNPKG

aws-cdk-cloudfront-key-pair

Version:

AWS CDK L3 construct for managing CloudFront trusted key group key pairs

32 lines 4.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CloudFrontKeyPair = void 0; const constructs_1 = require("constructs"); const cloudfront = require("aws-cdk-lib/aws-cloudfront"); const secretsmanager = require("aws-cdk-lib/aws-secretsmanager"); const key_pair_1 = require("./key-pair"); class CloudFrontKeyPair extends constructs_1.Construct { constructor(scope, id, props) { super(scope, id); this.keyPair = new key_pair_1.KeyPair(this, 'KeyPair', { ...props, }); this.publicKey = new cloudfront.PublicKey(this, 'PublicKey', { publicKeyName: props.name, comment: props.description, encodedKey: this.keyPair.publicKey, }); new secretsmanager.CfnSecret(this, 'PublicKeyIdSecret', { name: `${props.name}/public-key-id`, description: `${props.description} (Public Key ID)`, secretString: this.publicKey.publicKeyId, replicaRegions: props.secretRegions?.map((region) => { return { region, }; }), }); } } exports.CloudFrontKeyPair = CloudFrontKeyPair; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1rZXktcGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsb3VkZnJvbnQta2V5LXBhaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLHlEQUF5RDtBQUN6RCxpRUFBaUU7QUFFakUseUNBQXFDO0FBRXJDLE1BQWEsaUJBQWtCLFNBQVEsc0JBQVM7SUFPOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxrQkFBTyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDMUMsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUMzRCxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzFCLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtZQUN0RCxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxnQkFBZ0I7WUFDbkMsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLFdBQVcsa0JBQWtCO1lBQ25ELFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVc7WUFDeEMsY0FBYyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2xELE9BQU87b0JBQ0wsTUFBTTtpQkFDUCxDQUFDO1lBQ0osQ0FBQyxDQUFDO1NBQ0gsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBL0JELDhDQStCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0IHsgQ2xvdWRGcm9udEtleVBhaXJQcm9wcyB9IGZyb20gJy4vY2xvdWRmcm9udC1rZXktcGFpci1wcm9wcyc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXktcGFpcic7XG5cbmV4cG9ydCBjbGFzcyBDbG91ZEZyb250S2V5UGFpciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKiBAcmVhZG9ubHkgR2VuZXJhdGVkIENsb3VkRnJvbnQgcHVibGljIGtleSAqL1xuICByZWFkb25seSBwdWJsaWNLZXk6IGNsb3VkZnJvbnQuUHVibGljS2V5O1xuXG4gIC8qKiBAcmVhZG9ubHkgR2VuZXJhdGVkIGtleSBwYWlyICovXG4gIHJlYWRvbmx5IGtleVBhaXI6IEtleVBhaXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkRnJvbnRLZXlQYWlyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5rZXlQYWlyID0gbmV3IEtleVBhaXIodGhpcywgJ0tleVBhaXInLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcblxuICAgIHRoaXMucHVibGljS2V5ID0gbmV3IGNsb3VkZnJvbnQuUHVibGljS2V5KHRoaXMsICdQdWJsaWNLZXknLCB7XG4gICAgICBwdWJsaWNLZXlOYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgY29tbWVudDogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBlbmNvZGVkS2V5OiB0aGlzLmtleVBhaXIucHVibGljS2V5LFxuICAgIH0pO1xuXG4gICAgbmV3IHNlY3JldHNtYW5hZ2VyLkNmblNlY3JldCh0aGlzLCAnUHVibGljS2V5SWRTZWNyZXQnLCB7XG4gICAgICBuYW1lOiBgJHtwcm9wcy5uYW1lfS9wdWJsaWMta2V5LWlkYCxcbiAgICAgIGRlc2NyaXB0aW9uOiBgJHtwcm9wcy5kZXNjcmlwdGlvbn0gKFB1YmxpYyBLZXkgSUQpYCxcbiAgICAgIHNlY3JldFN0cmluZzogdGhpcy5wdWJsaWNLZXkucHVibGljS2V5SWQsXG4gICAgICByZXBsaWNhUmVnaW9uczogcHJvcHMuc2VjcmV0UmVnaW9ucz8ubWFwKChyZWdpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWdpb24sXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICB9KVxuICB9XG59XG4iXX0=