@aws-solutions-constructs/aws-cloudfront-s3 2.50.0 → 2.52.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 (127) hide show
  1. package/.eslintignore +2 -0
  2. package/.jsii +51 -6
  3. package/integ.config.json +7 -0
  4. package/lib/index.js +1 -1
  5. package/package.json +14 -13
  6. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js +6 -3
  7. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.4a4b024f310aca2784b69bcb790e9ccaef785e9ad5d1b73624144f88c4465b4f/index.d.ts +30 -0
  8. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.4a4b024f310aca2784b69bcb790e9ccaef785e9ad5d1b73624144f88c4465b4f/index.js +127 -0
  9. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/cfn-response.js +1 -0
  10. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/consts.js +1 -0
  11. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/framework.js +3 -0
  12. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/outbound.js +1 -0
  13. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/util.js +1 -0
  14. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cdk.out +1 -0
  15. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.assets.json +45 -0
  16. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.template.json +960 -0
  17. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114.assets.json +19 -0
  18. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithcmkprovidedasexistingbucketIntegDefaultTestDeployAssertF6031114.template.json +36 -0
  19. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/integ.json +12 -0
  20. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/manifest.json +221 -0
  21. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.js.snapshot/tree.json +1326 -0
  22. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js +6 -3
  23. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cdk.out +1 -0
  24. 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 +19 -0
  25. 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 +594 -0
  26. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithmanagedkeyprovidedasexistingbucketIntegDefaultTestDeployAssert03A82C16.assets.json +19 -0
  27. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/cfts3bucketencryptedwithmanagedkeyprovidedasexistingbucketIntegDefaultTestDeployAssert03A82C16.template.json +36 -0
  28. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/integ.json +12 -0
  29. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/manifest.json +167 -0
  30. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.js.snapshot/tree.json +790 -0
  31. package/test/integ.cfts3-bucket-with-http-origin.js +6 -3
  32. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/cdk.out +1 -0
  33. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/cfts3-bucket-with-http-origin.assets.json +19 -0
  34. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/cfts3-bucket-with-http-origin.template.json +559 -0
  35. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/cfts3bucketwithhttporiginIntegDefaultTestDeployAssert75EB76AB.assets.json +19 -0
  36. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/cfts3bucketwithhttporiginIntegDefaultTestDeployAssert75EB76AB.template.json +36 -0
  37. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/integ.json +12 -0
  38. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/manifest.json +161 -0
  39. package/test/integ.cfts3-bucket-with-http-origin.js.snapshot/tree.json +753 -0
  40. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js +6 -3
  41. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.4a4b024f310aca2784b69bcb790e9ccaef785e9ad5d1b73624144f88c4465b4f/index.d.ts +30 -0
  42. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.4a4b024f310aca2784b69bcb790e9ccaef785e9ad5d1b73624144f88c4465b4f/index.js +127 -0
  43. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/cfn-response.js +1 -0
  44. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/consts.js +1 -0
  45. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/framework.js +3 -0
  46. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/outbound.js +1 -0
  47. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/asset.7382a0addb9f34974a1ea6c6c9b063882af874828f366f5c93b2b7b64db15c94/util.js +1 -0
  48. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cdk.out +1 -0
  49. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.assets.json +45 -0
  50. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3-cmk-provided-as-bucket-prop.template.json +960 -0
  51. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55.assets.json +19 -0
  52. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/cfts3cmkprovidedasbucketpropIntegDefaultTestDeployAssert38E63D55.template.json +36 -0
  53. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/integ.json +12 -0
  54. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/manifest.json +221 -0
  55. package/test/integ.cfts3-cmk-provided-as-bucket-prop.js.snapshot/tree.json +1326 -0
  56. package/test/integ.cfts3-custom-headers.js +6 -3
  57. package/test/integ.cfts3-custom-headers.js.snapshot/asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6/index.js +1 -0
  58. package/test/integ.cfts3-custom-headers.js.snapshot/cdk.out +1 -0
  59. package/test/integ.cfts3-custom-headers.js.snapshot/cfts3-custom-headers.assets.json +32 -0
  60. package/test/integ.cfts3-custom-headers.js.snapshot/cfts3-custom-headers.template.json +981 -0
  61. package/test/integ.cfts3-custom-headers.js.snapshot/cfts3customheadersIntegDefaultTestDeployAssert6EEC9973.assets.json +19 -0
  62. package/test/integ.cfts3-custom-headers.js.snapshot/cfts3customheadersIntegDefaultTestDeployAssert6EEC9973.template.json +36 -0
  63. package/test/integ.cfts3-custom-headers.js.snapshot/integ.json +12 -0
  64. package/test/integ.cfts3-custom-headers.js.snapshot/manifest.json +215 -0
  65. package/test/integ.cfts3-custom-headers.js.snapshot/tree.json +1167 -0
  66. package/test/integ.cfts3-custom-originPath.js +6 -3
  67. package/test/integ.cfts3-custom-originPath.js.snapshot/asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6/index.js +1 -0
  68. package/test/integ.cfts3-custom-originPath.js.snapshot/cdk.out +1 -0
  69. package/test/integ.cfts3-custom-originPath.js.snapshot/cfts3-custom-originPath.assets.json +32 -0
  70. package/test/integ.cfts3-custom-originPath.js.snapshot/cfts3-custom-originPath.template.json +950 -0
  71. package/test/integ.cfts3-custom-originPath.js.snapshot/cfts3customoriginPathIntegDefaultTestDeployAssert61F499B2.assets.json +19 -0
  72. package/test/integ.cfts3-custom-originPath.js.snapshot/cfts3customoriginPathIntegDefaultTestDeployAssert61F499B2.template.json +36 -0
  73. package/test/integ.cfts3-custom-originPath.js.snapshot/integ.json +12 -0
  74. package/test/integ.cfts3-custom-originPath.js.snapshot/manifest.json +209 -0
  75. package/test/integ.cfts3-custom-originPath.js.snapshot/tree.json +1117 -0
  76. package/test/integ.cfts3-customLoggingBuckets.js +6 -3
  77. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6/index.js +1 -0
  78. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/cdk.out +1 -0
  79. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/cfts3-customLoggingBuckets.assets.json +32 -0
  80. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/cfts3-customLoggingBuckets.template.json +987 -0
  81. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/cfts3customLoggingBucketsIntegDefaultTestDeployAssert4D171F9F.assets.json +19 -0
  82. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/cfts3customLoggingBucketsIntegDefaultTestDeployAssert4D171F9F.template.json +36 -0
  83. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/integ.json +12 -0
  84. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/manifest.json +209 -0
  85. package/test/integ.cfts3-customLoggingBuckets.js.snapshot/tree.json +1156 -0
  86. package/test/integ.cfts3-existing-bucket.js +6 -3
  87. package/test/integ.cfts3-existing-bucket.js.snapshot/asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6/index.js +1 -0
  88. package/test/integ.cfts3-existing-bucket.js.snapshot/cdk.out +1 -0
  89. package/test/integ.cfts3-existing-bucket.js.snapshot/cfts3-existing-bucket.assets.json +32 -0
  90. package/test/integ.cfts3-existing-bucket.js.snapshot/cfts3-existing-bucket.template.json +1014 -0
  91. package/test/integ.cfts3-existing-bucket.js.snapshot/cfts3existingbucketIntegDefaultTestDeployAssertA6D4EB49.assets.json +19 -0
  92. package/test/integ.cfts3-existing-bucket.js.snapshot/cfts3existingbucketIntegDefaultTestDeployAssertA6D4EB49.template.json +36 -0
  93. package/test/integ.cfts3-existing-bucket.js.snapshot/integ.json +12 -0
  94. package/test/integ.cfts3-existing-bucket.js.snapshot/manifest.json +221 -0
  95. package/test/integ.cfts3-existing-bucket.js.snapshot/tree.json +1229 -0
  96. package/test/integ.cfts3-no-arguments.js +6 -3
  97. package/test/integ.cfts3-no-arguments.js.snapshot/asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6/index.js +1 -0
  98. package/test/integ.cfts3-no-arguments.js.snapshot/cdk.out +1 -0
  99. package/test/integ.cfts3-no-arguments.js.snapshot/cfts3-no-arguments.assets.json +32 -0
  100. package/test/integ.cfts3-no-arguments.js.snapshot/cfts3-no-arguments.template.json +959 -0
  101. package/test/integ.cfts3-no-arguments.js.snapshot/cfts3noargumentsIntegDefaultTestDeployAssertBA5AFA25.assets.json +19 -0
  102. package/test/integ.cfts3-no-arguments.js.snapshot/cfts3noargumentsIntegDefaultTestDeployAssertBA5AFA25.template.json +36 -0
  103. package/test/integ.cfts3-no-arguments.js.snapshot/integ.json +12 -0
  104. package/test/integ.cfts3-no-arguments.js.snapshot/manifest.json +209 -0
  105. package/test/integ.cfts3-no-arguments.js.snapshot/tree.json +1117 -0
  106. package/test/integ.cfts3-no-security-headers.js +6 -3
  107. package/test/integ.cfts3-no-security-headers.js.snapshot/asset.b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6/index.js +1 -0
  108. package/test/integ.cfts3-no-security-headers.js.snapshot/cdk.out +1 -0
  109. package/test/integ.cfts3-no-security-headers.js.snapshot/cfts3-no-security-headers.assets.json +32 -0
  110. package/test/integ.cfts3-no-security-headers.js.snapshot/cfts3-no-security-headers.template.json +926 -0
  111. package/test/integ.cfts3-no-security-headers.js.snapshot/cfts3nosecurityheadersIntegDefaultTestDeployAssert38FE05BE.assets.json +19 -0
  112. package/test/integ.cfts3-no-security-headers.js.snapshot/cfts3nosecurityheadersIntegDefaultTestDeployAssert38FE05BE.template.json +36 -0
  113. package/test/integ.cfts3-no-security-headers.js.snapshot/integ.json +12 -0
  114. package/test/integ.cfts3-no-security-headers.js.snapshot/manifest.json +203 -0
  115. package/test/integ.cfts3-no-security-headers.js.snapshot/tree.json +1076 -0
  116. package/test/integ.cfts3-bucket-encrypted-with-cmk-provided-as-existingbucket.expected.json +0 -960
  117. package/test/integ.cfts3-bucket-encrypted-with-managed-key-provided-as-existingbucket.expected.json +0 -594
  118. package/test/integ.cfts3-bucket-with-http-origin.expected.json +0 -559
  119. package/test/integ.cfts3-cmk-encryption.expected.json +0 -527
  120. package/test/integ.cfts3-cmk-provided-as-bucket-prop.expected.json +0 -960
  121. package/test/integ.cfts3-custom-headers.expected.json +0 -981
  122. package/test/integ.cfts3-custom-originPath.expected.json +0 -950
  123. package/test/integ.cfts3-customCloudFrontLoggingBucket.expected.json +0 -700
  124. package/test/integ.cfts3-customLoggingBuckets.expected.json +0 -987
  125. package/test/integ.cfts3-existing-bucket.expected.json +0 -1014
  126. package/test/integ.cfts3-no-arguments.expected.json +0 -959
  127. package/test/integ.cfts3-no-security-headers.expected.json +0 -926
