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