@aws-solutions-constructs/aws-cloudfront-oai-s3 2.79.0

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.
Files changed (108) hide show
  1. package/.jsii +4403 -0
  2. package/README.md +109 -0
  3. package/architecture.png +0 -0
  4. package/integ.config.json +7 -0
  5. package/lib/index.d.ts +118 -0
  6. package/lib/index.js +106 -0
  7. package/package.json +95 -0
  8. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.d.ts +13 -0
  9. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js +56 -0
  10. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  11. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cdk.out +1 -0
  12. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.assets.json +32 -0
  13. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.template.json +1061 -0
  14. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cftoais3bucketencryptedwithmanagedkeyprovidedasexistingbucketIntegDefaultTestDeployAssert105E804F.assets.json +19 -0
  15. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cftoais3bucketencryptedwithmanagedkeyprovidedasexistingbucketIntegDefaultTestDeployAssert105E804F.template.json +36 -0
  16. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/integ.json +12 -0
  17. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/manifest.json +215 -0
  18. package/test/integ.cftoais3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/tree.json +1105 -0
  19. package/test/integ.cftoais3-custom-headers.d.ts +13 -0
  20. package/test/integ.cftoais3-custom-headers.js +71 -0
  21. package/test/integ.cftoais3-custom-headers.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  22. package/test/integ.cftoais3-custom-headers.js.snapshot/cdk.out +1 -0
  23. package/test/integ.cftoais3-custom-headers.js.snapshot/cftoais3-custom-headers.assets.json +32 -0
  24. package/test/integ.cftoais3-custom-headers.js.snapshot/cftoais3-custom-headers.template.json +1116 -0
  25. package/test/integ.cftoais3-custom-headers.js.snapshot/cftoais3customheadersIntegDefaultTestDeployAssert5AA11BA9.assets.json +19 -0
  26. package/test/integ.cftoais3-custom-headers.js.snapshot/cftoais3customheadersIntegDefaultTestDeployAssert5AA11BA9.template.json +36 -0
  27. package/test/integ.cftoais3-custom-headers.js.snapshot/integ.json +12 -0
  28. package/test/integ.cftoais3-custom-headers.js.snapshot/manifest.json +227 -0
  29. package/test/integ.cftoais3-custom-headers.js.snapshot/tree.json +1196 -0
  30. package/test/integ.cftoais3-custom-originPath.d.ts +13 -0
  31. package/test/integ.cftoais3-custom-originPath.js +48 -0
  32. package/test/integ.cftoais3-custom-originPath.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  33. package/test/integ.cftoais3-custom-originPath.js.snapshot/cdk.out +1 -0
  34. package/test/integ.cftoais3-custom-originPath.js.snapshot/cftoais3-custom-originPath.assets.json +32 -0
  35. package/test/integ.cftoais3-custom-originPath.js.snapshot/cftoais3-custom-originPath.template.json +1085 -0
  36. package/test/integ.cftoais3-custom-originPath.js.snapshot/cftoais3customoriginPathIntegDefaultTestDeployAssert1C351914.assets.json +19 -0
  37. package/test/integ.cftoais3-custom-originPath.js.snapshot/cftoais3customoriginPathIntegDefaultTestDeployAssert1C351914.template.json +36 -0
  38. package/test/integ.cftoais3-custom-originPath.js.snapshot/integ.json +12 -0
  39. package/test/integ.cftoais3-custom-originPath.js.snapshot/manifest.json +221 -0
  40. package/test/integ.cftoais3-custom-originPath.js.snapshot/tree.json +1147 -0
  41. package/test/integ.cftoais3-customLoggingBuckets.d.ts +13 -0
  42. package/test/integ.cftoais3-customLoggingBuckets.js +64 -0
  43. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  44. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/cdk.out +1 -0
  45. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/cftoais3-customLoggingBuckets.assets.json +32 -0
  46. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/cftoais3-customLoggingBuckets.template.json +1109 -0
  47. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/cftoais3customLoggingBucketsIntegDefaultTestDeployAssert8F33EF2A.assets.json +19 -0
  48. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/cftoais3customLoggingBucketsIntegDefaultTestDeployAssert8F33EF2A.template.json +36 -0
  49. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/integ.json +12 -0
  50. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/manifest.json +221 -0
  51. package/test/integ.cftoais3-customLoggingBuckets.js.snapshot/tree.json +1172 -0
  52. package/test/integ.cftoais3-existing-bucket.d.ts +13 -0
  53. package/test/integ.cftoais3-existing-bucket.js +59 -0
  54. package/test/integ.cftoais3-existing-bucket.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  55. package/test/integ.cftoais3-existing-bucket.js.snapshot/cdk.out +1 -0
  56. package/test/integ.cftoais3-existing-bucket.js.snapshot/cftoais3-existing-bucket.assets.json +32 -0
  57. package/test/integ.cftoais3-existing-bucket.js.snapshot/cftoais3-existing-bucket.template.json +1131 -0
  58. package/test/integ.cftoais3-existing-bucket.js.snapshot/cftoais3existingbucketIntegDefaultTestDeployAssertB7627F26.assets.json +19 -0
  59. package/test/integ.cftoais3-existing-bucket.js.snapshot/cftoais3existingbucketIntegDefaultTestDeployAssertB7627F26.template.json +36 -0
  60. package/test/integ.cftoais3-existing-bucket.js.snapshot/integ.json +12 -0
  61. package/test/integ.cftoais3-existing-bucket.js.snapshot/manifest.json +233 -0
  62. package/test/integ.cftoais3-existing-bucket.js.snapshot/tree.json +1240 -0
  63. package/test/integ.cftoais3-no-arguments.d.ts +13 -0
  64. package/test/integ.cftoais3-no-arguments.js +53 -0
  65. package/test/integ.cftoais3-no-arguments.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  66. package/test/integ.cftoais3-no-arguments.js.snapshot/cdk.out +1 -0
  67. package/test/integ.cftoais3-no-arguments.js.snapshot/cftoais3-no-arguments.assets.json +32 -0
  68. package/test/integ.cftoais3-no-arguments.js.snapshot/cftoais3-no-arguments.template.json +1094 -0
  69. package/test/integ.cftoais3-no-arguments.js.snapshot/cftoais3noargumentsIntegDefaultTestDeployAssert5CF03E3D.assets.json +19 -0
  70. package/test/integ.cftoais3-no-arguments.js.snapshot/cftoais3noargumentsIntegDefaultTestDeployAssert5CF03E3D.template.json +36 -0
  71. package/test/integ.cftoais3-no-arguments.js.snapshot/integ.json +12 -0
  72. package/test/integ.cftoais3-no-arguments.js.snapshot/manifest.json +356 -0
  73. package/test/integ.cftoais3-no-arguments.js.snapshot/tree.json +1146 -0
  74. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.d.ts +13 -0
  75. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js +60 -0
  76. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  77. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/cdk.out +1 -0
  78. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/cftoais3-no-cloudfront-s3-access-logs.assets.json +32 -0
  79. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/cftoais3-no-cloudfront-s3-access-logs.template.json +743 -0
  80. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/cftoais3nocloudfronts3accesslogsIntegDefaultTestDeployAssert6D810275.assets.json +19 -0
  81. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/cftoais3nocloudfronts3accesslogsIntegDefaultTestDeployAssert6D810275.template.json +36 -0
  82. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/integ.json +12 -0
  83. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/manifest.json +185 -0
  84. package/test/integ.cftoais3-no-cloudfront-s3-access-logs.js.snapshot/tree.json +726 -0
  85. package/test/integ.cftoais3-no-logging.d.ts +13 -0
  86. package/test/integ.cftoais3-no-logging.js +56 -0
  87. package/test/integ.cftoais3-no-logging.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  88. package/test/integ.cftoais3-no-logging.js.snapshot/cdk.out +1 -0
  89. package/test/integ.cftoais3-no-logging.js.snapshot/cftoais3-no-logging.assets.json +32 -0
  90. package/test/integ.cftoais3-no-logging.js.snapshot/cftoais3-no-logging.template.json +576 -0
  91. package/test/integ.cftoais3-no-logging.js.snapshot/cftoais3nologgingIntegDefaultTestDeployAssertCED06EE4.assets.json +19 -0
  92. package/test/integ.cftoais3-no-logging.js.snapshot/cftoais3nologgingIntegDefaultTestDeployAssertCED06EE4.template.json +36 -0
  93. package/test/integ.cftoais3-no-logging.js.snapshot/integ.json +12 -0
  94. package/test/integ.cftoais3-no-logging.js.snapshot/manifest.json +167 -0
  95. package/test/integ.cftoais3-no-logging.js.snapshot/tree.json +542 -0
  96. package/test/integ.cftoais3-no-security-headers.d.ts +13 -0
  97. package/test/integ.cftoais3-no-security-headers.js +50 -0
  98. package/test/integ.cftoais3-no-security-headers.js.snapshot/asset.faa95a81ae7d7373f3e1f242268f904eb748d8d0fdd306e8a6fe515a1905a7d6/index.js +1 -0
  99. package/test/integ.cftoais3-no-security-headers.js.snapshot/cdk.out +1 -0
  100. package/test/integ.cftoais3-no-security-headers.js.snapshot/cftoais3-no-security-headers.assets.json +32 -0
  101. package/test/integ.cftoais3-no-security-headers.js.snapshot/cftoais3-no-security-headers.template.json +1061 -0
  102. package/test/integ.cftoais3-no-security-headers.js.snapshot/cftoais3nosecurityheadersIntegDefaultTestDeployAssertAB4B2F28.assets.json +19 -0
  103. package/test/integ.cftoais3-no-security-headers.js.snapshot/cftoais3nosecurityheadersIntegDefaultTestDeployAssertAB4B2F28.template.json +36 -0
  104. package/test/integ.cftoais3-no-security-headers.js.snapshot/integ.json +12 -0
  105. package/test/integ.cftoais3-no-security-headers.js.snapshot/manifest.json +215 -0
  106. package/test/integ.cftoais3-no-security-headers.js.snapshot/tree.json +1105 -0
  107. package/test/test.cloudfront-oai-s3.test.d.ts +13 -0
  108. package/test/test.cloudfront-oai-s3.test.js +702 -0
