@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flit/cdk-bucket-mesh",
3
- "version": "0.2.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.232.1-alpha.0",
51
- "@types/node": "^24.10.2",
52
- "aws-cdk-lib": "^2.232.0",
53
- "constructs": "^10.4.3",
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.14",
56
- "jsii-pacmak": "^1.121.0",
57
- "prettier": "^3.7.4",
58
- "prettier-plugin-packagejson": "^2.5.20",
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.232.0",
64
- "constructs": "^10.4.3"
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.50.0
7
- github.com/aws/aws-sdk-go-v2 v1.39.6
8
- github.com/aws/aws-sdk-go-v2/config v1.31.20
9
- github.com/aws/aws-sdk-go-v2/service/s3 v1.90.2
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.3 // indirect
14
- github.com/aws/aws-sdk-go-v2/credentials v1.18.24 // indirect
15
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 // indirect
16
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect
17
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 // indirect
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.13 // indirect
20
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 // indirect
21
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 // indirect
22
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 // indirect
23
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 // indirect
24
- github.com/aws/aws-sdk-go-v2/service/sso v1.30.3 // indirect
25
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.7 // indirect
26
- github.com/aws/aws-sdk-go-v2/service/sts v1.40.2 // indirect
27
- github.com/aws/smithy-go v1.23.2 // indirect
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.50.0 h1:0GzY18vT4EsCvIyk3kn3ZH5Jg30NRlgYaai1w0aGPMU=
2
- github.com/aws/aws-lambda-go v1.50.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A=
3
- github.com/aws/aws-sdk-go-v2 v1.39.6 h1:2JrPCVgWJm7bm83BDwY5z8ietmeJUbh3O2ACnn+Xsqk=
4
- github.com/aws/aws-sdk-go-v2 v1.39.6/go.mod h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE=
5
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 h1:DHctwEM8P8iTXFxC/QK0MRjwEpWQeM9yzidCRjldUz0=
6
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3/go.mod h1:xdCzcZEtnSTKVDOmUZs4l/j3pSV6rpo1WXl5ugNsL8Y=
7
- github.com/aws/aws-sdk-go-v2/config v1.31.20 h1:/jWF4Wu90EhKCgjTdy1DGxcbcbNrjfBHvksEL79tfQc=
8
- github.com/aws/aws-sdk-go-v2/config v1.31.20/go.mod h1:95Hh1Tc5VYKL9NJ7tAkDcqeKt+MCXQB1hQZaRdJIZE0=
9
- github.com/aws/aws-sdk-go-v2/credentials v1.18.24 h1:iJ2FmPT35EaIB0+kMa6TnQ+PwG5A1prEdAw+PsMzfHg=
10
- github.com/aws/aws-sdk-go-v2/credentials v1.18.24/go.mod h1:U91+DrfjAiXPDEGYhh/x29o4p0qHX5HDqG7y5VViv64=
11
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 h1:T1brd5dR3/fzNFAQch/iBKeX07/ffu/cLu+q+RuzEWk=
12
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13/go.mod h1:Peg/GBAQ6JDt+RoBf4meB1wylmAipb7Kg2ZFakZTlwk=
13
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 h1:a+8/MLcWlIxo1lF9xaGt3J/u3yOZx+CdSveSNwjhD40=
14
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13/go.mod h1:oGnKwIYZ4XttyU2JWxFrwvhF6YKiK/9/wmE3v3Iu9K8=
15
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 h1:HBSI2kDkMdWz4ZM7FjwE7e/pWDEZ+nR95x8Ztet1ooY=
16
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13/go.mod h1:YE94ZoDArI7awZqJzBAZ3PDD2zSfuP7w6P2knOzIn8M=
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.13 h1:eg/WYAa12vqTphzIdWMzqYRVKKnCboVPRlvaybNCqPA=
20
- github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.13/go.mod h1:/FDdxWhz1486obGrKKC1HONd7krpk38LBt+dutLcN9k=
21
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o=
22
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo=
23
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4 h1:NvMjwvv8hpGUILarKw7Z4Q0w1H9anXKsesMxtw++MA4=
24
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.4/go.mod h1:455WPHSwaGj2waRSpQp7TsnpOnBfw8iDfPfbwl7KPJE=
25
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13 h1:kDqdFvMY4AtKoACfzIGD8A0+hbT41KTKF//gq7jITfM=
26
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.13/go.mod h1:lmKuogqSU3HzQCwZ9ZtcqOc5XGMqtDK7OIc2+DxiUEg=
27
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13 h1:zhBJXdhWIFZ1acfDYIhu4+LCzdUS2Vbcum7D01dXlHQ=
28
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.13/go.mod h1:JaaOeCE368qn2Hzi3sEzY6FgAZVCIYcC2nwbro2QCh8=
29
- github.com/aws/aws-sdk-go-v2/service/s3 v1.90.2 h1:DhdbtDl4FdNlj31+xiRXANxEE+eC7n8JQz+/ilwQ8Uc=
30
- github.com/aws/aws-sdk-go-v2/service/s3 v1.90.2/go.mod h1:+wArOOrcHUevqdto9k1tKOF5++YTe9JEcPSc9Tx2ZSw=
31
- github.com/aws/aws-sdk-go-v2/service/sso v1.30.3 h1:NjShtS1t8r5LUfFVtFeI8xLAHQNTa7UI0VawXlrBMFQ=
32
- github.com/aws/aws-sdk-go-v2/service/sso v1.30.3/go.mod h1:fKvyjJcz63iL/ftA6RaM8sRCtN4r4zl4tjL3qw5ec7k=
33
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.7 h1:gTsnx0xXNQ6SBbymoDvcoRHL+q4l/dAFsQuKfDWSaGc=
34
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.7/go.mod h1:klO+ejMvYsB4QATfEOIXk8WAEwN4N0aBfJpvC+5SZBo=
35
- github.com/aws/aws-sdk-go-v2/service/sts v1.40.2 h1:HK5ON3KmQV2HcAunnx4sKLB9aPf3gKGwVAf7xnx0QT0=
36
- github.com/aws/aws-sdk-go-v2/service/sts v1.40.2/go.mod h1:E19xDjpzPZC7LS2knI9E6BaRFDK43Eul7vd6rSq2HWk=
37
- github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM=
38
- github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
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 string
19
- region string
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
- physicalResourceID := event.PhysicalResourceID
25
- if physicalResourceID == "" {
26
- physicalResourceID = "BucketMeshReplication"
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: 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: aws.String("arn:aws:s3:::" + dstBucket.name),
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: 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: physicalResourceID,
170
+ PhysicalResourceID: physicalResourceId,
166
171
  Data: map[string]any{},
167
172
  }, nil
168
173
 
@@ -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,