UNPKG

@scloud/cdk-patterns

Version:

Serverless CDK patterns for common infrastructure needs

54 lines 6.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.privateBucket = privateBucket; exports.kmsBucket = kmsBucket; const aws_cdk_lib_1 = require("aws-cdk-lib"); const aws_kms_1 = require("aws-cdk-lib/aws-kms"); const aws_s3_1 = require("aws-cdk-lib/aws-s3"); /** * @deprecated Use PrivateBucket instead * * A private bucket bucket. * @param construct The parent CDK construct. * @param name The bucket name - used as the ID for CDK. * The actual bucket name will be randomised by default. * @param props Any additional properties for the bucket. * These can override the defaults provided by this function. * @returns A new Bucket */ function privateBucket(construct, name, props = {}) { return new aws_s3_1.Bucket(construct, name, { blockPublicAccess: aws_s3_1.BlockPublicAccess.BLOCK_ALL, encryption: aws_s3_1.BucketEncryption.S3_MANAGED, removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY, ...props, }); } /** * @deprecated Use KmsBucket instead * * A bucket with a KMS key. * @param stack The parent CDK stack. * @param name The bucket name - used as the bucket and key IDs for CDK. * The actual bucket name will be randomised by default. * @param props Any additional properties for the bucket. * These can override the defaults provided by this function. * @returns An s3.Bucket */ function kmsBucket(stack, name, props = {}) { // We set a key alias because this seems to be the only // identifying information shown in the list in the AWS console: const key = new aws_kms_1.Key(stack, `BucketKey${name}`, { removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY, alias: `${stack.stackName}/${name}`, description: name }); const bucket = new aws_s3_1.Bucket(stack, name, { blockPublicAccess: aws_s3_1.BlockPublicAccess.BLOCK_ALL, encryption: aws_s3_1.BucketEncryption.KMS, bucketKeyEnabled: false, removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY, ...props, }); return { bucket, key, }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlcHJlY2F0ZWQvYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBcUJBLHNDQU9DO0FBYUQsOEJBb0JDO0FBN0RELDZDQUFtRDtBQUNuRCxpREFBMEM7QUFDMUMsK0NBSzRCO0FBRzVCOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixhQUFhLENBQUMsU0FBb0IsRUFBRSxJQUFZLEVBQUUsUUFBcUIsRUFBRTtJQUN2RixPQUFPLElBQUksZUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7UUFDakMsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztRQUM5QyxVQUFVLEVBQUUseUJBQWdCLENBQUMsVUFBVTtRQUN2QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1FBQ3BDLEdBQUcsS0FBSztLQUNULENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUN2QixLQUFZLEVBQ1osSUFBWSxFQUNaLFFBQXFCLEVBQUU7SUFFdkIsdURBQXVEO0lBQ3ZELGdFQUFnRTtJQUNoRSxNQUFNLEdBQUcsR0FBRyxJQUFJLGFBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxJQUFJLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pKLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7UUFDckMsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztRQUM5QyxVQUFVLEVBQUUseUJBQWdCLENBQUMsR0FBRztRQUNoQyxnQkFBZ0IsRUFBRSxLQUFLO1FBQ3ZCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87UUFDcEMsR0FBRyxLQUFLO0tBQ1QsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLE1BQU07UUFDTixHQUFHO0tBQ0osQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdmFsUG9saWN5LCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEtleSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHtcbiAgQmxvY2tQdWJsaWNBY2Nlc3MsXG4gIEJ1Y2tldCxcbiAgQnVja2V0RW5jcnlwdGlvbixcbiAgQnVja2V0UHJvcHMsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgUHJpdmF0ZUJ1Y2tldCBpbnN0ZWFkXG4gKlxuICogQSBwcml2YXRlIGJ1Y2tldCBidWNrZXQuXG4gKiBAcGFyYW0gY29uc3RydWN0IFRoZSBwYXJlbnQgQ0RLIGNvbnN0cnVjdC5cbiAqIEBwYXJhbSBuYW1lIFRoZSBidWNrZXQgbmFtZSAtIHVzZWQgYXMgdGhlIElEIGZvciBDREsuXG4gKiBUaGUgYWN0dWFsIGJ1Y2tldCBuYW1lIHdpbGwgYmUgcmFuZG9taXNlZCBieSBkZWZhdWx0LlxuICogQHBhcmFtIHByb3BzIEFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIHRoZSBidWNrZXQuXG4gKiBUaGVzZSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzIHByb3ZpZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIG5ldyBCdWNrZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaXZhdGVCdWNrZXQoY29uc3RydWN0OiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEJ1Y2tldFByb3BzID0ge30pOiBCdWNrZXQge1xuICByZXR1cm4gbmV3IEJ1Y2tldChjb25zdHJ1Y3QsIG5hbWUsIHtcbiAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgLi4ucHJvcHMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBLbXNCdWNrZXQgaW5zdGVhZFxuICpcbiAqIEEgYnVja2V0IHdpdGggYSBLTVMga2V5LlxuICogQHBhcmFtIHN0YWNrIFRoZSBwYXJlbnQgQ0RLIHN0YWNrLlxuICogQHBhcmFtIG5hbWUgVGhlIGJ1Y2tldCBuYW1lIC0gdXNlZCBhcyB0aGUgYnVja2V0IGFuZCBrZXkgSURzIGZvciBDREsuXG4gKiBUaGUgYWN0dWFsIGJ1Y2tldCBuYW1lIHdpbGwgYmUgcmFuZG9taXNlZCBieSBkZWZhdWx0LlxuICogQHBhcmFtIHByb3BzIEFueSBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIHRoZSBidWNrZXQuXG4gKiBUaGVzZSBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzIHByb3ZpZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBbiBzMy5CdWNrZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGttc0J1Y2tldChcbiAgc3RhY2s6IFN0YWNrLFxuICBuYW1lOiBzdHJpbmcsXG4gIHByb3BzOiBCdWNrZXRQcm9wcyA9IHt9LFxuKTogeyBidWNrZXQ6IEJ1Y2tldCwga2V5PzogS2V5OyB9IHtcbiAgLy8gV2Ugc2V0IGEga2V5IGFsaWFzIGJlY2F1c2UgdGhpcyBzZWVtcyB0byBiZSB0aGUgb25seVxuICAvLyBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiBzaG93biBpbiB0aGUgbGlzdCBpbiB0aGUgQVdTIGNvbnNvbGU6XG4gIGNvbnN0IGtleSA9IG5ldyBLZXkoc3RhY2ssIGBCdWNrZXRLZXkke25hbWV9YCwgeyByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksIGFsaWFzOiBgJHtzdGFjay5zdGFja05hbWV9LyR7bmFtZX1gLCBkZXNjcmlwdGlvbjogbmFtZSB9KTtcbiAgY29uc3QgYnVja2V0ID0gbmV3IEJ1Y2tldChzdGFjaywgbmFtZSwge1xuICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5LTVMsXG4gICAgYnVja2V0S2V5RW5hYmxlZDogZmFsc2UsXG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIC4uLnByb3BzLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIGJ1Y2tldCxcbiAgICBrZXksXG4gIH07XG59XG4iXX0=