cdk-databrew-cicd
Version:
A construct for AWS Glue DataBrew wtih CICD
41 lines • 5.14 kB
JavaScript
;
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==