@cm-madlabs/cdk-constructs
Version:
AWS CDK Constructs that can be used universally
65 lines • 7.17 kB
JavaScript
;
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=