@aws-solutions-constructs/aws-lambda-kinesisstreams 2.51.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 (99) hide show
  1. package/.eslintignore +2 -0
  2. package/.jsii +49 -4
  3. package/integ.config.json +7 -0
  4. package/lib/index.js +1 -1
  5. package/package.json +9 -8
  6. package/test/integ.lamkin-existingLambda.js +5 -2
  7. package/test/integ.lamkin-existingLambda.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  8. package/test/integ.lamkin-existingLambda.js.snapshot/cdk.out +1 -0
  9. package/test/integ.lamkin-existingLambda.js.snapshot/integ.json +12 -0
  10. package/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.assets.json +32 -0
  11. package/test/integ.lamkin-existingLambda.js.snapshot/lamkin-existingLambda.template.json +229 -0
  12. package/test/integ.lamkin-existingLambda.js.snapshot/lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.assets.json +19 -0
  13. package/test/integ.lamkin-existingLambda.js.snapshot/lamkinexistingLambdaIntegDefaultTestDeployAssertD62E9419.template.json +36 -0
  14. package/test/integ.lamkin-existingLambda.js.snapshot/manifest.json +143 -0
  15. package/test/integ.lamkin-existingLambda.js.snapshot/tree.json +412 -0
  16. package/test/integ.lamkin-existingStream.js +5 -2
  17. package/test/integ.lamkin-existingStream.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  18. package/test/integ.lamkin-existingStream.js.snapshot/cdk.out +1 -0
  19. package/test/integ.lamkin-existingStream.js.snapshot/integ.json +12 -0
  20. package/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.assets.json +32 -0
  21. package/test/integ.lamkin-existingStream.js.snapshot/lamkin-existingStream.template.json +231 -0
  22. package/test/integ.lamkin-existingStream.js.snapshot/lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.assets.json +19 -0
  23. package/test/integ.lamkin-existingStream.js.snapshot/lamkinexistingStreamIntegDefaultTestDeployAssert2681B9A2.template.json +36 -0
  24. package/test/integ.lamkin-existingStream.js.snapshot/manifest.json +143 -0
  25. package/test/integ.lamkin-existingStream.js.snapshot/tree.json +414 -0
  26. package/test/integ.lamkin-existingStreamWithCmk.js +5 -2
  27. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  28. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/cdk.out +1 -0
  29. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/integ.json +12 -0
  30. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.assets.json +32 -0
  31. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkin-existingStreamWithCmk.template.json +285 -0
  32. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.assets.json +19 -0
  33. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/lamkinexistingStreamWithCmkIntegDefaultTestDeployAssert6EDF4045.template.json +36 -0
  34. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/manifest.json +149 -0
  35. package/test/integ.lamkin-existingStreamWithCmk.js.snapshot/tree.json +484 -0
  36. package/test/integ.lamkin-existingVpc.js +6 -2
  37. package/test/integ.lamkin-existingVpc.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  38. package/test/integ.lamkin-existingVpc.js.snapshot/asset.dd5711540f04e06aa955d7f4862fc04e8cdea464cb590dae91ed2976bb78098e/__entrypoint__.js +1 -0
  39. package/test/integ.lamkin-existingVpc.js.snapshot/asset.dd5711540f04e06aa955d7f4862fc04e8cdea464cb590dae91ed2976bb78098e/index.js +1 -0
  40. package/test/integ.lamkin-existingVpc.js.snapshot/cdk.out +1 -0
  41. package/test/integ.lamkin-existingVpc.js.snapshot/integ.json +12 -0
  42. package/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.assets.json +45 -0
  43. package/test/integ.lamkin-existingVpc.js.snapshot/lamkin-existingVpc.template.json +1040 -0
  44. package/test/integ.lamkin-existingVpc.js.snapshot/lamkinexistingVpcIntegDefaultTestDeployAssertB97E47BA.assets.json +19 -0
  45. package/test/integ.lamkin-existingVpc.js.snapshot/lamkinexistingVpcIntegDefaultTestDeployAssertB97E47BA.template.json +36 -0
  46. package/test/integ.lamkin-existingVpc.js.snapshot/manifest.json +341 -0
  47. package/test/integ.lamkin-existingVpc.js.snapshot/tree.json +1463 -0
  48. package/test/integ.lamkin-newStreamFromProps.js +5 -2
  49. package/test/integ.lamkin-newStreamFromProps.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  50. package/test/integ.lamkin-newStreamFromProps.js.snapshot/cdk.out +1 -0
  51. package/test/integ.lamkin-newStreamFromProps.js.snapshot/integ.json +12 -0
  52. package/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.assets.json +32 -0
  53. package/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkin-newStreamFromProps.template.json +231 -0
  54. package/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.assets.json +19 -0
  55. package/test/integ.lamkin-newStreamFromProps.js.snapshot/lamkinnewStreamFromPropsIntegDefaultTestDeployAssertC2946F34.template.json +36 -0
  56. package/test/integ.lamkin-newStreamFromProps.js.snapshot/manifest.json +143 -0
  57. package/test/integ.lamkin-newStreamFromProps.js.snapshot/tree.json +414 -0
  58. package/test/integ.lamkin-newVpc.js +6 -2
  59. package/test/integ.lamkin-newVpc.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  60. package/test/integ.lamkin-newVpc.js.snapshot/asset.dd5711540f04e06aa955d7f4862fc04e8cdea464cb590dae91ed2976bb78098e/__entrypoint__.js +1 -0
  61. package/test/integ.lamkin-newVpc.js.snapshot/asset.dd5711540f04e06aa955d7f4862fc04e8cdea464cb590dae91ed2976bb78098e/index.js +1 -0
  62. package/test/integ.lamkin-newVpc.js.snapshot/cdk.out +1 -0
  63. package/test/integ.lamkin-newVpc.js.snapshot/integ.json +12 -0
  64. package/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.assets.json +45 -0
  65. package/test/integ.lamkin-newVpc.js.snapshot/lamkin-newVpc.template.json +756 -0
  66. package/test/integ.lamkin-newVpc.js.snapshot/lamkinnewVpcIntegDefaultTestDeployAssert16AC3D59.assets.json +19 -0
  67. package/test/integ.lamkin-newVpc.js.snapshot/lamkinnewVpcIntegDefaultTestDeployAssert16AC3D59.template.json +36 -0
  68. package/test/integ.lamkin-newVpc.js.snapshot/manifest.json +245 -0
  69. package/test/integ.lamkin-newVpc.js.snapshot/tree.json +1051 -0
  70. package/test/integ.lamkin-newVpcFromProps.js +6 -2
  71. package/test/integ.lamkin-newVpcFromProps.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  72. package/test/integ.lamkin-newVpcFromProps.js.snapshot/asset.dd5711540f04e06aa955d7f4862fc04e8cdea464cb590dae91ed2976bb78098e/__entrypoint__.js +1 -0
  73. package/test/integ.lamkin-newVpcFromProps.js.snapshot/asset.dd5711540f04e06aa955d7f4862fc04e8cdea464cb590dae91ed2976bb78098e/index.js +1 -0
  74. package/test/integ.lamkin-newVpcFromProps.js.snapshot/cdk.out +1 -0
  75. package/test/integ.lamkin-newVpcFromProps.js.snapshot/integ.json +12 -0
  76. package/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.assets.json +45 -0
  77. package/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkin-newVpcFromProps.template.json +692 -0
  78. package/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkinnewVpcFromPropsIntegDefaultTestDeployAssert95FE0487.assets.json +19 -0
  79. package/test/integ.lamkin-newVpcFromProps.js.snapshot/lamkinnewVpcFromPropsIntegDefaultTestDeployAssert95FE0487.template.json +36 -0
  80. package/test/integ.lamkin-newVpcFromProps.js.snapshot/manifest.json +227 -0
  81. package/test/integ.lamkin-newVpcFromProps.js.snapshot/tree.json +946 -0
  82. package/test/integ.lamkin-noArguments.js +5 -2
  83. package/test/integ.lamkin-noArguments.js.snapshot/asset.c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf/index.mjs +15 -0
  84. package/test/integ.lamkin-noArguments.js.snapshot/cdk.out +1 -0
  85. package/test/integ.lamkin-noArguments.js.snapshot/integ.json +12 -0
  86. package/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.assets.json +32 -0
  87. package/test/integ.lamkin-noArguments.js.snapshot/lamkin-noArguments.template.json +229 -0
  88. package/test/integ.lamkin-noArguments.js.snapshot/lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.assets.json +19 -0
  89. package/test/integ.lamkin-noArguments.js.snapshot/lamkinnoArgumentsIntegDefaultTestDeployAssertC0CED4B2.template.json +36 -0
  90. package/test/integ.lamkin-noArguments.js.snapshot/manifest.json +143 -0
  91. package/test/integ.lamkin-noArguments.js.snapshot/tree.json +412 -0
  92. package/test/integ.lamkin-existingLambda.expected.json +0 -229
  93. package/test/integ.lamkin-existingStream.expected.json +0 -231
  94. package/test/integ.lamkin-existingStreamWithCmk.expected.json +0 -297
  95. package/test/integ.lamkin-existingVpc.expected.json +0 -1065
  96. package/test/integ.lamkin-newStreamFromProps.expected.json +0 -231
  97. package/test/integ.lamkin-newVpc.expected.json +0 -671
  98. package/test/integ.lamkin-newVpcFromProps.expected.json +0 -557
  99. package/test/integ.lamkin-noArguments.expected.json +0 -229