@@ -0,0 +1,1196 @@
1
+ {
2
+ "version": "tree-0.1",
3
+ "tree": {
4
+ "id": "App",
5
+ "path": "",
6
+ "children": {
7
+ "cftoais3-custom-headers": {
8
+ "id": "cftoais3-custom-headers",
9
+ "path": "cftoais3-custom-headers",
10
+ "children": {
11
+ "MyFunction": {
12
+ "id": "MyFunction",
13
+ "path": "cftoais3-custom-headers/MyFunction",
14
+ "children": {
15
+ "Resource": {
16
+ "id": "Resource",
17
+ "path": "cftoais3-custom-headers/MyFunction/Resource",
18
+ "attributes": {
19
+ "aws:cdk:cloudformation:type": "AWS::CloudFront::Function",
20
+ "aws:cdk:cloudformation:props": {
21
+ "autoPublish": true,
22
+ "functionCode": "function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; base-uri 'self'; img-src 'self'; script-src 'self'; style-src 'self' https:; object-src 'none'; frame-ancestors 'none'; font-src 'self' https:; form-action 'self'; manifest-src 'self'; connect-src 'self'\" }; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; headers['referrer-policy'] = { value: 'same-origin' }; return response; }",
23
+ "functionConfig": {
24
+ "comment": {
25
+ "Fn::Join": [
26
+ "",
27
+ [
28
+ {
29
+ "Ref": "AWS::Region"
30
+ },
31
+ "cftoais3customheadersMyFunction8E246289"
32
+ ]
33
+ ]
34
+ },
35
+ "runtime": "cloudfront-js-1.0"
36
+ },
37
+ "name": {
38
+ "Fn::Join": [
39
+ "",
40
+ [
41
+ {
42
+ "Ref": "AWS::Region"
43
+ },
44
+ "cftoais3customheadersMyFunction8E246289"
45
+ ]
46
+ ]
47
+ }
48
+ }
49
+ },
50
+ "constructInfo": {
51
+ "fqn": "aws-cdk-lib.aws_cloudfront.CfnFunction",
52
+ "version": "2.177.0"
53
+ }
54
+ }
55
+ },
56
+ "constructInfo": {
57
+ "fqn": "aws-cdk-lib.aws_cloudfront.Function",
58
+ "version": "2.177.0"
59
+ }
60
+ },
61
+ "test-cloudfront-oai-s3": {
62
+ "id": "test-cloudfront-oai-s3",
63
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3",
64
+ "children": {
65
+ "S3LoggingBucket": {
66
+ "id": "S3LoggingBucket",
67
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3LoggingBucket",
68
+ "children": {
69
+ "Resource": {
70
+ "id": "Resource",
71
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3LoggingBucket/Resource",
72
+ "attributes": {
73
+ "aws:cdk:cloudformation:type": "AWS::S3::Bucket",
74
+ "aws:cdk:cloudformation:props": {
75
+ "bucketEncryption": {
76
+ "serverSideEncryptionConfiguration": [
77
+ {
78
+ "serverSideEncryptionByDefault": {
79
+ "sseAlgorithm": "AES256"
80
+ }
81
+ }
82
+ ]
83
+ },
84
+ "publicAccessBlockConfiguration": {
85
+ "blockPublicAcls": true,
86
+ "blockPublicPolicy": true,
87
+ "ignorePublicAcls": true,
88
+ "restrictPublicBuckets": true
89
+ },
90
+ "tags": [
91
+ {
92
+ "key": "aws-cdk:auto-delete-objects",
93
+ "value": "true"
94
+ }
95
+ ],
96
+ "versioningConfiguration": {
97
+ "status": "Enabled"
98
+ }
99
+ }
100
+ },
101
+ "constructInfo": {
102
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucket",
103
+ "version": "2.177.0"
104
+ }
105
+ },
106
+ "Policy": {
107
+ "id": "Policy",
108
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3LoggingBucket/Policy",
109
+ "children": {
110
+ "Resource": {
111
+ "id": "Resource",
112
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3LoggingBucket/Policy/Resource",
113
+ "attributes": {
114
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
115
+ "aws:cdk:cloudformation:props": {
116
+ "bucket": {
117
+ "Ref": "testcloudfrontoais3S3LoggingBucketC8A21DD9"
118
+ },
119
+ "policyDocument": {
120
+ "Statement": [
121
+ {
122
+ "Action": "s3:*",
123
+ "Condition": {
124
+ "Bool": {
125
+ "aws:SecureTransport": "false"
126
+ }
127
+ },
128
+ "Effect": "Deny",
129
+ "Principal": {
130
+ "AWS": "*"
131
+ },
132
+ "Resource": [
133
+ {
134
+ "Fn::GetAtt": [
135
+ "testcloudfrontoais3S3LoggingBucketC8A21DD9",
136
+ "Arn"
137
+ ]
138
+ },
139
+ {
140
+ "Fn::Join": [
141
+ "",
142
+ [
143
+ {
144
+ "Fn::GetAtt": [
145
+ "testcloudfrontoais3S3LoggingBucketC8A21DD9",
146
+ "Arn"
147
+ ]
148
+ },
149
+ "/*"
150
+ ]
151
+ ]
152
+ }
153
+ ]
154
+ },
155
+ {
156
+ "Action": [
157
+ "s3:DeleteObject*",
158
+ "s3:GetBucket*",
159
+ "s3:List*",
160
+ "s3:PutBucketPolicy"
161
+ ],
162
+ "Effect": "Allow",
163
+ "Principal": {
164
+ "AWS": {
165
+ "Fn::GetAtt": [
166
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
167
+ "Arn"
168
+ ]
169
+ }
170
+ },
171
+ "Resource": [
172
+ {
173
+ "Fn::GetAtt": [
174
+ "testcloudfrontoais3S3LoggingBucketC8A21DD9",
175
+ "Arn"
176
+ ]
177
+ },
178
+ {
179
+ "Fn::Join": [
180
+ "",
181
+ [
182
+ {
183
+ "Fn::GetAtt": [
184
+ "testcloudfrontoais3S3LoggingBucketC8A21DD9",
185
+ "Arn"
186
+ ]
187
+ },
188
+ "/*"
189
+ ]
190
+ ]
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ "Action": "s3:PutObject",
196
+ "Condition": {
197
+ "ArnLike": {
198
+ "aws:SourceArn": {
199
+ "Fn::GetAtt": [
200
+ "testcloudfrontoais3S3Bucket578AB9F3",
201
+ "Arn"
202
+ ]
203
+ }
204
+ },
205
+ "StringEquals": {
206
+ "aws:SourceAccount": {
207
+ "Ref": "AWS::AccountId"
208
+ }
209
+ }
210
+ },
211
+ "Effect": "Allow",
212
+ "Principal": {
213
+ "Service": "logging.s3.amazonaws.com"
214
+ },
215
+ "Resource": {
216
+ "Fn::Join": [
217
+ "",
218
+ [
219
+ {
220
+ "Fn::GetAtt": [
221
+ "testcloudfrontoais3S3LoggingBucketC8A21DD9",
222
+ "Arn"
223
+ ]
224
+ },
225
+ "/*"
226
+ ]
227
+ ]
228
+ }
229
+ }
230
+ ],
231
+ "Version": "2012-10-17"
232
+ }
233
+ }
234
+ },
235
+ "constructInfo": {
236
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy",
237
+ "version": "2.177.0"
238
+ }
239
+ }
240
+ },
241
+ "constructInfo": {
242
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
243
+ "version": "2.177.0"
244
+ }
245
+ },
246
+ "AutoDeleteObjectsCustomResource": {
247
+ "id": "AutoDeleteObjectsCustomResource",
248
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource",
249
+ "children": {
250
+ "Default": {
251
+ "id": "Default",
252
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default",
253
+ "constructInfo": {
254
+ "fqn": "aws-cdk-lib.CfnResource",
255
+ "version": "2.177.0"
256
+ }
257
+ }
258
+ },
259
+ "constructInfo": {
260
+ "fqn": "aws-cdk-lib.CustomResource",
261
+ "version": "2.177.0"
262
+ }
263
+ }
264
+ },
265
+ "constructInfo": {
266
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
267
+ "version": "2.177.0"
268
+ }
269
+ },
270
+ "S3Bucket": {
271
+ "id": "S3Bucket",
272
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3Bucket",
273
+ "children": {
274
+ "Resource": {
275
+ "id": "Resource",
276
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3Bucket/Resource",
277
+ "attributes": {
278
+ "aws:cdk:cloudformation:type": "AWS::S3::Bucket",
279
+ "aws:cdk:cloudformation:props": {
280
+ "bucketEncryption": {
281
+ "serverSideEncryptionConfiguration": [
282
+ {
283
+ "serverSideEncryptionByDefault": {
284
+ "sseAlgorithm": "AES256"
285
+ }
286
+ }
287
+ ]
288
+ },
289
+ "lifecycleConfiguration": {
290
+ "rules": [
291
+ {
292
+ "noncurrentVersionTransitions": [
293
+ {
294
+ "storageClass": "GLACIER",
295
+ "transitionInDays": 90
296
+ }
297
+ ],
298
+ "status": "Enabled"
299
+ }
300
+ ]
301
+ },
302
+ "loggingConfiguration": {
303
+ "destinationBucketName": {
304
+ "Ref": "testcloudfrontoais3S3LoggingBucketC8A21DD9"
305
+ }
306
+ },
307
+ "publicAccessBlockConfiguration": {
308
+ "blockPublicAcls": true,
309
+ "blockPublicPolicy": true,
310
+ "ignorePublicAcls": true,
311
+ "restrictPublicBuckets": true
312
+ },
313
+ "tags": [
314
+ {
315
+ "key": "aws-cdk:auto-delete-objects",
316
+ "value": "true"
317
+ }
318
+ ],
319
+ "versioningConfiguration": {
320
+ "status": "Enabled"
321
+ }
322
+ }
323
+ },
324
+ "constructInfo": {
325
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucket",
326
+ "version": "2.177.0"
327
+ }
328
+ },
329
+ "Policy": {
330
+ "id": "Policy",
331
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3Bucket/Policy",
332
+ "children": {
333
+ "Resource": {
334
+ "id": "Resource",
335
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3Bucket/Policy/Resource",
336
+ "attributes": {
337
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
338
+ "aws:cdk:cloudformation:props": {
339
+ "bucket": {
340
+ "Ref": "testcloudfrontoais3S3Bucket578AB9F3"
341
+ },
342
+ "policyDocument": {
343
+ "Statement": [
344
+ {
345
+ "Action": "s3:*",
346
+ "Condition": {
347
+ "Bool": {
348
+ "aws:SecureTransport": "false"
349
+ }
350
+ },
351
+ "Effect": "Deny",
352
+ "Principal": {
353
+ "AWS": "*"
354
+ },
355
+ "Resource": [
356
+ {
357
+ "Fn::GetAtt": [
358
+ "testcloudfrontoais3S3Bucket578AB9F3",
359
+ "Arn"
360
+ ]
361
+ },
362
+ {
363
+ "Fn::Join": [
364
+ "",
365
+ [
366
+ {
367
+ "Fn::GetAtt": [
368
+ "testcloudfrontoais3S3Bucket578AB9F3",
369
+ "Arn"
370
+ ]
371
+ },
372
+ "/*"
373
+ ]
374
+ ]
375
+ }
376
+ ]
377
+ },
378
+ {
379
+ "Action": [
380
+ "s3:DeleteObject*",
381
+ "s3:GetBucket*",
382
+ "s3:List*",
383
+ "s3:PutBucketPolicy"
384
+ ],
385
+ "Effect": "Allow",
386
+ "Principal": {
387
+ "AWS": {
388
+ "Fn::GetAtt": [
389
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
390
+ "Arn"
391
+ ]
392
+ }
393
+ },
394
+ "Resource": [
395
+ {
396
+ "Fn::GetAtt": [
397
+ "testcloudfrontoais3S3Bucket578AB9F3",
398
+ "Arn"
399
+ ]
400
+ },
401
+ {
402
+ "Fn::Join": [
403
+ "",
404
+ [
405
+ {
406
+ "Fn::GetAtt": [
407
+ "testcloudfrontoais3S3Bucket578AB9F3",
408
+ "Arn"
409
+ ]
410
+ },
411
+ "/*"
412
+ ]
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ {
418
+ "Action": "s3:GetObject",
419
+ "Effect": "Allow",
420
+ "Principal": {
421
+ "CanonicalUser": {
422
+ "Fn::GetAtt": [
423
+ "testcloudfrontoais3CloudFrontDistributionOrigin1S3OriginF57A3CB1",
424
+ "S3CanonicalUserId"
425
+ ]
426
+ }
427
+ },
428
+ "Resource": {
429
+ "Fn::Join": [
430
+ "",
431
+ [
432
+ {
433
+ "Fn::GetAtt": [
434
+ "testcloudfrontoais3S3Bucket578AB9F3",
435
+ "Arn"
436
+ ]
437
+ },
438
+ "/*"
439
+ ]
440
+ ]
441
+ }
442
+ },
443
+ {
444
+ "Action": "s3:GetObject",
445
+ "Condition": {
446
+ "StringEquals": {
447
+ "AWS:SourceArn": {
448
+ "Fn::Join": [
449
+ "",
450
+ [
451
+ "arn:",
452
+ {
453
+ "Ref": "AWS::Partition"
454
+ },
455
+ ":cloudfront::",
456
+ {
457
+ "Ref": "AWS::AccountId"
458
+ },
459
+ ":distribution/",
460
+ {
461
+ "Ref": "testcloudfrontoais3CloudFrontDistribution0E089CC5"
462
+ }
463
+ ]
464
+ ]
465
+ }
466
+ }
467
+ },
468
+ "Effect": "Allow",
469
+ "Principal": {
470
+ "Service": "cloudfront.amazonaws.com"
471
+ },
472
+ "Resource": {
473
+ "Fn::Join": [
474
+ "",
475
+ [
476
+ {
477
+ "Fn::GetAtt": [
478
+ "testcloudfrontoais3S3Bucket578AB9F3",
479
+ "Arn"
480
+ ]
481
+ },
482
+ "/*"
483
+ ]
484
+ ]
485
+ }
486
+ }
487
+ ],
488
+ "Version": "2012-10-17"
489
+ }
490
+ }
491
+ },
492
+ "constructInfo": {
493
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy",
494
+ "version": "2.177.0"
495
+ }
496
+ }
497
+ },
498
+ "constructInfo": {
499
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
500
+ "version": "2.177.0"
501
+ }
502
+ },
503
+ "AutoDeleteObjectsCustomResource": {
504
+ "id": "AutoDeleteObjectsCustomResource",
505
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3Bucket/AutoDeleteObjectsCustomResource",
506
+ "children": {
507
+ "Default": {
508
+ "id": "Default",
509
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/S3Bucket/AutoDeleteObjectsCustomResource/Default",
510
+ "constructInfo": {
511
+ "fqn": "aws-cdk-lib.CfnResource",
512
+ "version": "2.177.0"
513
+ }
514
+ }
515
+ },
516
+ "constructInfo": {
517
+ "fqn": "aws-cdk-lib.CustomResource",
518
+ "version": "2.177.0"
519
+ }
520
+ }
521
+ },
522
+ "constructInfo": {
523
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
524
+ "version": "2.177.0"
525
+ }
526
+ },
527
+ "SetHttpSecurityHeaders": {
528
+ "id": "SetHttpSecurityHeaders",
529
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/SetHttpSecurityHeaders",
530
+ "children": {
531
+ "Resource": {
532
+ "id": "Resource",
533
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/SetHttpSecurityHeaders/Resource",
534
+ "attributes": {
535
+ "aws:cdk:cloudformation:type": "AWS::CloudFront::Function",
536
+ "aws:cdk:cloudformation:props": {
537
+ "autoPublish": true,
538
+ "functionCode": "function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }",
539
+ "functionConfig": {
540
+ "comment": "SetHttpSecurityHeadersc87f22b85fa5318062da066fa89121f6ede9f39b90",
541
+ "runtime": "cloudfront-js-1.0"
542
+ },
543
+ "name": "SetHttpSecurityHeadersc87f22b85fa5318062da066fa89121f6ede9f39b90"
544
+ }
545
+ },
546
+ "constructInfo": {
547
+ "fqn": "aws-cdk-lib.aws_cloudfront.CfnFunction",
548
+ "version": "2.177.0"
549
+ }
550
+ }
551
+ },
552
+ "constructInfo": {
553
+ "fqn": "aws-cdk-lib.aws_cloudfront.Function",
554
+ "version": "2.177.0"
555
+ }
556
+ },
557
+ "CloudfrontLoggingBucketAccessLog": {
558
+ "id": "CloudfrontLoggingBucketAccessLog",
559
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucketAccessLog",
560
+ "children": {
561
+ "Resource": {
562
+ "id": "Resource",
563
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucketAccessLog/Resource",
564
+ "attributes": {
565
+ "aws:cdk:cloudformation:type": "AWS::S3::Bucket",
566
+ "aws:cdk:cloudformation:props": {
567
+ "bucketEncryption": {
568
+ "serverSideEncryptionConfiguration": [
569
+ {
570
+ "serverSideEncryptionByDefault": {
571
+ "sseAlgorithm": "AES256"
572
+ }
573
+ }
574
+ ]
575
+ },
576
+ "publicAccessBlockConfiguration": {
577
+ "blockPublicAcls": true,
578
+ "blockPublicPolicy": true,
579
+ "ignorePublicAcls": true,
580
+ "restrictPublicBuckets": true
581
+ },
582
+ "tags": [
583
+ {
584
+ "key": "aws-cdk:auto-delete-objects",
585
+ "value": "true"
586
+ }
587
+ ],
588
+ "versioningConfiguration": {
589
+ "status": "Enabled"
590
+ }
591
+ }
592
+ },
593
+ "constructInfo": {
594
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucket",
595
+ "version": "2.177.0"
596
+ }
597
+ },
598
+ "Policy": {
599
+ "id": "Policy",
600
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucketAccessLog/Policy",
601
+ "children": {
602
+ "Resource": {
603
+ "id": "Resource",
604
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucketAccessLog/Policy/Resource",
605
+ "attributes": {
606
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
607
+ "aws:cdk:cloudformation:props": {
608
+ "bucket": {
609
+ "Ref": "testcloudfrontoais3CloudfrontLoggingBucketAccessLogBF5AAF80"
610
+ },
611
+ "policyDocument": {
612
+ "Statement": [
613
+ {
614
+ "Action": "s3:*",
615
+ "Condition": {
616
+ "Bool": {
617
+ "aws:SecureTransport": "false"
618
+ }
619
+ },
620
+ "Effect": "Deny",
621
+ "Principal": {
622
+ "AWS": "*"
623
+ },
624
+ "Resource": [
625
+ {
626
+ "Fn::GetAtt": [
627
+ "testcloudfrontoais3CloudfrontLoggingBucketAccessLogBF5AAF80",
628
+ "Arn"
629
+ ]
630
+ },
631
+ {
632
+ "Fn::Join": [
633
+ "",
634
+ [
635
+ {
636
+ "Fn::GetAtt": [
637
+ "testcloudfrontoais3CloudfrontLoggingBucketAccessLogBF5AAF80",
638
+ "Arn"
639
+ ]
640
+ },
641
+ "/*"
642
+ ]
643
+ ]
644
+ }
645
+ ]
646
+ },
647
+ {
648
+ "Action": [
649
+ "s3:DeleteObject*",
650
+ "s3:GetBucket*",
651
+ "s3:List*",
652
+ "s3:PutBucketPolicy"
653
+ ],
654
+ "Effect": "Allow",
655
+ "Principal": {
656
+ "AWS": {
657
+ "Fn::GetAtt": [
658
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
659
+ "Arn"
660
+ ]
661
+ }
662
+ },
663
+ "Resource": [
664
+ {
665
+ "Fn::GetAtt": [
666
+ "testcloudfrontoais3CloudfrontLoggingBucketAccessLogBF5AAF80",
667
+ "Arn"
668
+ ]
669
+ },
670
+ {
671
+ "Fn::Join": [
672
+ "",
673
+ [
674
+ {
675
+ "Fn::GetAtt": [
676
+ "testcloudfrontoais3CloudfrontLoggingBucketAccessLogBF5AAF80",
677
+ "Arn"
678
+ ]
679
+ },
680
+ "/*"
681
+ ]
682
+ ]
683
+ }
684
+ ]
685
+ },
686
+ {
687
+ "Action": "s3:PutObject",
688
+ "Condition": {
689
+ "ArnLike": {
690
+ "aws:SourceArn": {
691
+ "Fn::GetAtt": [
692
+ "testcloudfrontoais3CloudfrontLoggingBucket55AA79FC",
693
+ "Arn"
694
+ ]
695
+ }
696
+ },
697
+ "StringEquals": {
698
+ "aws:SourceAccount": {
699
+ "Ref": "AWS::AccountId"
700
+ }
701
+ }
702
+ },
703
+ "Effect": "Allow",
704
+ "Principal": {
705
+ "Service": "logging.s3.amazonaws.com"
706
+ },
707
+ "Resource": {
708
+ "Fn::Join": [
709
+ "",
710
+ [
711
+ {
712
+ "Fn::GetAtt": [
713
+ "testcloudfrontoais3CloudfrontLoggingBucketAccessLogBF5AAF80",
714
+ "Arn"
715
+ ]
716
+ },
717
+ "/*"
718
+ ]
719
+ ]
720
+ }
721
+ }
722
+ ],
723
+ "Version": "2012-10-17"
724
+ }
725
+ }
726
+ },
727
+ "constructInfo": {
728
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy",
729
+ "version": "2.177.0"
730
+ }
731
+ }
732
+ },
733
+ "constructInfo": {
734
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
735
+ "version": "2.177.0"
736
+ }
737
+ },
738
+ "AutoDeleteObjectsCustomResource": {
739
+ "id": "AutoDeleteObjectsCustomResource",
740
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource",
741
+ "children": {
742
+ "Default": {
743
+ "id": "Default",
744
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource/Default",
745
+ "constructInfo": {
746
+ "fqn": "aws-cdk-lib.CfnResource",
747
+ "version": "2.177.0"
748
+ }
749
+ }
750
+ },
751
+ "constructInfo": {
752
+ "fqn": "aws-cdk-lib.CustomResource",
753
+ "version": "2.177.0"
754
+ }
755
+ }
756
+ },
757
+ "constructInfo": {
758
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
759
+ "version": "2.177.0"
760
+ }
761
+ },
762
+ "CloudfrontLoggingBucket": {
763
+ "id": "CloudfrontLoggingBucket",
764
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucket",
765
+ "children": {
766
+ "Resource": {
767
+ "id": "Resource",
768
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucket/Resource",
769
+ "attributes": {
770
+ "aws:cdk:cloudformation:type": "AWS::S3::Bucket",
771
+ "aws:cdk:cloudformation:props": {
772
+ "bucketEncryption": {
773
+ "serverSideEncryptionConfiguration": [
774
+ {
775
+ "serverSideEncryptionByDefault": {
776
+ "sseAlgorithm": "AES256"
777
+ }
778
+ }
779
+ ]
780
+ },
781
+ "loggingConfiguration": {
782
+ "destinationBucketName": {
783
+ "Ref": "testcloudfrontoais3CloudfrontLoggingBucketAccessLogBF5AAF80"
784
+ }
785
+ },
786
+ "ownershipControls": {
787
+ "rules": [
788
+ {
789
+ "objectOwnership": "ObjectWriter"
790
+ }
791
+ ]
792
+ },
793
+ "publicAccessBlockConfiguration": {
794
+ "blockPublicAcls": true,
795
+ "blockPublicPolicy": true,
796
+ "ignorePublicAcls": true,
797
+ "restrictPublicBuckets": true
798
+ },
799
+ "tags": [
800
+ {
801
+ "key": "aws-cdk:auto-delete-objects",
802
+ "value": "true"
803
+ }
804
+ ],
805
+ "versioningConfiguration": {
806
+ "status": "Enabled"
807
+ }
808
+ }
809
+ },
810
+ "constructInfo": {
811
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucket",
812
+ "version": "2.177.0"
813
+ }
814
+ },
815
+ "Policy": {
816
+ "id": "Policy",
817
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucket/Policy",
818
+ "children": {
819
+ "Resource": {
820
+ "id": "Resource",
821
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucket/Policy/Resource",
822
+ "attributes": {
823
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
824
+ "aws:cdk:cloudformation:props": {
825
+ "bucket": {
826
+ "Ref": "testcloudfrontoais3CloudfrontLoggingBucket55AA79FC"
827
+ },
828
+ "policyDocument": {
829
+ "Statement": [
830
+ {
831
+ "Action": "s3:*",
832
+ "Condition": {
833
+ "Bool": {
834
+ "aws:SecureTransport": "false"
835
+ }
836
+ },
837
+ "Effect": "Deny",
838
+ "Principal": {
839
+ "AWS": "*"
840
+ },
841
+ "Resource": [
842
+ {
843
+ "Fn::GetAtt": [
844
+ "testcloudfrontoais3CloudfrontLoggingBucket55AA79FC",
845
+ "Arn"
846
+ ]
847
+ },
848
+ {
849
+ "Fn::Join": [
850
+ "",
851
+ [
852
+ {
853
+ "Fn::GetAtt": [
854
+ "testcloudfrontoais3CloudfrontLoggingBucket55AA79FC",
855
+ "Arn"
856
+ ]
857
+ },
858
+ "/*"
859
+ ]
860
+ ]
861
+ }
862
+ ]
863
+ },
864
+ {
865
+ "Action": [
866
+ "s3:DeleteObject*",
867
+ "s3:GetBucket*",
868
+ "s3:List*",
869
+ "s3:PutBucketPolicy"
870
+ ],
871
+ "Effect": "Allow",
872
+ "Principal": {
873
+ "AWS": {
874
+ "Fn::GetAtt": [
875
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
876
+ "Arn"
877
+ ]
878
+ }
879
+ },
880
+ "Resource": [
881
+ {
882
+ "Fn::GetAtt": [
883
+ "testcloudfrontoais3CloudfrontLoggingBucket55AA79FC",
884
+ "Arn"
885
+ ]
886
+ },
887
+ {
888
+ "Fn::Join": [
889
+ "",
890
+ [
891
+ {
892
+ "Fn::GetAtt": [
893
+ "testcloudfrontoais3CloudfrontLoggingBucket55AA79FC",
894
+ "Arn"
895
+ ]
896
+ },
897
+ "/*"
898
+ ]
899
+ ]
900
+ }
901
+ ]
902
+ }
903
+ ],
904
+ "Version": "2012-10-17"
905
+ }
906
+ }
907
+ },
908
+ "constructInfo": {
909
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy",
910
+ "version": "2.177.0"
911
+ }
912
+ }
913
+ },
914
+ "constructInfo": {
915
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
916
+ "version": "2.177.0"
917
+ }
918
+ },
919
+ "AutoDeleteObjectsCustomResource": {
920
+ "id": "AutoDeleteObjectsCustomResource",
921
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource",
922
+ "children": {
923
+ "Default": {
924
+ "id": "Default",
925
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default",
926
+ "constructInfo": {
927
+ "fqn": "aws-cdk-lib.CfnResource",
928
+ "version": "2.177.0"
929
+ }
930
+ }
931
+ },
932
+ "constructInfo": {
933
+ "fqn": "aws-cdk-lib.CustomResource",
934
+ "version": "2.177.0"
935
+ }
936
+ }
937
+ },
938
+ "constructInfo": {
939
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
940
+ "version": "2.177.0"
941
+ }
942
+ },
943
+ "CloudFrontDistribution": {
944
+ "id": "CloudFrontDistribution",
945
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudFrontDistribution",
946
+ "children": {
947
+ "Origin1": {
948
+ "id": "Origin1",
949
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudFrontDistribution/Origin1",
950
+ "children": {
951
+ "S3Origin": {
952
+ "id": "S3Origin",
953
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudFrontDistribution/Origin1/S3Origin",
954
+ "children": {
955
+ "Resource": {
956
+ "id": "Resource",
957
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudFrontDistribution/Origin1/S3Origin/Resource",
958
+ "attributes": {
959
+ "aws:cdk:cloudformation:type": "AWS::CloudFront::CloudFrontOriginAccessIdentity",
960
+ "aws:cdk:cloudformation:props": {
961
+ "cloudFrontOriginAccessIdentityConfig": {
962
+ "comment": "Identity for cftoais3customheaderstestcloudfrontoais3CloudFrontDistributionOrigin10B386180"
963
+ }
964
+ }
965
+ },
966
+ "constructInfo": {
967
+ "fqn": "aws-cdk-lib.aws_cloudfront.CfnCloudFrontOriginAccessIdentity",
968
+ "version": "2.177.0"
969
+ }
970
+ }
971
+ },
972
+ "constructInfo": {
973
+ "fqn": "aws-cdk-lib.aws_cloudfront.OriginAccessIdentity",
974
+ "version": "2.177.0"
975
+ }
976
+ }
977
+ },
978
+ "constructInfo": {
979
+ "fqn": "constructs.Construct",
980
+ "version": "10.4.2"
981
+ }
982
+ },
983
+ "Resource": {
984
+ "id": "Resource",
985
+ "path": "cftoais3-custom-headers/test-cloudfront-oai-s3/CloudFrontDistribution/Resource",
986
+ "attributes": {
987
+ "aws:cdk:cloudformation:type": "AWS::CloudFront::Distribution",
988
+ "aws:cdk:cloudformation:props": {
989
+ "distributionConfig": {
990
+ "enabled": true,
991
+ "origins": [
992
+ {
993
+ "domainName": {
994
+ "Fn::GetAtt": [
995
+ "testcloudfrontoais3S3Bucket578AB9F3",
996
+ "RegionalDomainName"
997
+ ]
998
+ },
999
+ "id": "cftoais3customheaderstestcloudfrontoais3CloudFrontDistributionOrigin10B386180",
1000
+ "s3OriginConfig": {
1001
+ "originAccessIdentity": {
1002
+ "Fn::Join": [
1003
+ "",
1004
+ [
1005
+ "origin-access-identity/cloudfront/",
1006
+ {
1007
+ "Ref": "testcloudfrontoais3CloudFrontDistributionOrigin1S3OriginF57A3CB1"
1008
+ }
1009
+ ]
1010
+ ]
1011
+ }
1012
+ }
1013
+ }
1014
+ ],
1015
+ "defaultCacheBehavior": {
1016
+ "pathPattern": "*",
1017
+ "targetOriginId": "cftoais3customheaderstestcloudfrontoais3CloudFrontDistributionOrigin10B386180",
1018
+ "cachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
1019
+ "compress": true,
1020
+ "viewerProtocolPolicy": "redirect-to-https",
1021
+ "functionAssociations": [
1022
+ {
1023
+ "functionArn": {
1024
+ "Fn::GetAtt": [
1025
+ "MyFunction3BAA72D1",
1026
+ "FunctionARN"
1027
+ ]
1028
+ },
1029
+ "eventType": "viewer-response"
1030
+ }
1031
+ ]
1032
+ },
1033
+ "defaultRootObject": "index.html",
1034
+ "httpVersion": "http2",
1035
+ "ipv6Enabled": true,
1036
+ "logging": {
1037
+ "bucket": {
1038
+ "Fn::GetAtt": [
1039
+ "testcloudfrontoais3CloudfrontLoggingBucket55AA79FC",
1040
+ "RegionalDomainName"
1041
+ ]
1042
+ }
1043
+ }
1044
+ }
1045
+ }
1046
+ },
1047
+ "constructInfo": {
1048
+ "fqn": "aws-cdk-lib.aws_cloudfront.CfnDistribution",
1049
+ "version": "2.177.0"
1050
+ }
1051
+ }
1052
+ },
1053
+ "constructInfo": {
1054
+ "fqn": "aws-cdk-lib.aws_cloudfront.Distribution",
1055
+ "version": "2.177.0"
1056
+ }
1057
+ }
1058
+ },
1059
+ "constructInfo": {
1060
+ "fqn": "@aws-solutions-constructs/aws-cloudfront-oai-s3.CloudFrontToOaiToS3",
1061
+ "version": "2.78.1"
1062
+ }
1063
+ },
1064
+ "LatestNodeRuntimeMap": {
1065
+ "id": "LatestNodeRuntimeMap",
1066
+ "path": "cftoais3-custom-headers/LatestNodeRuntimeMap",
1067
+ "constructInfo": {
1068
+ "fqn": "aws-cdk-lib.CfnMapping",
1069
+ "version": "2.177.0"
1070
+ }
1071
+ },
1072
+ "Custom::S3AutoDeleteObjectsCustomResourceProvider": {
1073
+ "id": "Custom::S3AutoDeleteObjectsCustomResourceProvider",
1074
+ "path": "cftoais3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider",
1075
+ "children": {
1076
+ "Staging": {
1077
+ "id": "Staging",
1078
+ "path": "cftoais3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging",
1079
+ "constructInfo": {
1080
+ "fqn": "aws-cdk-lib.AssetStaging",
1081
+ "version": "2.177.0"
1082
+ }
1083
+ },
1084
+ "Role": {
1085
+ "id": "Role",
1086
+ "path": "cftoais3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role",
1087
+ "constructInfo": {
1088
+ "fqn": "aws-cdk-lib.CfnResource",
1089
+ "version": "2.177.0"
1090
+ }
1091
+ },
1092
+ "Handler": {
1093
+ "id": "Handler",
1094
+ "path": "cftoais3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler",
1095
+ "constructInfo": {
1096
+ "fqn": "aws-cdk-lib.CfnResource",
1097
+ "version": "2.177.0"
1098
+ }
1099
+ }
1100
+ },
1101
+ "constructInfo": {
1102
+ "fqn": "aws-cdk-lib.CustomResourceProviderBase",
1103
+ "version": "2.177.0"
1104
+ }
1105
+ },
1106
+ "Integ": {
1107
+ "id": "Integ",
1108
+ "path": "cftoais3-custom-headers/Integ",
1109
+ "children": {
1110
+ "DefaultTest": {
1111
+ "id": "DefaultTest",
1112
+ "path": "cftoais3-custom-headers/Integ/DefaultTest",
1113
+ "children": {
1114
+ "Default": {
1115
+ "id": "Default",
1116
+ "path": "cftoais3-custom-headers/Integ/DefaultTest/Default",
1117
+ "constructInfo": {
1118
+ "fqn": "constructs.Construct",
1119
+ "version": "10.4.2"
1120
+ }
1121
+ },
1122
+ "DeployAssert": {
1123
+ "id": "DeployAssert",
1124
+ "path": "cftoais3-custom-headers/Integ/DefaultTest/DeployAssert",
1125
+ "children": {
1126
+ "BootstrapVersion": {
1127
+ "id": "BootstrapVersion",
1128
+ "path": "cftoais3-custom-headers/Integ/DefaultTest/DeployAssert/BootstrapVersion",
1129
+ "constructInfo": {
1130
+ "fqn": "aws-cdk-lib.CfnParameter",
1131
+ "version": "2.177.0"
1132
+ }
1133
+ },
1134
+ "CheckBootstrapVersion": {
1135
+ "id": "CheckBootstrapVersion",
1136
+ "path": "cftoais3-custom-headers/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion",
1137
+ "constructInfo": {
1138
+ "fqn": "aws-cdk-lib.CfnRule",
1139
+ "version": "2.177.0"
1140
+ }
1141
+ }
1142
+ },
1143
+ "constructInfo": {
1144
+ "fqn": "aws-cdk-lib.Stack",
1145
+ "version": "2.177.0"
1146
+ }
1147
+ }
1148
+ },
1149
+ "constructInfo": {
1150
+ "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase",
1151
+ "version": "2.177.0-alpha.0"
1152
+ }
1153
+ }
1154
+ },
1155
+ "constructInfo": {
1156
+ "fqn": "@aws-cdk/integ-tests-alpha.IntegTest",
1157
+ "version": "2.177.0-alpha.0"
1158
+ }
1159
+ },
1160
+ "BootstrapVersion": {
1161
+ "id": "BootstrapVersion",
1162
+ "path": "cftoais3-custom-headers/BootstrapVersion",
1163
+ "constructInfo": {
1164
+ "fqn": "aws-cdk-lib.CfnParameter",
1165
+ "version": "2.177.0"
1166
+ }
1167
+ },
1168
+ "CheckBootstrapVersion": {
1169
+ "id": "CheckBootstrapVersion",
1170
+ "path": "cftoais3-custom-headers/CheckBootstrapVersion",
1171
+ "constructInfo": {
1172
+ "fqn": "aws-cdk-lib.CfnRule",
1173
+ "version": "2.177.0"
1174
+ }
1175
+ }
1176
+ },
1177
+ "constructInfo": {
1178
+ "fqn": "aws-cdk-lib.Stack",
1179
+ "version": "2.177.0"
1180
+ }
1181
+ },
1182
+ "Tree": {
1183
+ "id": "Tree",
1184
+ "path": "Tree",
1185
+ "constructInfo": {
1186
+ "fqn": "constructs.Construct",
1187
+ "version": "10.4.2"
1188
+ }
1189
+ }
1190
+ },
1191
+ "constructInfo": {
1192
+ "fqn": "aws-cdk-lib.App",
1193
+ "version": "2.177.0"
1194
+ }
1195
+ }
1196
+ }