UNPKG

@cm-madlabs/cdk-constructs

Version:

AWS CDK Constructs that can be used universally

65 lines 7.17 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.BucketReplicationIamRole = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_iam_1 = require("@aws-cdk/aws-iam"); const core_1 = require("@aws-cdk/core"); /** * バケットレプリケーションを行うために、レプリケーション元に設定するIAMロールを作成するConstruct. * * @stability stable */ class BucketReplicationIamRole extends core_1.Construct { /** * @stability stable */ constructor(scope, id, props) { super(scope, id); this.role = new aws_iam_1.Role(this, 'Role', { roleName: props.roleName, assumedBy: new aws_iam_1.ServicePrincipal('s3.amazonaws.com'), inlinePolicies: { bucketReplicationPolicy: new aws_iam_1.PolicyDocument({ statements: [ new aws_iam_1.PolicyStatement({ effect: aws_iam_1.Effect.ALLOW, actions: [ 's3:ListBucket', 's3:GetReplicationConfiguration', 's3:GetObjectVersionForReplication', 's3:GetObjectVersionAcl', 's3:GetObjectVersionTagging', 's3:GetObjectRetention', 's3:GetObjectLegalHold', ], resources: [ `${props.baseBucketArn}`, `${props.baseBucketArn}/*`, `${props.sourceBucketArn}`, `${props.sourceBucketArn}/*`, ], }), new aws_iam_1.PolicyStatement({ effect: aws_iam_1.Effect.ALLOW, actions: [ 's3:ReplicateObject', 's3:ReplicateDelete', 's3:ReplicateTags', 's3:ObjectOwnerOverrideToBucketOwner', ], resources: [ `${props.baseBucketArn}/*`, `${props.sourceBucketArn}/*`, ], }), ], }), }, }); } } exports.BucketReplicationIamRole = BucketReplicationIamRole; _a = JSII_RTTI_SYMBOL_1; BucketReplicationIamRole[_a] = { fqn: "@cm-madlabs/cdk-constructs.BucketReplicationIamRole", version: "0.0.6" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LXJlcGxpY2F0aW9uLWlhbS1yb2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2J1Y2tldC1yZXBsaWNhdGlvbi1pYW0tcm9sZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQU0wQjtBQUMxQix3Q0FFdUI7Ozs7OztBQXNCdkIsTUFBYSx3QkFBeUIsU0FBUSxnQkFBUzs7OztJQUdyRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVDO1FBQy9FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGNBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2pDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixTQUFTLEVBQUUsSUFBSSwwQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQztZQUNuRCxjQUFjLEVBQUU7Z0JBQ2QsdUJBQXVCLEVBQUUsSUFBSSx3QkFBYyxDQUFDO29CQUMxQyxVQUFVLEVBQUU7d0JBQ1YsSUFBSSx5QkFBZSxDQUFDOzRCQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLOzRCQUNwQixPQUFPLEVBQUU7Z0NBQ1AsZUFBZTtnQ0FDZixnQ0FBZ0M7Z0NBQ2hDLG1DQUFtQztnQ0FDbkMsd0JBQXdCO2dDQUN4Qiw0QkFBNEI7Z0NBQzVCLHVCQUF1QjtnQ0FDdkIsdUJBQXVCOzZCQUN4Qjs0QkFDRCxTQUFTLEVBQUU7Z0NBQ1QsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFO2dDQUN4QixHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUk7Z0NBQzFCLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRTtnQ0FDMUIsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJOzZCQUM3Qjt5QkFDRixDQUFDO3dCQUVGLElBQUkseUJBQWUsQ0FBQzs0QkFDbEIsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSzs0QkFDcEIsT0FBTyxFQUFFO2dDQUNQLG9CQUFvQjtnQ0FDcEIsb0JBQW9CO2dDQUNwQixrQkFBa0I7Z0NBQ2xCLHFDQUFxQzs2QkFDdEM7NEJBQ0QsU0FBUyxFQUFFO2dDQUNULEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSTtnQ0FDMUIsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJOzZCQUM3Qjt5QkFDRixDQUFDO3FCQUNIO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaERILDREQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVmZmVjdCxcbiAgUG9saWN5RG9jdW1lbnQsXG4gIFBvbGljeVN0YXRlbWVudCxcbiAgUm9sZSxcbiAgU2VydmljZVByaW5jaXBhbCxcbn0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQge1xuICBDb25zdHJ1Y3QsXG59IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTM0J1Y2tldFJlcGxpY2F0aW9uSWFtUm9sZVByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHJvbGVOYW1lPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYmFzZUJ1Y2tldEFybjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc291cmNlQnVja2V0QXJuOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBCdWNrZXRSZXBsaWNhdGlvbklhbVJvbGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogUm9sZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSVMzQnVja2V0UmVwbGljYXRpb25JYW1Sb2xlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5yb2xlID0gbmV3IFJvbGUodGhpcywgJ1JvbGUnLCB7XG4gICAgICByb2xlTmFtZTogcHJvcHMucm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdzMy5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBidWNrZXRSZXBsaWNhdGlvblBvbGljeTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczM6TGlzdEJ1Y2tldCcsXG4gICAgICAgICAgICAgICAgJ3MzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbicsXG4gICAgICAgICAgICAgICAgJ3MzOkdldE9iamVjdFZlcnNpb25Gb3JSZXBsaWNhdGlvbicsXG4gICAgICAgICAgICAgICAgJ3MzOkdldE9iamVjdFZlcnNpb25BY2wnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRPYmplY3RWZXJzaW9uVGFnZ2luZycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldE9iamVjdFJldGVudGlvbicsXG4gICAgICAgICAgICAgICAgJ3MzOkdldE9iamVjdExlZ2FsSG9sZCcsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgIGAke3Byb3BzLmJhc2VCdWNrZXRBcm59YCxcbiAgICAgICAgICAgICAgICBgJHtwcm9wcy5iYXNlQnVja2V0QXJufS8qYCxcbiAgICAgICAgICAgICAgICBgJHtwcm9wcy5zb3VyY2VCdWNrZXRBcm59YCxcbiAgICAgICAgICAgICAgICBgJHtwcm9wcy5zb3VyY2VCdWNrZXRBcm59LypgLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMzpSZXBsaWNhdGVPYmplY3QnLFxuICAgICAgICAgICAgICAgICdzMzpSZXBsaWNhdGVEZWxldGUnLFxuICAgICAgICAgICAgICAgICdzMzpSZXBsaWNhdGVUYWdzJyxcbiAgICAgICAgICAgICAgICAnczM6T2JqZWN0T3duZXJPdmVycmlkZVRvQnVja2V0T3duZXInLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICBgJHtwcm9wcy5iYXNlQnVja2V0QXJufS8qYCxcbiAgICAgICAgICAgICAgICBgJHtwcm9wcy5zb3VyY2VCdWNrZXRBcm59LypgLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=