@@ -0,0 +1,1167 @@
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.118.0"
53
+ }
54
+ }
55
+ },
56
+ "constructInfo": {
57
+ "fqn": "aws-cdk-lib.aws_cloudfront.Function",
58
+ "version": "2.118.0"
59
+ }
60
+ },
61
+ "test-cloudfront-s3": {
62
+ "id": "test-cloudfront-s3",
63
+ "path": "cfts3-custom-headers/test-cloudfront-s3",
64
+ "children": {
65
+ "S3LoggingBucket": {
66
+ "id": "S3LoggingBucket",
67
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3LoggingBucket",
68
+ "children": {
69
+ "Resource": {
70
+ "id": "Resource",
71
+ "path": "cfts3-custom-headers/test-cloudfront-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.118.0"
104
+ }
105
+ },
106
+ "Policy": {
107
+ "id": "Policy",
108
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3LoggingBucket/Policy",
109
+ "children": {
110
+ "Resource": {
111
+ "id": "Resource",
112
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3LoggingBucket/Policy/Resource",
113
+ "attributes": {
114
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
115
+ "aws:cdk:cloudformation:props": {
116
+ "bucket": {
117
+ "Ref": "testcloudfronts3S3LoggingBucket90D239DD"
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
+ "testcloudfronts3S3LoggingBucket90D239DD",
136
+ "Arn"
137
+ ]
138
+ },
139
+ {
140
+ "Fn::Join": [
141
+ "",
142
+ [
143
+ {
144
+ "Fn::GetAtt": [
145
+ "testcloudfronts3S3LoggingBucket90D239DD",
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
+ "testcloudfronts3S3LoggingBucket90D239DD",
175
+ "Arn"
176
+ ]
177
+ },
178
+ {
179
+ "Fn::Join": [
180
+ "",
181
+ [
182
+ {
183
+ "Fn::GetAtt": [
184
+ "testcloudfronts3S3LoggingBucket90D239DD",
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
+ "testcloudfronts3S3BucketE0C5F76E",
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
+ "testcloudfronts3S3LoggingBucket90D239DD",
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.118.0"
238
+ }
239
+ }
240
+ },
241
+ "constructInfo": {
242
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
243
+ "version": "2.118.0"
244
+ }
245
+ },
246
+ "AutoDeleteObjectsCustomResource": {
247
+ "id": "AutoDeleteObjectsCustomResource",
248
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource",
249
+ "children": {
250
+ "Default": {
251
+ "id": "Default",
252
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3LoggingBucket/AutoDeleteObjectsCustomResource/Default",
253
+ "constructInfo": {
254
+ "fqn": "aws-cdk-lib.CfnResource",
255
+ "version": "2.118.0"
256
+ }
257
+ }
258
+ },
259
+ "constructInfo": {
260
+ "fqn": "aws-cdk-lib.CustomResource",
261
+ "version": "2.118.0"
262
+ }
263
+ }
264
+ },
265
+ "constructInfo": {
266
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
267
+ "version": "2.118.0"
268
+ }
269
+ },
270
+ "S3Bucket": {
271
+ "id": "S3Bucket",
272
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3Bucket",
273
+ "children": {
274
+ "Resource": {
275
+ "id": "Resource",
276
+ "path": "cfts3-custom-headers/test-cloudfront-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": "testcloudfronts3S3LoggingBucket90D239DD"
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.118.0"
327
+ }
328
+ },
329
+ "Policy": {
330
+ "id": "Policy",
331
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3Bucket/Policy",
332
+ "children": {
333
+ "Resource": {
334
+ "id": "Resource",
335
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3Bucket/Policy/Resource",
336
+ "attributes": {
337
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
338
+ "aws:cdk:cloudformation:props": {
339
+ "bucket": {
340
+ "Ref": "testcloudfronts3S3BucketE0C5F76E"
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
+ "testcloudfronts3S3BucketE0C5F76E",
359
+ "Arn"
360
+ ]
361
+ },
362
+ {
363
+ "Fn::Join": [
364
+ "",
365
+ [
366
+ {
367
+ "Fn::GetAtt": [
368
+ "testcloudfronts3S3BucketE0C5F76E",
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
+ "testcloudfronts3S3BucketE0C5F76E",
398
+ "Arn"
399
+ ]
400
+ },
401
+ {
402
+ "Fn::Join": [
403
+ "",
404
+ [
405
+ {
406
+ "Fn::GetAtt": [
407
+ "testcloudfronts3S3BucketE0C5F76E",
408
+ "Arn"
409
+ ]
410
+ },
411
+ "/*"
412
+ ]
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ {
418
+ "Action": "s3:GetObject",
419
+ "Condition": {
420
+ "StringEquals": {
421
+ "AWS:SourceArn": {
422
+ "Fn::Join": [
423
+ "",
424
+ [
425
+ "arn:aws:cloudfront::",
426
+ {
427
+ "Ref": "AWS::AccountId"
428
+ },
429
+ ":distribution/",
430
+ {
431
+ "Ref": "testcloudfronts3CloudFrontDistribution0565DEE8"
432
+ }
433
+ ]
434
+ ]
435
+ }
436
+ }
437
+ },
438
+ "Effect": "Allow",
439
+ "Principal": {
440
+ "Service": "cloudfront.amazonaws.com"
441
+ },
442
+ "Resource": {
443
+ "Fn::Join": [
444
+ "",
445
+ [
446
+ {
447
+ "Fn::GetAtt": [
448
+ "testcloudfronts3S3BucketE0C5F76E",
449
+ "Arn"
450
+ ]
451
+ },
452
+ "/*"
453
+ ]
454
+ ]
455
+ }
456
+ }
457
+ ],
458
+ "Version": "2012-10-17"
459
+ }
460
+ }
461
+ },
462
+ "constructInfo": {
463
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy",
464
+ "version": "2.118.0"
465
+ }
466
+ }
467
+ },
468
+ "constructInfo": {
469
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
470
+ "version": "2.118.0"
471
+ }
472
+ },
473
+ "AutoDeleteObjectsCustomResource": {
474
+ "id": "AutoDeleteObjectsCustomResource",
475
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3Bucket/AutoDeleteObjectsCustomResource",
476
+ "children": {
477
+ "Default": {
478
+ "id": "Default",
479
+ "path": "cfts3-custom-headers/test-cloudfront-s3/S3Bucket/AutoDeleteObjectsCustomResource/Default",
480
+ "constructInfo": {
481
+ "fqn": "aws-cdk-lib.CfnResource",
482
+ "version": "2.118.0"
483
+ }
484
+ }
485
+ },
486
+ "constructInfo": {
487
+ "fqn": "aws-cdk-lib.CustomResource",
488
+ "version": "2.118.0"
489
+ }
490
+ }
491
+ },
492
+ "constructInfo": {
493
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
494
+ "version": "2.118.0"
495
+ }
496
+ },
497
+ "SetHttpSecurityHeaders": {
498
+ "id": "SetHttpSecurityHeaders",
499
+ "path": "cfts3-custom-headers/test-cloudfront-s3/SetHttpSecurityHeaders",
500
+ "children": {
501
+ "Resource": {
502
+ "id": "Resource",
503
+ "path": "cfts3-custom-headers/test-cloudfront-s3/SetHttpSecurityHeaders/Resource",
504
+ "attributes": {
505
+ "aws:cdk:cloudformation:type": "AWS::CloudFront::Function",
506
+ "aws:cdk:cloudformation:props": {
507
+ "autoPublish": true,
508
+ "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; }",
509
+ "functionConfig": {
510
+ "comment": "SetHttpSecurityHeadersc8da5865185980f6eb00e7dd351786a8b49cd2929e",
511
+ "runtime": "cloudfront-js-1.0"
512
+ },
513
+ "name": "SetHttpSecurityHeadersc8da5865185980f6eb00e7dd351786a8b49cd2929e"
514
+ }
515
+ },
516
+ "constructInfo": {
517
+ "fqn": "aws-cdk-lib.aws_cloudfront.CfnFunction",
518
+ "version": "2.118.0"
519
+ }
520
+ }
521
+ },
522
+ "constructInfo": {
523
+ "fqn": "aws-cdk-lib.aws_cloudfront.Function",
524
+ "version": "2.118.0"
525
+ }
526
+ },
527
+ "CloudfrontLoggingBucketAccessLog": {
528
+ "id": "CloudfrontLoggingBucketAccessLog",
529
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucketAccessLog",
530
+ "children": {
531
+ "Resource": {
532
+ "id": "Resource",
533
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucketAccessLog/Resource",
534
+ "attributes": {
535
+ "aws:cdk:cloudformation:type": "AWS::S3::Bucket",
536
+ "aws:cdk:cloudformation:props": {
537
+ "bucketEncryption": {
538
+ "serverSideEncryptionConfiguration": [
539
+ {
540
+ "serverSideEncryptionByDefault": {
541
+ "sseAlgorithm": "AES256"
542
+ }
543
+ }
544
+ ]
545
+ },
546
+ "ownershipControls": {
547
+ "rules": [
548
+ {
549
+ "objectOwnership": "ObjectWriter"
550
+ }
551
+ ]
552
+ },
553
+ "publicAccessBlockConfiguration": {
554
+ "blockPublicAcls": true,
555
+ "blockPublicPolicy": true,
556
+ "ignorePublicAcls": true,
557
+ "restrictPublicBuckets": true
558
+ },
559
+ "tags": [
560
+ {
561
+ "key": "aws-cdk:auto-delete-objects",
562
+ "value": "true"
563
+ }
564
+ ],
565
+ "versioningConfiguration": {
566
+ "status": "Enabled"
567
+ }
568
+ }
569
+ },
570
+ "constructInfo": {
571
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucket",
572
+ "version": "2.118.0"
573
+ }
574
+ },
575
+ "Policy": {
576
+ "id": "Policy",
577
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucketAccessLog/Policy",
578
+ "children": {
579
+ "Resource": {
580
+ "id": "Resource",
581
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucketAccessLog/Policy/Resource",
582
+ "attributes": {
583
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
584
+ "aws:cdk:cloudformation:props": {
585
+ "bucket": {
586
+ "Ref": "testcloudfronts3CloudfrontLoggingBucketAccessLog2E738D58"
587
+ },
588
+ "policyDocument": {
589
+ "Statement": [
590
+ {
591
+ "Action": "s3:*",
592
+ "Condition": {
593
+ "Bool": {
594
+ "aws:SecureTransport": "false"
595
+ }
596
+ },
597
+ "Effect": "Deny",
598
+ "Principal": {
599
+ "AWS": "*"
600
+ },
601
+ "Resource": [
602
+ {
603
+ "Fn::GetAtt": [
604
+ "testcloudfronts3CloudfrontLoggingBucketAccessLog2E738D58",
605
+ "Arn"
606
+ ]
607
+ },
608
+ {
609
+ "Fn::Join": [
610
+ "",
611
+ [
612
+ {
613
+ "Fn::GetAtt": [
614
+ "testcloudfronts3CloudfrontLoggingBucketAccessLog2E738D58",
615
+ "Arn"
616
+ ]
617
+ },
618
+ "/*"
619
+ ]
620
+ ]
621
+ }
622
+ ]
623
+ },
624
+ {
625
+ "Action": [
626
+ "s3:DeleteObject*",
627
+ "s3:GetBucket*",
628
+ "s3:List*",
629
+ "s3:PutBucketPolicy"
630
+ ],
631
+ "Effect": "Allow",
632
+ "Principal": {
633
+ "AWS": {
634
+ "Fn::GetAtt": [
635
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
636
+ "Arn"
637
+ ]
638
+ }
639
+ },
640
+ "Resource": [
641
+ {
642
+ "Fn::GetAtt": [
643
+ "testcloudfronts3CloudfrontLoggingBucketAccessLog2E738D58",
644
+ "Arn"
645
+ ]
646
+ },
647
+ {
648
+ "Fn::Join": [
649
+ "",
650
+ [
651
+ {
652
+ "Fn::GetAtt": [
653
+ "testcloudfronts3CloudfrontLoggingBucketAccessLog2E738D58",
654
+ "Arn"
655
+ ]
656
+ },
657
+ "/*"
658
+ ]
659
+ ]
660
+ }
661
+ ]
662
+ },
663
+ {
664
+ "Action": "s3:PutObject",
665
+ "Condition": {
666
+ "ArnLike": {
667
+ "aws:SourceArn": {
668
+ "Fn::GetAtt": [
669
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
670
+ "Arn"
671
+ ]
672
+ }
673
+ },
674
+ "StringEquals": {
675
+ "aws:SourceAccount": {
676
+ "Ref": "AWS::AccountId"
677
+ }
678
+ }
679
+ },
680
+ "Effect": "Allow",
681
+ "Principal": {
682
+ "Service": "logging.s3.amazonaws.com"
683
+ },
684
+ "Resource": {
685
+ "Fn::Join": [
686
+ "",
687
+ [
688
+ {
689
+ "Fn::GetAtt": [
690
+ "testcloudfronts3CloudfrontLoggingBucketAccessLog2E738D58",
691
+ "Arn"
692
+ ]
693
+ },
694
+ "/*"
695
+ ]
696
+ ]
697
+ }
698
+ }
699
+ ],
700
+ "Version": "2012-10-17"
701
+ }
702
+ }
703
+ },
704
+ "constructInfo": {
705
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy",
706
+ "version": "2.118.0"
707
+ }
708
+ }
709
+ },
710
+ "constructInfo": {
711
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
712
+ "version": "2.118.0"
713
+ }
714
+ },
715
+ "AutoDeleteObjectsCustomResource": {
716
+ "id": "AutoDeleteObjectsCustomResource",
717
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource",
718
+ "children": {
719
+ "Default": {
720
+ "id": "Default",
721
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucketAccessLog/AutoDeleteObjectsCustomResource/Default",
722
+ "constructInfo": {
723
+ "fqn": "aws-cdk-lib.CfnResource",
724
+ "version": "2.118.0"
725
+ }
726
+ }
727
+ },
728
+ "constructInfo": {
729
+ "fqn": "aws-cdk-lib.CustomResource",
730
+ "version": "2.118.0"
731
+ }
732
+ }
733
+ },
734
+ "constructInfo": {
735
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
736
+ "version": "2.118.0"
737
+ }
738
+ },
739
+ "CloudfrontLoggingBucket": {
740
+ "id": "CloudfrontLoggingBucket",
741
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucket",
742
+ "children": {
743
+ "Resource": {
744
+ "id": "Resource",
745
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucket/Resource",
746
+ "attributes": {
747
+ "aws:cdk:cloudformation:type": "AWS::S3::Bucket",
748
+ "aws:cdk:cloudformation:props": {
749
+ "bucketEncryption": {
750
+ "serverSideEncryptionConfiguration": [
751
+ {
752
+ "serverSideEncryptionByDefault": {
753
+ "sseAlgorithm": "AES256"
754
+ }
755
+ }
756
+ ]
757
+ },
758
+ "loggingConfiguration": {
759
+ "destinationBucketName": {
760
+ "Ref": "testcloudfronts3CloudfrontLoggingBucketAccessLog2E738D58"
761
+ }
762
+ },
763
+ "ownershipControls": {
764
+ "rules": [
765
+ {
766
+ "objectOwnership": "ObjectWriter"
767
+ }
768
+ ]
769
+ },
770
+ "publicAccessBlockConfiguration": {
771
+ "blockPublicAcls": true,
772
+ "blockPublicPolicy": true,
773
+ "ignorePublicAcls": true,
774
+ "restrictPublicBuckets": true
775
+ },
776
+ "tags": [
777
+ {
778
+ "key": "aws-cdk:auto-delete-objects",
779
+ "value": "true"
780
+ }
781
+ ],
782
+ "versioningConfiguration": {
783
+ "status": "Enabled"
784
+ }
785
+ }
786
+ },
787
+ "constructInfo": {
788
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucket",
789
+ "version": "2.118.0"
790
+ }
791
+ },
792
+ "Policy": {
793
+ "id": "Policy",
794
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucket/Policy",
795
+ "children": {
796
+ "Resource": {
797
+ "id": "Resource",
798
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucket/Policy/Resource",
799
+ "attributes": {
800
+ "aws:cdk:cloudformation:type": "AWS::S3::BucketPolicy",
801
+ "aws:cdk:cloudformation:props": {
802
+ "bucket": {
803
+ "Ref": "testcloudfronts3CloudfrontLoggingBucket985C0FE8"
804
+ },
805
+ "policyDocument": {
806
+ "Statement": [
807
+ {
808
+ "Action": "s3:*",
809
+ "Condition": {
810
+ "Bool": {
811
+ "aws:SecureTransport": "false"
812
+ }
813
+ },
814
+ "Effect": "Deny",
815
+ "Principal": {
816
+ "AWS": "*"
817
+ },
818
+ "Resource": [
819
+ {
820
+ "Fn::GetAtt": [
821
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
822
+ "Arn"
823
+ ]
824
+ },
825
+ {
826
+ "Fn::Join": [
827
+ "",
828
+ [
829
+ {
830
+ "Fn::GetAtt": [
831
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
832
+ "Arn"
833
+ ]
834
+ },
835
+ "/*"
836
+ ]
837
+ ]
838
+ }
839
+ ]
840
+ },
841
+ {
842
+ "Action": [
843
+ "s3:DeleteObject*",
844
+ "s3:GetBucket*",
845
+ "s3:List*",
846
+ "s3:PutBucketPolicy"
847
+ ],
848
+ "Effect": "Allow",
849
+ "Principal": {
850
+ "AWS": {
851
+ "Fn::GetAtt": [
852
+ "CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
853
+ "Arn"
854
+ ]
855
+ }
856
+ },
857
+ "Resource": [
858
+ {
859
+ "Fn::GetAtt": [
860
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
861
+ "Arn"
862
+ ]
863
+ },
864
+ {
865
+ "Fn::Join": [
866
+ "",
867
+ [
868
+ {
869
+ "Fn::GetAtt": [
870
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
871
+ "Arn"
872
+ ]
873
+ },
874
+ "/*"
875
+ ]
876
+ ]
877
+ }
878
+ ]
879
+ }
880
+ ],
881
+ "Version": "2012-10-17"
882
+ }
883
+ }
884
+ },
885
+ "constructInfo": {
886
+ "fqn": "aws-cdk-lib.aws_s3.CfnBucketPolicy",
887
+ "version": "2.118.0"
888
+ }
889
+ }
890
+ },
891
+ "constructInfo": {
892
+ "fqn": "aws-cdk-lib.aws_s3.BucketPolicy",
893
+ "version": "2.118.0"
894
+ }
895
+ },
896
+ "AutoDeleteObjectsCustomResource": {
897
+ "id": "AutoDeleteObjectsCustomResource",
898
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource",
899
+ "children": {
900
+ "Default": {
901
+ "id": "Default",
902
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudfrontLoggingBucket/AutoDeleteObjectsCustomResource/Default",
903
+ "constructInfo": {
904
+ "fqn": "aws-cdk-lib.CfnResource",
905
+ "version": "2.118.0"
906
+ }
907
+ }
908
+ },
909
+ "constructInfo": {
910
+ "fqn": "aws-cdk-lib.CustomResource",
911
+ "version": "2.118.0"
912
+ }
913
+ }
914
+ },
915
+ "constructInfo": {
916
+ "fqn": "aws-cdk-lib.aws_s3.Bucket",
917
+ "version": "2.118.0"
918
+ }
919
+ },
920
+ "CloudFrontOac": {
921
+ "id": "CloudFrontOac",
922
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudFrontOac",
923
+ "attributes": {
924
+ "aws:cdk:cloudformation:type": "AWS::CloudFront::OriginAccessControl",
925
+ "aws:cdk:cloudformation:props": {
926
+ "originAccessControlConfig": {
927
+ "name": {
928
+ "Fn::Join": [
929
+ "",
930
+ [
931
+ "aws-cloudfront-s3-testnt-s3-",
932
+ {
933
+ "Fn::Select": [
934
+ 2,
935
+ {
936
+ "Fn::Split": [
937
+ "/",
938
+ {
939
+ "Ref": "AWS::StackId"
940
+ }
941
+ ]
942
+ }
943
+ ]
944
+ }
945
+ ]
946
+ ]
947
+ },
948
+ "originAccessControlOriginType": "s3",
949
+ "signingBehavior": "always",
950
+ "signingProtocol": "sigv4",
951
+ "description": "Origin access control provisioned by aws-cloudfront-s3"
952
+ }
953
+ }
954
+ },
955
+ "constructInfo": {
956
+ "fqn": "aws-cdk-lib.aws_cloudfront.CfnOriginAccessControl",
957
+ "version": "2.118.0"
958
+ }
959
+ },
960
+ "CloudFrontDistribution": {
961
+ "id": "CloudFrontDistribution",
962
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudFrontDistribution",
963
+ "children": {
964
+ "Origin1": {
965
+ "id": "Origin1",
966
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudFrontDistribution/Origin1",
967
+ "constructInfo": {
968
+ "fqn": "constructs.Construct",
969
+ "version": "10.0.0"
970
+ }
971
+ },
972
+ "Resource": {
973
+ "id": "Resource",
974
+ "path": "cfts3-custom-headers/test-cloudfront-s3/CloudFrontDistribution/Resource",
975
+ "attributes": {
976
+ "aws:cdk:cloudformation:type": "AWS::CloudFront::Distribution",
977
+ "aws:cdk:cloudformation:props": {
978
+ "distributionConfig": {
979
+ "enabled": true,
980
+ "origins": [
981
+ {
982
+ "domainName": {
983
+ "Fn::GetAtt": [
984
+ "testcloudfronts3S3BucketE0C5F76E",
985
+ "RegionalDomainName"
986
+ ]
987
+ },
988
+ "id": "cfts3customheaderstestcloudfronts3CloudFrontDistributionOrigin126E0E496",
989
+ "s3OriginConfig": {
990
+ "originAccessIdentity": ""
991
+ }
992
+ }
993
+ ],
994
+ "defaultCacheBehavior": {
995
+ "pathPattern": "*",
996
+ "targetOriginId": "cfts3customheaderstestcloudfronts3CloudFrontDistributionOrigin126E0E496",
997
+ "cachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
998
+ "compress": true,
999
+ "viewerProtocolPolicy": "redirect-to-https",
1000
+ "functionAssociations": [
1001
+ {
1002
+ "functionArn": {
1003
+ "Fn::GetAtt": [
1004
+ "MyFunction3BAA72D1",
1005
+ "FunctionARN"
1006
+ ]
1007
+ },
1008
+ "eventType": "viewer-response"
1009
+ }
1010
+ ]
1011
+ },
1012
+ "defaultRootObject": "index.html",
1013
+ "httpVersion": "http2",
1014
+ "ipv6Enabled": true,
1015
+ "logging": {
1016
+ "bucket": {
1017
+ "Fn::GetAtt": [
1018
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
1019
+ "RegionalDomainName"
1020
+ ]
1021
+ }
1022
+ }
1023
+ }
1024
+ }
1025
+ },
1026
+ "constructInfo": {
1027
+ "fqn": "aws-cdk-lib.aws_cloudfront.CfnDistribution",
1028
+ "version": "2.118.0"
1029
+ }
1030
+ }
1031
+ },
1032
+ "constructInfo": {
1033
+ "fqn": "aws-cdk-lib.aws_cloudfront.Distribution",
1034
+ "version": "2.118.0"
1035
+ }
1036
+ }
1037
+ },
1038
+ "constructInfo": {
1039
+ "fqn": "@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3",
1040
+ "version": "2.50.0"
1041
+ }
1042
+ },
1043
+ "Custom::S3AutoDeleteObjectsCustomResourceProvider": {
1044
+ "id": "Custom::S3AutoDeleteObjectsCustomResourceProvider",
1045
+ "path": "cfts3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider",
1046
+ "children": {
1047
+ "Staging": {
1048
+ "id": "Staging",
1049
+ "path": "cfts3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Staging",
1050
+ "constructInfo": {
1051
+ "fqn": "aws-cdk-lib.AssetStaging",
1052
+ "version": "2.118.0"
1053
+ }
1054
+ },
1055
+ "Role": {
1056
+ "id": "Role",
1057
+ "path": "cfts3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Role",
1058
+ "constructInfo": {
1059
+ "fqn": "aws-cdk-lib.CfnResource",
1060
+ "version": "2.118.0"
1061
+ }
1062
+ },
1063
+ "Handler": {
1064
+ "id": "Handler",
1065
+ "path": "cfts3-custom-headers/Custom::S3AutoDeleteObjectsCustomResourceProvider/Handler",
1066
+ "constructInfo": {
1067
+ "fqn": "aws-cdk-lib.CfnResource",
1068
+ "version": "2.118.0"
1069
+ }
1070
+ }
1071
+ },
1072
+ "constructInfo": {
1073
+ "fqn": "aws-cdk-lib.CustomResourceProviderBase",
1074
+ "version": "2.118.0"
1075
+ }
1076
+ },
1077
+ "Integ": {
1078
+ "id": "Integ",
1079
+ "path": "cfts3-custom-headers/Integ",
1080
+ "children": {
1081
+ "DefaultTest": {
1082
+ "id": "DefaultTest",
1083
+ "path": "cfts3-custom-headers/Integ/DefaultTest",
1084
+ "children": {
1085
+ "Default": {
1086
+ "id": "Default",
1087
+ "path": "cfts3-custom-headers/Integ/DefaultTest/Default",
1088
+ "constructInfo": {
1089
+ "fqn": "constructs.Construct",
1090
+ "version": "10.0.0"
1091
+ }
1092
+ },
1093
+ "DeployAssert": {
1094
+ "id": "DeployAssert",
1095
+ "path": "cfts3-custom-headers/Integ/DefaultTest/DeployAssert",
1096
+ "children": {
1097
+ "BootstrapVersion": {
1098
+ "id": "BootstrapVersion",
1099
+ "path": "cfts3-custom-headers/Integ/DefaultTest/DeployAssert/BootstrapVersion",
1100
+ "constructInfo": {
1101
+ "fqn": "aws-cdk-lib.CfnParameter",
1102
+ "version": "2.118.0"
1103
+ }
1104
+ },
1105
+ "CheckBootstrapVersion": {
1106
+ "id": "CheckBootstrapVersion",
1107
+ "path": "cfts3-custom-headers/Integ/DefaultTest/DeployAssert/CheckBootstrapVersion",
1108
+ "constructInfo": {
1109
+ "fqn": "aws-cdk-lib.CfnRule",
1110
+ "version": "2.118.0"
1111
+ }
1112
+ }
1113
+ },
1114
+ "constructInfo": {
1115
+ "fqn": "aws-cdk-lib.Stack",
1116
+ "version": "2.118.0"
1117
+ }
1118
+ }
1119
+ },
1120
+ "constructInfo": {
1121
+ "fqn": "@aws-cdk/integ-tests-alpha.IntegTestCase",
1122
+ "version": "2.118.0-alpha.0"
1123
+ }
1124
+ }
1125
+ },
1126
+ "constructInfo": {
1127
+ "fqn": "@aws-cdk/integ-tests-alpha.IntegTest",
1128
+ "version": "2.118.0-alpha.0"
1129
+ }
1130
+ },
1131
+ "BootstrapVersion": {
1132
+ "id": "BootstrapVersion",
1133
+ "path": "cfts3-custom-headers/BootstrapVersion",
1134
+ "constructInfo": {
1135
+ "fqn": "aws-cdk-lib.CfnParameter",
1136
+ "version": "2.118.0"
1137
+ }
1138
+ },
1139
+ "CheckBootstrapVersion": {
1140
+ "id": "CheckBootstrapVersion",
1141
+ "path": "cfts3-custom-headers/CheckBootstrapVersion",
1142
+ "constructInfo": {
1143
+ "fqn": "aws-cdk-lib.CfnRule",
1144
+ "version": "2.118.0"
1145
+ }
1146
+ }
1147
+ },
1148
+ "constructInfo": {
1149
+ "fqn": "aws-cdk-lib.Stack",
1150
+ "version": "2.118.0"
1151
+ }
1152
+ },
1153
+ "Tree": {
1154
+ "id": "Tree",
1155
+ "path": "Tree",
1156
+ "constructInfo": {
1157
+ "fqn": "constructs.Construct",
1158
+ "version": "10.0.0"
1159
+ }
1160
+ }
1161
+ },
1162
+ "constructInfo": {
1163
+ "fqn": "aws-cdk-lib.App",
1164
+ "version": "2.118.0"
1165
+ }
1166
+ }
1167
+ }