UNPKG

cdk-databrew-cicd

Version:
41 lines 5.14 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.IamRole = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const iam = require("aws-cdk-lib/aws-iam"); const constructs_1 = require("constructs"); /** * IAM Role. * * Defines an IAM role for pre-production and production AWS accounts. */ class IamRole extends constructs_1.Construct { constructor(scope, name, props) { super(scope, name); if (props.environment !== 'preproduction' && props.environment !== 'production') { throw new Error('The value of `environment` should be either \'production\' or \'preproduction\''); } const role = new iam.Role(this, `${props.environment}IamRole`, { assumedBy: new iam.AccountPrincipal(props.accountID), roleName: props.roleName ?? `${props.environment}-Databrew-Cicd-Role`, description: `The IAM role for DataBrew CICD in the ${props.environment} account.`, }); role.addToPolicy(new iam.PolicyStatement({ sid: 'DataBrewPermissions', effect: iam.Effect.ALLOW, actions: [ 'databrew:ListRecipes', 'databrew:CreateRecipe', 'databrew:PublishRecipe', 'databrew:UpdateRecipe', ], resources: ['*'], })); this.roleArn = role.roleArn; } } exports.IamRole = IamRole; _a = JSII_RTTI_SYMBOL_1; IamRole[_a] = { fqn: "cdk-databrew-cicd.IamRole", version: "2.0.636" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWlhbS1yb2xlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGstaWFtLXJvbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQTJDO0FBQzNDLDJDQUF1QztBQWtCdkM7Ozs7R0FJRztBQUNILE1BQWEsT0FBUSxTQUFRLHNCQUFTO0lBS3BDLFlBQVksS0FBZ0IsRUFBRSxJQUFZLEVBQUUsS0FBbUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuQixJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssZUFBZSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDaEYsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRkFBaUYsQ0FBQyxDQUFDO1FBQ3JHLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFdBQVcsU0FBUyxFQUFFO1lBQzdELFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3BELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcscUJBQXFCO1lBQ3JFLFdBQVcsRUFBRSx5Q0FBeUMsS0FBSyxDQUFDLFdBQVcsV0FBVztTQUNuRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN2QyxHQUFHLEVBQUUscUJBQXFCO1lBQzFCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFO2dCQUNQLHNCQUFzQjtnQkFDdEIsdUJBQXVCO2dCQUN2Qix3QkFBd0I7Z0JBQ3hCLHVCQUF1QjthQUN4QjtZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDOztBQTdCSCwwQkE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBJYW1Sb2xlUHJvcHMge1xuICAvKipcbiAgICAgKiAncHJlcHJvZHVjdGlvbicgb3IgJ3Byb2R1Y3Rpb24nXG4gICAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBzdHJpbmc7XG4gIC8qKlxuICAgICAqIFRoZSBJRCBvZiB5b3VyIGluZnJhc3RydWN0dXJlIGFjY291bnRcbiAgICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudElEOiBzdHJpbmc7XG4gIC8qKlxuICAgICAqIFRoZSByb2xlIG5hbWUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAne2Vudmlyb25tZW50fS1EYXRhYnJldy1DaWNkLVJvbGUnXG4gICAgICovXG4gIHJlYWRvbmx5IHJvbGVOYW1lPzogc3RyaW5nO1xufVxuLyoqXG4gKiBJQU0gUm9sZS5cbiAqXG4gKiBEZWZpbmVzIGFuIElBTSByb2xlIGZvciBwcmUtcHJvZHVjdGlvbiBhbmQgcHJvZHVjdGlvbiBBV1MgYWNjb3VudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBJYW1Sb2xlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUgZm9yIHByZS1wcm9kdWN0aW9uIG9yIHByb2R1Y3Rpb24uXG4gICAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBwcm9wczogSWFtUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIG5hbWUpO1xuXG4gICAgaWYgKHByb3BzLmVudmlyb25tZW50ICE9PSAncHJlcHJvZHVjdGlvbicgJiYgcHJvcHMuZW52aXJvbm1lbnQgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgdmFsdWUgb2YgYGVudmlyb25tZW50YCBzaG91bGQgYmUgZWl0aGVyIFxcJ3Byb2R1Y3Rpb25cXCcgb3IgXFwncHJlcHJvZHVjdGlvblxcJycpO1xuICAgIH1cblxuICAgIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgYCR7cHJvcHMuZW52aXJvbm1lbnR9SWFtUm9sZWAsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKHByb3BzLmFjY291bnRJRCksXG4gICAgICByb2xlTmFtZTogcHJvcHMucm9sZU5hbWUgPz8gYCR7cHJvcHMuZW52aXJvbm1lbnR9LURhdGFicmV3LUNpY2QtUm9sZWAsXG4gICAgICBkZXNjcmlwdGlvbjogYFRoZSBJQU0gcm9sZSBmb3IgRGF0YUJyZXcgQ0lDRCBpbiB0aGUgJHtwcm9wcy5lbnZpcm9ubWVudH0gYWNjb3VudC5gLFxuICAgIH0pO1xuICAgIHJvbGUuYWRkVG9Qb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiAnRGF0YUJyZXdQZXJtaXNzaW9ucycsXG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdkYXRhYnJldzpMaXN0UmVjaXBlcycsXG4gICAgICAgICdkYXRhYnJldzpDcmVhdGVSZWNpcGUnLFxuICAgICAgICAnZGF0YWJyZXc6UHVibGlzaFJlY2lwZScsXG4gICAgICAgICdkYXRhYnJldzpVcGRhdGVSZWNpcGUnLFxuICAgICAgXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgfSkpO1xuICAgIHRoaXMucm9sZUFybiA9IHJvbGUucm9sZUFybjtcbiAgfVxufSJdfQ==