UNPKG

@innovationson/cdk-iamuserwithaccesskey

Version:
45 lines 6.71 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.IamUserWithAccessKey = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_cdk_lib_1 = require("aws-cdk-lib"); const iam = require("aws-cdk-lib/aws-iam"); const sm = require("aws-cdk-lib/aws-secretsmanager"); /** * An IAM User including an Access Key that will be stored in Secrets Manager. The properties as for normal IAM Users. */ class IamUserWithAccessKey extends iam.User { constructor(scope, id, props) { super(scope, id, props); this.accessKey = new iam.CfnAccessKey(this, `${id}AccessKey`, { userName: this.userName, }); let UserSecretString = JSON.stringify({ Access_Key_Id: this.accessKey.ref, Secret_Access_Key: aws_cdk_lib_1.Fn.getAtt(this.accessKey.logicalId, 'SecretAccessKey').toString(), }); if (props?.encryptionKey) { this.secret = new sm.Secret(this, `${id}UserSecret`, { encryptionKey: props.encryptionKey, }); } else { this.secret = new sm.Secret(this, `${id}UserSecret`); } ; // We need to access the underlying cfn resource to set the secret string const cfnSecret = this.secret.node.defaultChild; cfnSecret.secretString = UserSecretString; // We need a raw override because otherwise cdk always expects a secretStringGenerator object cfnSecret.addOverride('Properties.GenerateSecretString', aws_cdk_lib_1.Fn.ref('AWS::NoValue')); new aws_cdk_lib_1.CfnOutput(this, 'SecretArn', { value: this.secret.secretArn.toString(), exportName: `${id}`, }); } } exports.IamUserWithAccessKey = IamUserWithAccessKey; _a = JSII_RTTI_SYMBOL_1; IamUserWithAccessKey[_a] = { fqn: "@innovationson/cdk-iamuserwithaccesskey.IamUserWithAccessKey", version: "1.2.112" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQTJDO0FBRTNDLHFEQUFxRDtBQWVyRDs7R0FFRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsR0FBRyxDQUFDLElBQUk7SUFjaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRTtZQUM1RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3BDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7WUFDakMsaUJBQWlCLEVBQUUsZ0JBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLEVBQUU7U0FDckYsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLEVBQUUsYUFBYSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFO2dCQUNuRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7YUFDbkMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDdEQ7UUFBQSxDQUFDO1FBRUYseUVBQXlFO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQTRCLENBQUM7UUFDaEUsU0FBUyxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUUxQyw2RkFBNkY7UUFDN0YsU0FBUyxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsRUFBRSxnQkFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRWpGLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDdkMsVUFBVSxFQUFFLEdBQUcsRUFBRSxFQUFFO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBN0NILG9EQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZuLCBDZm5PdXRwdXQgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBzbSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIElBTSBVc2VyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWFtVXNlcldpdGhBY2Nlc3NLZXlQcm9wcyBleHRlbmRzIGlhbS5Vc2VyUHJvcHMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY3VzdG9tIGVuY3J5cHRpb24ga2V5IGZvciB0aGUgc2VjcmV0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBUaGUgQWNjb3VudHMgZGVmYXVsdCBTZWNyZXQgTWFuYWdlciBLTVMgS2V5IHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBbiBJQU0gVXNlciBpbmNsdWRpbmcgYW4gQWNjZXNzIEtleSB0aGF0IHdpbGwgYmUgc3RvcmVkIGluIFNlY3JldHMgTWFuYWdlci4gVGhlIHByb3BlcnRpZXMgYXMgZm9yIG5vcm1hbCBJQU0gVXNlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBJYW1Vc2VyV2l0aEFjY2Vzc0tleSBleHRlbmRzIGlhbS5Vc2VyIHtcbiAgLyoqXG4gICAqIEFuIGF0dHJpYnV0ZSB0aGF0IHJlcHJlc2VudHMgdGhlIGlhbSBhY2Nlc3Nfa2V5LlxuICAgKlxuICAgKiBAYXR0cmlidXRlIHRydWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhY2Nlc3NLZXk6IGlhbS5DZm5BY2Nlc3NLZXk7XG4gIC8qKlxuICAgICAqIEFuIGF0dHJpYnV0ZSB0aGF0IHJlcHJlc2VudHMgdGhlIHNlY3JldC5cbiAgICAgKlxuICAgICAqIEBhdHRyaWJ1dGUgdHJ1ZVxuICAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0OiBzbS5TZWNyZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBJYW1Vc2VyV2l0aEFjY2Vzc0tleVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmFjY2Vzc0tleSA9IG5ldyBpYW0uQ2ZuQWNjZXNzS2V5KHRoaXMsIGAke2lkfUFjY2Vzc0tleWAsIHtcbiAgICAgIHVzZXJOYW1lOiB0aGlzLnVzZXJOYW1lLFxuICAgIH0pO1xuXG4gICAgbGV0IFVzZXJTZWNyZXRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBBY2Nlc3NfS2V5X0lkOiB0aGlzLmFjY2Vzc0tleS5yZWYsXG4gICAgICBTZWNyZXRfQWNjZXNzX0tleTogRm4uZ2V0QXR0KHRoaXMuYWNjZXNzS2V5LmxvZ2ljYWxJZCwgJ1NlY3JldEFjY2Vzc0tleScpLnRvU3RyaW5nKCksIC8vVE9ETzogQ2hlY2sgaWYgdGhpcyByZWZlcmVuY2VzIHRoZSBjb3JyZWN0IHJlc291cmNlLiBBY2Nlc3NLZXkgdnMgU2VjcmV0QWNjZXNzS2V5XG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHM/LmVuY3J5cHRpb25LZXkpIHtcbiAgICAgIHRoaXMuc2VjcmV0ID0gbmV3IHNtLlNlY3JldCh0aGlzLCBgJHtpZH1Vc2VyU2VjcmV0YCwge1xuICAgICAgICBlbmNyeXB0aW9uS2V5OiBwcm9wcy5lbmNyeXB0aW9uS2V5LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VjcmV0ID0gbmV3IHNtLlNlY3JldCh0aGlzLCBgJHtpZH1Vc2VyU2VjcmV0YCk7XG4gICAgfTtcblxuICAgIC8vIFdlIG5lZWQgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIGNmbiByZXNvdXJjZSB0byBzZXQgdGhlIHNlY3JldCBzdHJpbmdcbiAgICBjb25zdCBjZm5TZWNyZXQgPSB0aGlzLnNlY3JldC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBzbS5DZm5TZWNyZXQ7XG4gICAgY2ZuU2VjcmV0LnNlY3JldFN0cmluZyA9IFVzZXJTZWNyZXRTdHJpbmc7XG5cbiAgICAvLyBXZSBuZWVkIGEgcmF3IG92ZXJyaWRlIGJlY2F1c2Ugb3RoZXJ3aXNlIGNkayBhbHdheXMgZXhwZWN0cyBhIHNlY3JldFN0cmluZ0dlbmVyYXRvciBvYmplY3RcbiAgICBjZm5TZWNyZXQuYWRkT3ZlcnJpZGUoJ1Byb3BlcnRpZXMuR2VuZXJhdGVTZWNyZXRTdHJpbmcnLCBGbi5yZWYoJ0FXUzo6Tm9WYWx1ZScpKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ1NlY3JldEFybicsIHtcbiAgICAgIHZhbHVlOiB0aGlzLnNlY3JldC5zZWNyZXRBcm4udG9TdHJpbmcoKSxcbiAgICAgIGV4cG9ydE5hbWU6IGAke2lkfWAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==