@@ -0,0 +1,692 @@
1
+ {
2
+ "Resources": {
3
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3": {
4
+ "Type": "AWS::IAM::Role",
5
+ "Properties": {
6
+ "AssumeRolePolicyDocument": {
7
+ "Statement": [
8
+ {
9
+ "Action": "sts:AssumeRole",
10
+ "Effect": "Allow",
11
+ "Principal": {
12
+ "Service": "lambda.amazonaws.com"
13
+ }
14
+ }
15
+ ],
16
+ "Version": "2012-10-17"
17
+ },
18
+ "Policies": [
19
+ {
20
+ "PolicyDocument": {
21
+ "Statement": [
22
+ {
23
+ "Action": [
24
+ "logs:CreateLogGroup",
25
+ "logs:CreateLogStream",
26
+ "logs:PutLogEvents"
27
+ ],
28
+ "Effect": "Allow",
29
+ "Resource": {
30
+ "Fn::Join": [
31
+ "",
32
+ [
33
+ "arn:",
34
+ {
35
+ "Ref": "AWS::Partition"
36
+ },
37
+ ":logs:",
38
+ {
39
+ "Ref": "AWS::Region"
40
+ },
41
+ ":",
42
+ {
43
+ "Ref": "AWS::AccountId"
44
+ },
45
+ ":log-group:/aws/lambda/*"
46
+ ]
47
+ ]
48
+ }
49
+ }
50
+ ],
51
+ "Version": "2012-10-17"
52
+ },
53
+ "PolicyName": "LambdaFunctionServiceRolePolicy"
54
+ }
55
+ ]
56
+ }
57
+ },
58
+ "testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043": {
59
+ "Type": "AWS::IAM::Policy",
60
+ "Properties": {
61
+ "PolicyDocument": {
62
+ "Statement": [
63
+ {
64
+ "Action": [
65
+ "ec2:AssignPrivateIpAddresses",
66
+ "ec2:CreateNetworkInterface",
67
+ "ec2:DeleteNetworkInterface",
68
+ "ec2:DescribeNetworkInterfaces",
69
+ "ec2:UnassignPrivateIpAddresses",
70
+ "xray:PutTelemetryRecords",
71
+ "xray:PutTraceSegments"
72
+ ],
73
+ "Effect": "Allow",
74
+ "Resource": "*"
75
+ },
76
+ {
77
+ "Action": [
78
+ "kinesis:ListShards",
79
+ "kinesis:PutRecord",
80
+ "kinesis:PutRecords"
81
+ ],
82
+ "Effect": "Allow",
83
+ "Resource": {
84
+ "Fn::GetAtt": [
85
+ "testlambdakinesisstreamsKinesisStream11A82116",
86
+ "Arn"
87
+ ]
88
+ }
89
+ }
90
+ ],
91
+ "Version": "2012-10-17"
92
+ },
93
+ "PolicyName": "testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043",
94
+ "Roles": [
95
+ {
96
+ "Ref": "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3"
97
+ }
98
+ ]
99
+ },
100
+ "Metadata": {
101
+ "cfn_nag": {
102
+ "rules_to_suppress": [
103
+ {
104
+ "id": "W12",
105
+ "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC."
106
+ }
107
+ ]
108
+ }
109
+ }
110
+ },
111
+ "testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C": {
112
+ "Type": "AWS::EC2::SecurityGroup",
113
+ "Properties": {
114
+ "GroupDescription": "lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group",
115
+ "SecurityGroupEgress": [
116
+ {
117
+ "CidrIp": "0.0.0.0/0",
118
+ "Description": "Allow all outbound traffic by default",
119
+ "IpProtocol": "-1"
120
+ }
121
+ ],
122
+ "VpcId": {
123
+ "Ref": "Vpc8378EB38"
124
+ }
125
+ },
126
+ "Metadata": {
127
+ "cfn_nag": {
128
+ "rules_to_suppress": [
129
+ {
130
+ "id": "W5",
131
+ "reason": "Egress of 0.0.0.0/0 is default and generally considered OK"
132
+ },
133
+ {
134
+ "id": "W40",
135
+ "reason": "Egress IPProtocol of -1 is default and generally considered OK"
136
+ }
137
+ ]
138
+ }
139
+ }
140
+ },
141
+ "testlambdakinesisstreamsLambdaFunction4348B6E4": {
142
+ "Type": "AWS::Lambda::Function",
143
+ "Properties": {
144
+ "Code": {
145
+ "S3Bucket": {
146
+ "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
147
+ },
148
+ "S3Key": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"
149
+ },
150
+ "Environment": {
151
+ "Variables": {
152
+ "KINESIS_DATASTREAM_NAME": {
153
+ "Ref": "testlambdakinesisstreamsKinesisStream11A82116"
154
+ }
155
+ }
156
+ },
157
+ "Handler": "index.handler",
158
+ "Role": {
159
+ "Fn::GetAtt": [
160
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
161
+ "Arn"
162
+ ]
163
+ },
164
+ "Runtime": "nodejs18.x",
165
+ "TracingConfig": {
166
+ "Mode": "Active"
167
+ },
168
+ "VpcConfig": {
169
+ "SecurityGroupIds": [
170
+ {
171
+ "Fn::GetAtt": [
172
+ "testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C",
173
+ "GroupId"
174
+ ]
175
+ }
176
+ ],
177
+ "SubnetIds": [
178
+ {
179
+ "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
180
+ }
181
+ ]
182
+ }
183
+ },
184
+ "DependsOn": [
185
+ "testlambdakinesisstreamsLambdaFunctionServiceRoleDefaultPolicyED972043",
186
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
187
+ "VpcisolatedSubnet1RouteTableAssociationD259E31A"
188
+ ],
189
+ "Metadata": {
190
+ "cfn_nag": {
191
+ "rules_to_suppress": [
192
+ {
193
+ "id": "W58",
194
+ "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions."
195
+ },
196
+ {
197
+ "id": "W89",
198
+ "reason": "This is not a rule for the general case, just for specific use cases/industries"
199
+ },
200
+ {
201
+ "id": "W92",
202
+ "reason": "Impossible for us to define the correct concurrency for clients"
203
+ }
204
+ ]
205
+ }
206
+ }
207
+ },
208
+ "testlambdakinesisstreamsKinesisStream11A82116": {
209
+ "Type": "AWS::Kinesis::Stream",
210
+ "Properties": {
211
+ "RetentionPeriodHours": 24,
212
+ "ShardCount": 1,
213
+ "StreamEncryption": {
214
+ "EncryptionType": "KMS",
215
+ "KeyId": "alias/aws/kinesis"
216
+ }
217
+ }
218
+ },
219
+ "testlambdakinesisstreamsKinesisStreamGetRecordsIteratorAgeAlarmC4A0FF00": {
220
+ "Type": "AWS::CloudWatch::Alarm",
221
+ "Properties": {
222
+ "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
223
+ "ComparisonOperator": "GreaterThanOrEqualToThreshold",
224
+ "EvaluationPeriods": 1,
225
+ "MetricName": "GetRecords.IteratorAgeMilliseconds",
226
+ "Namespace": "AWS/Kinesis",
227
+ "Period": 300,
228
+ "Statistic": "Maximum",
229
+ "Threshold": 43200000
230
+ }
231
+ },
232
+ "testlambdakinesisstreamsKinesisStreamReadProvisionedThroughputExceededAlarm9732E188": {
233
+ "Type": "AWS::CloudWatch::Alarm",
234
+ "Properties": {
235
+ "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
236
+ "ComparisonOperator": "GreaterThanThreshold",
237
+ "EvaluationPeriods": 1,
238
+ "MetricName": "ReadProvisionedThroughputExceeded",
239
+ "Namespace": "AWS/Kinesis",
240
+ "Period": 300,
241
+ "Statistic": "Average",
242
+ "Threshold": 0
243
+ }
244
+ },
245
+ "Vpc8378EB38": {
246
+ "Type": "AWS::EC2::VPC",
247
+ "Properties": {
248
+ "CidrBlock": "10.0.0.0/16",
249
+ "EnableDnsHostnames": true,
250
+ "EnableDnsSupport": true,
251
+ "InstanceTenancy": "default",
252
+ "Tags": [
253
+ {
254
+ "Key": "Name",
255
+ "Value": "lamkin-newVpcFromProps/Vpc"
256
+ }
257
+ ]
258
+ }
259
+ },
260
+ "VpcisolatedSubnet1SubnetE62B1B9B": {
261
+ "Type": "AWS::EC2::Subnet",
262
+ "Properties": {
263
+ "AvailabilityZone": {
264
+ "Fn::Select": [
265
+ 0,
266
+ {
267
+ "Fn::GetAZs": ""
268
+ }
269
+ ]
270
+ },
271
+ "CidrBlock": "10.0.0.0/18",
272
+ "MapPublicIpOnLaunch": false,
273
+ "Tags": [
274
+ {
275
+ "Key": "aws-cdk:subnet-name",
276
+ "Value": "isolated"
277
+ },
278
+ {
279
+ "Key": "aws-cdk:subnet-type",
280
+ "Value": "Isolated"
281
+ },
282
+ {
283
+ "Key": "Name",
284
+ "Value": "lamkin-newVpcFromProps/Vpc/isolatedSubnet1"
285
+ }
286
+ ],
287
+ "VpcId": {
288
+ "Ref": "Vpc8378EB38"
289
+ }
290
+ }
291
+ },
292
+ "VpcisolatedSubnet1RouteTableE442650B": {
293
+ "Type": "AWS::EC2::RouteTable",
294
+ "Properties": {
295
+ "Tags": [
296
+ {
297
+ "Key": "Name",
298
+ "Value": "lamkin-newVpcFromProps/Vpc/isolatedSubnet1"
299
+ }
300
+ ],
301
+ "VpcId": {
302
+ "Ref": "Vpc8378EB38"
303
+ }
304
+ }
305
+ },
306
+ "VpcisolatedSubnet1RouteTableAssociationD259E31A": {
307
+ "Type": "AWS::EC2::SubnetRouteTableAssociation",
308
+ "Properties": {
309
+ "RouteTableId": {
310
+ "Ref": "VpcisolatedSubnet1RouteTableE442650B"
311
+ },
312
+ "SubnetId": {
313
+ "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
314
+ }
315
+ }
316
+ },
317
+ "VpcRestrictDefaultSecurityGroupCustomResourceC73DA2BE": {
318
+ "Type": "Custom::VpcRestrictDefaultSG",
319
+ "Properties": {
320
+ "ServiceToken": {
321
+ "Fn::GetAtt": [
322
+ "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E",
323
+ "Arn"
324
+ ]
325
+ },
326
+ "DefaultSecurityGroupId": {
327
+ "Fn::GetAtt": [
328
+ "Vpc8378EB38",
329
+ "DefaultSecurityGroup"
330
+ ]
331
+ },
332
+ "Account": {
333
+ "Ref": "AWS::AccountId"
334
+ }
335
+ },
336
+ "UpdateReplacePolicy": "Delete",
337
+ "DeletionPolicy": "Delete"
338
+ },
339
+ "VpcFlowLogIAMRole6A475D41": {
340
+ "Type": "AWS::IAM::Role",
341
+ "Properties": {
342
+ "AssumeRolePolicyDocument": {
343
+ "Statement": [
344
+ {
345
+ "Action": "sts:AssumeRole",
346
+ "Effect": "Allow",
347
+ "Principal": {
348
+ "Service": "vpc-flow-logs.amazonaws.com"
349
+ }
350
+ }
351
+ ],
352
+ "Version": "2012-10-17"
353
+ },
354
+ "Tags": [
355
+ {
356
+ "Key": "Name",
357
+ "Value": "lamkin-newVpcFromProps/Vpc/FlowLog"
358
+ }
359
+ ]
360
+ }
361
+ },
362
+ "VpcFlowLogIAMRoleDefaultPolicy406FB995": {
363
+ "Type": "AWS::IAM::Policy",
364
+ "Properties": {
365
+ "PolicyDocument": {
366
+ "Statement": [
367
+ {
368
+ "Action": [
369
+ "logs:CreateLogStream",
370
+ "logs:DescribeLogStreams",
371
+ "logs:PutLogEvents"
372
+ ],
373
+ "Effect": "Allow",
374
+ "Resource": {
375
+ "Fn::GetAtt": [
376
+ "VpcFlowLogLogGroup7B5C56B9",
377
+ "Arn"
378
+ ]
379
+ }
380
+ },
381
+ {
382
+ "Action": "iam:PassRole",
383
+ "Effect": "Allow",
384
+ "Resource": {
385
+ "Fn::GetAtt": [
386
+ "VpcFlowLogIAMRole6A475D41",
387
+ "Arn"
388
+ ]
389
+ }
390
+ }
391
+ ],
392
+ "Version": "2012-10-17"
393
+ },
394
+ "PolicyName": "VpcFlowLogIAMRoleDefaultPolicy406FB995",
395
+ "Roles": [
396
+ {
397
+ "Ref": "VpcFlowLogIAMRole6A475D41"
398
+ }
399
+ ]
400
+ }
401
+ },
402
+ "VpcFlowLogLogGroup7B5C56B9": {
403
+ "Type": "AWS::Logs::LogGroup",
404
+ "Properties": {
405
+ "RetentionInDays": 731,
406
+ "Tags": [
407
+ {
408
+ "Key": "Name",
409
+ "Value": "lamkin-newVpcFromProps/Vpc/FlowLog"
410
+ }
411
+ ]
412
+ },
413
+ "UpdateReplacePolicy": "Retain",
414
+ "DeletionPolicy": "Retain",
415
+ "Metadata": {
416
+ "cfn_nag": {
417
+ "rules_to_suppress": [
418
+ {
419
+ "id": "W84",
420
+ "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)"
421
+ }
422
+ ]
423
+ }
424
+ }
425
+ },
426
+ "VpcFlowLog8FF33A73": {
427
+ "Type": "AWS::EC2::FlowLog",
428
+ "Properties": {
429
+ "DeliverLogsPermissionArn": {
430
+ "Fn::GetAtt": [
431
+ "VpcFlowLogIAMRole6A475D41",
432
+ "Arn"
433
+ ]
434
+ },
435
+ "LogDestinationType": "cloud-watch-logs",
436
+ "LogGroupName": {
437
+ "Ref": "VpcFlowLogLogGroup7B5C56B9"
438
+ },
439
+ "ResourceId": {
440
+ "Ref": "Vpc8378EB38"
441
+ },
442
+ "ResourceType": "VPC",
443
+ "Tags": [
444
+ {
445
+ "Key": "Name",
446
+ "Value": "lamkin-newVpcFromProps/Vpc/FlowLog"
447
+ }
448
+ ],
449
+ "TrafficType": "ALL"
450
+ }
451
+ },
452
+ "VpcKINESISSTREAMSC07D91B5": {
453
+ "Type": "AWS::EC2::VPCEndpoint",
454
+ "Properties": {
455
+ "PrivateDnsEnabled": true,
456
+ "SecurityGroupIds": [
457
+ {
458
+ "Fn::GetAtt": [
459
+ "lamkinnewVpcFromPropsKINESISSTREAMSsecuritygroup10DC8B01",
460
+ "GroupId"
461
+ ]
462
+ }
463
+ ],
464
+ "ServiceName": {
465
+ "Fn::Join": [
466
+ "",
467
+ [
468
+ "com.amazonaws.",
469
+ {
470
+ "Ref": "AWS::Region"
471
+ },
472
+ ".kinesis-streams"
473
+ ]
474
+ ]
475
+ },
476
+ "SubnetIds": [
477
+ {
478
+ "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
479
+ }
480
+ ],
481
+ "VpcEndpointType": "Interface",
482
+ "VpcId": {
483
+ "Ref": "Vpc8378EB38"
484
+ }
485
+ }
486
+ },
487
+ "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0": {
488
+ "Type": "AWS::IAM::Role",
489
+ "Properties": {
490
+ "AssumeRolePolicyDocument": {
491
+ "Version": "2012-10-17",
492
+ "Statement": [
493
+ {
494
+ "Action": "sts:AssumeRole",
495
+ "Effect": "Allow",
496
+ "Principal": {
497
+ "Service": "lambda.amazonaws.com"
498
+ }
499
+ }
500
+ ]
501
+ },
502
+ "ManagedPolicyArns": [
503
+ {
504
+ "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
505
+ }
506
+ ],
507
+ "Policies": [
508
+ {
509
+ "PolicyName": "Inline",
510
+ "PolicyDocument": {
511
+ "Version": "2012-10-17",
512
+ "Statement": [
513
+ {
514
+ "Effect": "Allow",
515
+ "Action": [
516
+ "ec2:AuthorizeSecurityGroupIngress",
517
+ "ec2:AuthorizeSecurityGroupEgress",
518
+ "ec2:RevokeSecurityGroupIngress",
519
+ "ec2:RevokeSecurityGroupEgress"
520
+ ],
521
+ "Resource": [
522
+ {
523
+ "Fn::Join": [
524
+ "",
525
+ [
526
+ "arn:",
527
+ {
528
+ "Ref": "AWS::Partition"
529
+ },
530
+ ":ec2:",
531
+ {
532
+ "Ref": "AWS::Region"
533
+ },
534
+ ":",
535
+ {
536
+ "Ref": "AWS::AccountId"
537
+ },
538
+ ":security-group/",
539
+ {
540
+ "Fn::GetAtt": [
541
+ "Vpc8378EB38",
542
+ "DefaultSecurityGroup"
543
+ ]
544
+ }
545
+ ]
546
+ ]
547
+ }
548
+ ]
549
+ }
550
+ ]
551
+ }
552
+ }
553
+ ]
554
+ }
555
+ },
556
+ "CustomVpcRestrictDefaultSGCustomResourceProviderHandlerDC833E5E": {
557
+ "Type": "AWS::Lambda::Function",
558
+ "Properties": {
559
+ "Code": {
560
+ "S3Bucket": {
561
+ "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
562
+ },
563
+ "S3Key": "dd5711540f04e06aa955d7f4862fc04e8cdea464cb590dae91ed2976bb78098e.zip"
564
+ },
565
+ "Timeout": 900,
566
+ "MemorySize": 128,
567
+ "Handler": "__entrypoint__.handler",
568
+ "Role": {
569
+ "Fn::GetAtt": [
570
+ "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0",
571
+ "Arn"
572
+ ]
573
+ },
574
+ "Runtime": "nodejs18.x",
575
+ "Description": "Lambda function for removing all inbound/outbound rules from the VPC default security group"
576
+ },
577
+ "DependsOn": [
578
+ "CustomVpcRestrictDefaultSGCustomResourceProviderRole26592FE0"
579
+ ],
580
+ "Metadata": {
581
+ "cfn_nag": {
582
+ "rules_to_suppress": [
583
+ {
584
+ "id": "W58",
585
+ "reason": "CDK generated custom resource"
586
+ },
587
+ {
588
+ "id": "W89",
589
+ "reason": "CDK generated custom resource"
590
+ },
591
+ {
592
+ "id": "W92",
593
+ "reason": "CDK generated custom resource"
594
+ }
595
+ ]
596
+ }
597
+ }
598
+ },
599
+ "lamkinnewVpcFromPropsKINESISSTREAMSsecuritygroup10DC8B01": {
600
+ "Type": "AWS::EC2::SecurityGroup",
601
+ "Properties": {
602
+ "GroupDescription": "lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group",
603
+ "SecurityGroupEgress": [
604
+ {
605
+ "CidrIp": "0.0.0.0/0",
606
+ "Description": "Allow all outbound traffic by default",
607
+ "IpProtocol": "-1"
608
+ }
609
+ ],
610
+ "SecurityGroupIngress": [
611
+ {
612
+ "CidrIp": {
613
+ "Fn::GetAtt": [
614
+ "Vpc8378EB38",
615
+ "CidrBlock"
616
+ ]
617
+ },
618
+ "Description": {
619
+ "Fn::Join": [
620
+ "",
621
+ [
622
+ "from ",
623
+ {
624
+ "Fn::GetAtt": [
625
+ "Vpc8378EB38",
626
+ "CidrBlock"
627
+ ]
628
+ },
629
+ ":443"
630
+ ]
631
+ ]
632
+ },
633
+ "FromPort": 443,
634
+ "IpProtocol": "tcp",
635
+ "ToPort": 443
636
+ }
637
+ ],
638
+ "VpcId": {
639
+ "Ref": "Vpc8378EB38"
640
+ }
641
+ },
642
+ "Metadata": {
643
+ "cfn_nag": {
644
+ "rules_to_suppress": [
645
+ {
646
+ "id": "W5",
647
+ "reason": "Egress of 0.0.0.0/0 is default and generally considered OK"
648
+ },
649
+ {
650
+ "id": "W40",
651
+ "reason": "Egress IPProtocol of -1 is default and generally considered OK"
652
+ }
653
+ ]
654
+ }
655
+ }
656
+ }
657
+ },
658
+ "Parameters": {
659
+ "BootstrapVersion": {
660
+ "Type": "AWS::SSM::Parameter::Value<String>",
661
+ "Default": "/cdk-bootstrap/hnb659fds/version",
662
+ "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
663
+ }
664
+ },
665
+ "Rules": {
666
+ "CheckBootstrapVersion": {
667
+ "Assertions": [
668
+ {
669
+ "Assert": {
670
+ "Fn::Not": [
671
+ {
672
+ "Fn::Contains": [
673
+ [
674
+ "1",
675
+ "2",
676
+ "3",
677
+ "4",
678
+ "5"
679
+ ],
680
+ {
681
+ "Ref": "BootstrapVersion"
682
+ }
683
+ ]
684
+ }
685
+ ]
686
+ },
687
+ "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
688
+ }
689
+ ]
690
+ }
691
+ }
692
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "version": "36.0.0",
3
+ "files": {
4
+ "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22": {
5
+ "source": {
6
+ "path": "lamkinnewVpcFromPropsIntegDefaultTestDeployAssert95FE0487.template.json",
7
+ "packaging": "file"
8
+ },
9
+ "destinations": {
10
+ "current_account-current_region": {
11
+ "bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
12
+ "objectKey": "21fbb51d7b23f6a6c262b46a9caee79d744a3ac019fd45422d988b96d44b2a22.json",
13
+ "assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
14
+ }
15
+ }
16
+ }
17
+ },
18
+ "dockerImages": {}
19
+ }