@flit/cdk-bucket-mesh 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +67 -9
- package/dist/bucket-mesh/index.js +19 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -11
- package/src/bucket-mesh/handler/go.mod +19 -18
- package/src/bucket-mesh/handler/go.sum +38 -36
- package/src/bucket-mesh/handler/main.go +15 -10
- package/src/bucket-mesh/index.ts +20 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flit/cdk-bucket-mesh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "An AWS CDK construct to help setup a multy bucket replication across regions",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aws",
|
|
@@ -46,22 +46,25 @@
|
|
|
46
46
|
],
|
|
47
47
|
"useTabs": true
|
|
48
48
|
},
|
|
49
|
+
"overrides": {
|
|
50
|
+
"glob": "^13.0.1"
|
|
51
|
+
},
|
|
49
52
|
"devDependencies": {
|
|
50
|
-
"@aws-cdk/aws-lambda-go-alpha": "^2.
|
|
51
|
-
"@types/node": "^
|
|
52
|
-
"aws-cdk-lib": "^2.
|
|
53
|
-
"constructs": "^10.4.
|
|
53
|
+
"@aws-cdk/aws-lambda-go-alpha": "^2.233.0-alpha.0",
|
|
54
|
+
"@types/node": "^25.2.2",
|
|
55
|
+
"aws-cdk-lib": "^2.233.0",
|
|
56
|
+
"constructs": "^10.4.0",
|
|
54
57
|
"jest": "^30.2.0",
|
|
55
|
-
"jsii": "^5.9.
|
|
56
|
-
"jsii-pacmak": "^1.
|
|
57
|
-
"prettier": "^3.
|
|
58
|
-
"prettier-plugin-packagejson": "^
|
|
58
|
+
"jsii": "^5.9.26",
|
|
59
|
+
"jsii-pacmak": "^1.126.0",
|
|
60
|
+
"prettier": "^3.8.1",
|
|
61
|
+
"prettier-plugin-packagejson": "^3.0.0",
|
|
59
62
|
"ts-jest": "^29.4.6",
|
|
60
63
|
"typescript": "^5.9.3"
|
|
61
64
|
},
|
|
62
65
|
"peerDependencies": {
|
|
63
|
-
"aws-cdk-lib": "^2.
|
|
64
|
-
"constructs": "^10.4.
|
|
66
|
+
"aws-cdk-lib": "^2.233.0",
|
|
67
|
+
"constructs": "^10.4.0"
|
|
65
68
|
},
|
|
66
69
|
"publishConfig": {
|
|
67
70
|
"access": "public"
|
|
@@ -3,26 +3,27 @@ module feature
|
|
|
3
3
|
go 1.24.0
|
|
4
4
|
|
|
5
5
|
require (
|
|
6
|
-
github.com/aws/aws-lambda-go v1.
|
|
7
|
-
github.com/aws/aws-sdk-go-v2 v1.
|
|
8
|
-
github.com/aws/aws-sdk-go-v2/config v1.
|
|
9
|
-
github.com/aws/aws-sdk-go-v2/service/s3 v1.
|
|
6
|
+
github.com/aws/aws-lambda-go v1.51.1
|
|
7
|
+
github.com/aws/aws-sdk-go-v2 v1.41.0
|
|
8
|
+
github.com/aws/aws-sdk-go-v2/config v1.32.6
|
|
9
|
+
github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0
|
|
10
10
|
)
|
|
11
11
|
|
|
12
12
|
require (
|
|
13
|
-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.
|
|
14
|
-
github.com/aws/aws-sdk-go-v2/credentials v1.
|
|
15
|
-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.
|
|
16
|
-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.
|
|
17
|
-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.
|
|
13
|
+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 // indirect
|
|
14
|
+
github.com/aws/aws-sdk-go-v2/credentials v1.19.6 // indirect
|
|
15
|
+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16 // indirect
|
|
16
|
+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 // indirect
|
|
17
|
+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 // indirect
|
|
18
18
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
|
|
19
|
-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.
|
|
20
|
-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.
|
|
21
|
-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.
|
|
22
|
-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.
|
|
23
|
-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.
|
|
24
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
25
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
26
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
27
|
-
github.com/aws/
|
|
19
|
+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16 // indirect
|
|
20
|
+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect
|
|
21
|
+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7 // indirect
|
|
22
|
+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 // indirect
|
|
23
|
+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16 // indirect
|
|
24
|
+
github.com/aws/aws-sdk-go-v2/service/signin v1.0.4 // indirect
|
|
25
|
+
github.com/aws/aws-sdk-go-v2/service/sso v1.30.8 // indirect
|
|
26
|
+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12 // indirect
|
|
27
|
+
github.com/aws/aws-sdk-go-v2/service/sts v1.41.5 // indirect
|
|
28
|
+
github.com/aws/smithy-go v1.24.0 // indirect
|
|
28
29
|
)
|
|
@@ -1,41 +1,43 @@
|
|
|
1
|
-
github.com/aws/aws-lambda-go v1.
|
|
2
|
-
github.com/aws/aws-lambda-go v1.
|
|
3
|
-
github.com/aws/aws-sdk-go-v2 v1.
|
|
4
|
-
github.com/aws/aws-sdk-go-v2 v1.
|
|
5
|
-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.
|
|
6
|
-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.
|
|
7
|
-
github.com/aws/aws-sdk-go-v2/config v1.
|
|
8
|
-
github.com/aws/aws-sdk-go-v2/config v1.
|
|
9
|
-
github.com/aws/aws-sdk-go-v2/credentials v1.
|
|
10
|
-
github.com/aws/aws-sdk-go-v2/credentials v1.
|
|
11
|
-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.
|
|
12
|
-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.
|
|
13
|
-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.
|
|
14
|
-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.
|
|
15
|
-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.
|
|
16
|
-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.
|
|
1
|
+
github.com/aws/aws-lambda-go v1.51.1 h1:FpqpCK2WOSoq6hJvO9PhN44GzZHWCN3e9DUQgK0BOKo=
|
|
2
|
+
github.com/aws/aws-lambda-go v1.51.1/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A=
|
|
3
|
+
github.com/aws/aws-sdk-go-v2 v1.41.0 h1:tNvqh1s+v0vFYdA1xq0aOJH+Y5cRyZ5upu6roPgPKd4=
|
|
4
|
+
github.com/aws/aws-sdk-go-v2 v1.41.0/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0=
|
|
5
|
+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4 h1:489krEF9xIGkOaaX3CE/Be2uWjiXrkCH6gUX+bZA/BU=
|
|
6
|
+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.4/go.mod h1:IOAPF6oT9KCsceNTvvYMNHy0+kMF8akOjeDvPENWxp4=
|
|
7
|
+
github.com/aws/aws-sdk-go-v2/config v1.32.6 h1:hFLBGUKjmLAekvi1evLi5hVvFQtSo3GYwi+Bx4lpJf8=
|
|
8
|
+
github.com/aws/aws-sdk-go-v2/config v1.32.6/go.mod h1:lcUL/gcd8WyjCrMnxez5OXkO3/rwcNmvfno62tnXNcI=
|
|
9
|
+
github.com/aws/aws-sdk-go-v2/credentials v1.19.6 h1:F9vWao2TwjV2MyiyVS+duza0NIRtAslgLUM0vTA1ZaE=
|
|
10
|
+
github.com/aws/aws-sdk-go-v2/credentials v1.19.6/go.mod h1:SgHzKjEVsdQr6Opor0ihgWtkWdfRAIwxYzSJ8O85VHY=
|
|
11
|
+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16 h1:80+uETIWS1BqjnN9uJ0dBUaETh+P1XwFy5vwHwK5r9k=
|
|
12
|
+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16/go.mod h1:wOOsYuxYuB/7FlnVtzeBYRcjSRtQpAW0hCP7tIULMwo=
|
|
13
|
+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 h1:rgGwPzb82iBYSvHMHXc8h9mRoOUBZIGFgKb9qniaZZc=
|
|
14
|
+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16/go.mod h1:L/UxsGeKpGoIj6DxfhOWHWQ/kGKcd4I1VncE4++IyKA=
|
|
15
|
+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 h1:1jtGzuV7c82xnqOVfx2F0xmJcOw5374L7N6juGW6x6U=
|
|
16
|
+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16/go.mod h1:M2E5OQf+XLe+SZGmmpaI2yy+J326aFf6/+54PoxSANc=
|
|
17
17
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
|
|
18
18
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
|
|
19
|
-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.
|
|
20
|
-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.
|
|
21
|
-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.
|
|
22
|
-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.
|
|
23
|
-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.
|
|
24
|
-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.
|
|
25
|
-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.
|
|
26
|
-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.
|
|
27
|
-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.
|
|
28
|
-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.
|
|
29
|
-
github.com/aws/aws-sdk-go-v2/service/s3 v1.
|
|
30
|
-
github.com/aws/aws-sdk-go-v2/service/s3 v1.
|
|
31
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
32
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
33
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
34
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
35
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
36
|
-
github.com/aws/aws-sdk-go-v2/service/
|
|
37
|
-
github.com/aws/
|
|
38
|
-
github.com/aws/
|
|
19
|
+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16 h1:CjMzUs78RDDv4ROu3JnJn/Ig1r6ZD7/T2DXLLRpejic=
|
|
20
|
+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.16/go.mod h1:uVW4OLBqbJXSHJYA9svT9BluSvvwbzLQ2Crf6UPzR3c=
|
|
21
|
+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E=
|
|
22
|
+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow=
|
|
23
|
+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7 h1:DIBqIrJ7hv+e4CmIk2z3pyKT+3B6qVMgRsawHiR3qso=
|
|
24
|
+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.7/go.mod h1:vLm00xmBke75UmpNvOcZQ/Q30ZFjbczeLFqGx5urmGo=
|
|
25
|
+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 h1:oHjJHeUy0ImIV0bsrX0X91GkV5nJAyv1l1CC9lnO0TI=
|
|
26
|
+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16/go.mod h1:iRSNGgOYmiYwSCXxXaKb9HfOEj40+oTKn8pTxMlYkRM=
|
|
27
|
+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16 h1:NSbvS17MlI2lurYgXnCOLvCFX38sBW4eiVER7+kkgsU=
|
|
28
|
+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.16/go.mod h1:SwT8Tmqd4sA6G1qaGdzWCJN99bUmPGHfRwwq3G5Qb+A=
|
|
29
|
+
github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0 h1:MIWra+MSq53CFaXXAywB2qg9YvVZifkk6vEGl/1Qor0=
|
|
30
|
+
github.com/aws/aws-sdk-go-v2/service/s3 v1.95.0/go.mod h1:79S2BdqCJpScXZA2y+cpZuocWsjGjJINyXnOsf5DTz8=
|
|
31
|
+
github.com/aws/aws-sdk-go-v2/service/signin v1.0.4 h1:HpI7aMmJ+mm1wkSHIA2t5EaFFv5EFYXePW30p1EIrbQ=
|
|
32
|
+
github.com/aws/aws-sdk-go-v2/service/signin v1.0.4/go.mod h1:C5RdGMYGlfM0gYq/tifqgn4EbyX99V15P2V3R+VHbQU=
|
|
33
|
+
github.com/aws/aws-sdk-go-v2/service/sso v1.30.8 h1:aM/Q24rIlS3bRAhTyFurowU8A0SMyGDtEOY/l/s/1Uw=
|
|
34
|
+
github.com/aws/aws-sdk-go-v2/service/sso v1.30.8/go.mod h1:+fWt2UHSb4kS7Pu8y+BMBvJF0EWx+4H0hzNwtDNRTrg=
|
|
35
|
+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12 h1:AHDr0DaHIAo8c9t1emrzAlVDFp+iMMKnPdYy6XO4MCE=
|
|
36
|
+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12/go.mod h1:GQ73XawFFiWxyWXMHWfhiomvP3tXtdNar/fi8z18sx0=
|
|
37
|
+
github.com/aws/aws-sdk-go-v2/service/sts v1.41.5 h1:SciGFVNZ4mHdm7gpD1dgZYnCuVdX1s+lFTg4+4DOy70=
|
|
38
|
+
github.com/aws/aws-sdk-go-v2/service/sts v1.41.5/go.mod h1:iW40X4QBmUxdP+fZNOpfmkdMZqsovezbAeO+Ubiv2pk=
|
|
39
|
+
github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk=
|
|
40
|
+
github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
|
|
39
41
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
40
42
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
41
43
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
|
@@ -15,15 +15,16 @@ import (
|
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
type Bucket struct {
|
|
18
|
-
name
|
|
19
|
-
region
|
|
18
|
+
name string
|
|
19
|
+
region string
|
|
20
|
+
accountId string
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
func handleRequest(ctx context.Context, event cfn.Event) (cfn.Response, error) {
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
if
|
|
26
|
-
|
|
25
|
+
physicalResourceId := event.PhysicalResourceID
|
|
26
|
+
if physicalResourceId == "" {
|
|
27
|
+
physicalResourceId = "BucketMeshReplication"
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
replicationRoleArn := event.ResourceProperties["replicationRoleArn"].(string)
|
|
@@ -63,7 +64,7 @@ func handleRequest(ctx context.Context, event cfn.Event) (cfn.Response, error) {
|
|
|
63
64
|
StackID: event.StackID,
|
|
64
65
|
RequestID: event.RequestID,
|
|
65
66
|
LogicalResourceID: event.LogicalResourceID,
|
|
66
|
-
PhysicalResourceID:
|
|
67
|
+
PhysicalResourceID: physicalResourceId,
|
|
67
68
|
Data: map[string]any{},
|
|
68
69
|
}, nil
|
|
69
70
|
}
|
|
@@ -78,7 +79,7 @@ func handleRequest(ctx context.Context, event cfn.Event) (cfn.Response, error) {
|
|
|
78
79
|
continue
|
|
79
80
|
}
|
|
80
81
|
|
|
81
|
-
ruleID := fmt.Sprintf("replicate-%s-to-%s", srcBucket, dstBucket)
|
|
82
|
+
ruleID := fmt.Sprintf("replicate-%s-to-%s", srcBucket.name, dstBucket.name)
|
|
82
83
|
|
|
83
84
|
rules = append(rules, types.ReplicationRule{
|
|
84
85
|
ID: aws.String(ruleID),
|
|
@@ -88,7 +89,11 @@ func handleRequest(ctx context.Context, event cfn.Event) (cfn.Response, error) {
|
|
|
88
89
|
Prefix: aws.String(""),
|
|
89
90
|
},
|
|
90
91
|
Destination: &types.Destination{
|
|
91
|
-
Bucket:
|
|
92
|
+
Bucket: aws.String("arn:aws:s3:::" + dstBucket.name),
|
|
93
|
+
Account: aws.String(dstBucket.accountId),
|
|
94
|
+
AccessControlTranslation: &types.AccessControlTranslation{
|
|
95
|
+
Owner: types.OwnerOverrideDestination,
|
|
96
|
+
},
|
|
92
97
|
},
|
|
93
98
|
DeleteMarkerReplication: &types.DeleteMarkerReplication{
|
|
94
99
|
Status: types.DeleteMarkerReplicationStatusEnabled,
|
|
@@ -128,7 +133,7 @@ func handleRequest(ctx context.Context, event cfn.Event) (cfn.Response, error) {
|
|
|
128
133
|
StackID: event.StackID,
|
|
129
134
|
RequestID: event.RequestID,
|
|
130
135
|
LogicalResourceID: event.LogicalResourceID,
|
|
131
|
-
PhysicalResourceID:
|
|
136
|
+
PhysicalResourceID: physicalResourceId,
|
|
132
137
|
Data: map[string]any{},
|
|
133
138
|
}, nil
|
|
134
139
|
|
|
@@ -162,7 +167,7 @@ func handleRequest(ctx context.Context, event cfn.Event) (cfn.Response, error) {
|
|
|
162
167
|
StackID: event.StackID,
|
|
163
168
|
RequestID: event.RequestID,
|
|
164
169
|
LogicalResourceID: event.LogicalResourceID,
|
|
165
|
-
PhysicalResourceID:
|
|
170
|
+
PhysicalResourceID: physicalResourceId,
|
|
166
171
|
Data: map[string]any{},
|
|
167
172
|
}, nil
|
|
168
173
|
|
package/src/bucket-mesh/index.ts
CHANGED
|
@@ -24,6 +24,7 @@ class BucketMeshResource extends CustomResource {
|
|
|
24
24
|
buckets: props.buckets.map((b) => ({
|
|
25
25
|
name: b.bucketName,
|
|
26
26
|
region: Stack.of(b).region,
|
|
27
|
+
accountId: Stack.of(b).account,
|
|
27
28
|
})),
|
|
28
29
|
replicationRoleArn: props.role.roleArn,
|
|
29
30
|
},
|
|
@@ -54,6 +55,25 @@ export class BucketMesh extends Construct {
|
|
|
54
55
|
}),
|
|
55
56
|
);
|
|
56
57
|
|
|
58
|
+
replicationRole.addToPolicy(
|
|
59
|
+
new PolicyStatement({
|
|
60
|
+
effect: Effect.ALLOW,
|
|
61
|
+
actions: [
|
|
62
|
+
"s3:GetObjectVersion",
|
|
63
|
+
"s3:GetObjectVersionAcl",
|
|
64
|
+
"s3:GetObjectVersionTagging",
|
|
65
|
+
"s3:GetObjectVersionForReplication",
|
|
66
|
+
"s3:GetObjectRetention",
|
|
67
|
+
"s3:GetObjectLegalHold",
|
|
68
|
+
"s3:ReplicateObject",
|
|
69
|
+
"s3:ReplicateDelete",
|
|
70
|
+
"s3:ReplicateTags",
|
|
71
|
+
"s3:ObjectOwnerOverrideToBucketOwner",
|
|
72
|
+
],
|
|
73
|
+
resources: props.buckets.map(({ bucketArn }) => `${bucketArn}/*`),
|
|
74
|
+
}),
|
|
75
|
+
);
|
|
76
|
+
|
|
57
77
|
new BucketMeshResource(this, "Resource", {
|
|
58
78
|
buckets: props.buckets,
|
|
59
79
|
role: replicationRole,
|