22
33# Create Cloudwatch event bus
44resource "aws_cloudwatch_event_bus" "event_bus" {
5- name = " aqua-bus-${ var . random_id } "
5+ count = var. create_vol_scan_resource ? 1 : 0
6+ name = " aqua-bus-${ var . random_id } "
67}
78
89# Create Cloudwatch event rule for EBS events
910resource "aws_cloudwatch_event_rule" "event_rule" {
11+ count = var. create_vol_scan_resource ? 1 : 0
1012 name = " aqua-autoconnect-event-rule-${ var . random_id } "
1113 description = " Aqua EventBridge rule"
12- event_bus_name = aws_cloudwatch_event_bus. event_bus . name
13- role_arn = aws_iam_role. kinesis_stream_events_role . arn
14+ event_bus_name = aws_cloudwatch_event_bus. event_bus [ 0 ] . name
15+ role_arn = aws_iam_role. kinesis_stream_events_role [ 0 ] . arn
1416 event_pattern = jsonencode ({
1517 " detail" : {
1618 " event" : [
@@ -33,12 +35,14 @@ resource "aws_cloudwatch_event_rule" "event_rule" {
3335# Create Kinesis Processor lambda Cloudwatch log group
3436# trivy:ignore:AVD-AWS-0017
3537resource "aws_cloudwatch_log_group" "kinesis_processor_lambda_log_group" {
38+ count = var. create_vol_scan_resource ? 1 : 0
3639 name = " /aws/lambda/aqua-autoconnect-kinesis-processor-lambda-${ var . random_id } "
3740 retention_in_days = 7
3841}
3942
4043# Create Kinesis Data Stream Events role
4144resource "aws_iam_role" "kinesis_stream_events_role" {
45+ count = var. create_vol_scan_resource ? 1 : 0
4246 assume_role_policy = jsonencode ({
4347 " Version" : " 2012-10-17" ,
4448 " Statement" : [
@@ -61,7 +65,7 @@ resource "aws_iam_role" "kinesis_stream_events_role" {
6165 " kinesis:PutRecord" ,
6266 " kinesis:PutRecords"
6367 ],
64- " Resource" : aws_kinesis_stream.kinesis_stream.arn,
68+ " Resource" : aws_kinesis_stream.kinesis_stream[ 0 ] .arn,
6569 " Effect" : " Allow"
6670 }
6771 ]
@@ -73,6 +77,7 @@ resource "aws_iam_role" "kinesis_stream_events_role" {
7377# Create Kinesis Firehose role
7478# tfsec:ignore:aws-iam-no-policy-wildcards
7579resource "aws_iam_role" "kinesis_firehose_role" {
80+ count = var. create_vol_scan_resource ? 1 : 0
7681 assume_role_policy = jsonencode ({
7782 " Version" : " 2012-10-17" ,
7883 " Statement" : [
@@ -98,7 +103,7 @@ resource "aws_iam_role" "kinesis_firehose_role" {
98103 " kinesis:GetShardIterator" ,
99104 " kinesis:ListShards"
100105 ],
101- " Resource" : aws_kinesis_stream.kinesis_stream.arn,
106+ " Resource" : aws_kinesis_stream.kinesis_stream[ 0 ] .arn,
102107 " Effect" : " Allow" ,
103108 " Sid" : " kinesisStreamPermissions"
104109 },
@@ -107,7 +112,7 @@ resource "aws_iam_role" "kinesis_firehose_role" {
107112 " lambda:GetFunctionConfiguration" ,
108113 " lambda:InvokeFunction"
109114 ],
110- " Resource" : aws_kinesis_stream.kinesis_stream.arn,
115+ " Resource" : aws_kinesis_stream.kinesis_stream[ 0 ] .arn,
111116 " Effect" : " Allow" ,
112117 " Sid" : " lambdaPermissions"
113118 },
@@ -120,8 +125,8 @@ resource "aws_iam_role" "kinesis_firehose_role" {
120125 " s3:PutObject"
121126 ],
122127 " Resource" : [
123- aws_s3_bucket.kinesis_firehose_bucket.arn,
124- " ${ aws_s3_bucket . kinesis_firehose_bucket . arn } /*"
128+ aws_s3_bucket.kinesis_firehose_bucket[ 0 ] .arn,
129+ " ${ aws_s3_bucket . kinesis_firehose_bucket [ 0 ] . arn } /*"
125130 ],
126131 " Effect" : " Allow" ,
127132 " Sid" : " s3Permissions"
@@ -134,6 +139,7 @@ resource "aws_iam_role" "kinesis_firehose_role" {
134139
135140# Create Kinesis Processor lambda execution role
136141resource "aws_iam_role" "processor_lambda_execution_role" {
142+ count = var. create_vol_scan_resource ? 1 : 0
137143 assume_role_policy = jsonencode ({
138144 " Version" : " 2012-10-17" ,
139145 " Statement" : [
@@ -169,12 +175,14 @@ resource "aws_iam_role" "processor_lambda_execution_role" {
169175# trivy:ignore:AVD-AWS-0090
170176# trivy:ignore:AVD-AWS-0089
171177resource "aws_s3_bucket" "kinesis_firehose_bucket" {
178+ count = var. create_vol_scan_resource ? 1 : 0
172179 bucket = var. custom_bucket_name == " " ? " aqua-autoconnect-kinesis-firehose-bucket-${ var . random_id } " : var. custom_bucket_name
173180}
174181
175182# Create Kinesis Firehose S3 bucket lifecycle configuration
176183resource "aws_s3_bucket_lifecycle_configuration" "kinesis_firehose_bucket" {
177- bucket = aws_s3_bucket. kinesis_firehose_bucket . bucket
184+ count = var. create_vol_scan_resource ? 1 : 0
185+ bucket = aws_s3_bucket. kinesis_firehose_bucket [0 ]. bucket
178186 rule {
179187 expiration {
180188 days = 7
@@ -187,7 +195,8 @@ resource "aws_s3_bucket_lifecycle_configuration" "kinesis_firehose_bucket" {
187195
188196# Create Kinesis Firehose S3 bucket public access block
189197resource "aws_s3_bucket_public_access_block" "kinesis_firehose_bucket" {
190- bucket = aws_s3_bucket. kinesis_firehose_bucket . bucket
198+ count = var. create_vol_scan_resource ? 1 : 0
199+ bucket = aws_s3_bucket. kinesis_firehose_bucket [0 ]. bucket
191200 block_public_acls = true
192201 block_public_policy = true
193202 ignore_public_acls = true
@@ -197,7 +206,8 @@ resource "aws_s3_bucket_public_access_block" "kinesis_firehose_bucket" {
197206# Create Kinesis Firehose S3 bucket SSE configuration
198207# trivy:ignore:AVD-AWS-0132
199208resource "aws_s3_bucket_server_side_encryption_configuration" "kinesis_firehose_bucket" {
200- bucket = aws_s3_bucket. kinesis_firehose_bucket . bucket
209+ count = var. create_vol_scan_resource ? 1 : 0
210+ bucket = aws_s3_bucket. kinesis_firehose_bucket [0 ]. bucket
201211 rule {
202212 apply_server_side_encryption_by_default {
203213 sse_algorithm = " AES256"
@@ -209,11 +219,12 @@ resource "aws_s3_bucket_server_side_encryption_configuration" "kinesis_firehose_
209219# Create Kinesis Processor lambda function
210220# trivy:ignore:AVD-AWS-0066
211221resource "aws_lambda_function" "kinesis_processor_lambda" {
222+ count = var. create_vol_scan_resource ? 1 : 0
212223 architectures = [" x86_64" ]
213224 description = " Aqua Kinesis Firehose Processor Lambda"
214225 function_name = " aqua-autoconnect-kinesis-processor-lambda-function-${ var . random_id } "
215226 handler = " index.handler"
216- role = aws_iam_role. processor_lambda_execution_role . arn
227+ role = aws_iam_role. processor_lambda_execution_role [ 0 ] . arn
217228 runtime = " python3.12"
218229 timeout = 900
219230 filename = data. archive_file . kinesis_processor_function . output_path
@@ -225,6 +236,7 @@ resource "aws_lambda_function" "kinesis_processor_lambda" {
225236
226237# Create Kinesis Stream
227238resource "aws_kinesis_stream" "kinesis_stream" {
239+ count = var. create_vol_scan_resource ? 1 : 0
228240 encryption_type = " KMS"
229241 kms_key_id = " alias/aws/kinesis"
230242 name = " aqua-autoconnect-kinesis-datastream-${ var . random_id } "
@@ -233,6 +245,7 @@ resource "aws_kinesis_stream" "kinesis_stream" {
233245
234246# Create Kinesis Firehose Delivery Stream
235247resource "aws_kinesis_firehose_delivery_stream" "kinesis_firehose" {
248+ count = var. create_vol_scan_resource ? 1 : 0
236249 destination = " http_endpoint"
237250 http_endpoint_configuration {
238251 access_key = var. aqua_volscan_api_token
@@ -244,21 +257,21 @@ resource "aws_kinesis_firehose_delivery_stream" "kinesis_firehose" {
244257 processors {
245258 parameters {
246259 parameter_name = " LambdaArn"
247- parameter_value = aws_lambda_function. kinesis_processor_lambda . arn
260+ parameter_value = aws_lambda_function. kinesis_processor_lambda [ 0 ] . arn
248261 }
249262 type = " Lambda"
250263 }
251264 }
252- role_arn = aws_iam_role. kinesis_firehose_role . arn
265+ role_arn = aws_iam_role. kinesis_firehose_role [ 0 ] . arn
253266 url = var. aqua_volscan_api_url
254267 s3_configuration {
255- bucket_arn = aws_s3_bucket. kinesis_firehose_bucket . arn
256- role_arn = aws_iam_role. kinesis_firehose_role . arn
268+ bucket_arn = aws_s3_bucket. kinesis_firehose_bucket [ 0 ] . arn
269+ role_arn = aws_iam_role. kinesis_firehose_role [ 0 ] . arn
257270 }
258271 }
259272 kinesis_source_configuration {
260- kinesis_stream_arn = aws_kinesis_stream. kinesis_stream . arn
261- role_arn = aws_iam_role. kinesis_firehose_role . arn
273+ kinesis_stream_arn = aws_kinesis_stream. kinesis_stream [ 0 ] . arn
274+ role_arn = aws_iam_role. kinesis_firehose_role [ 0 ] . arn
262275 }
263276 name = " aqua-autoconnect-kinesis-firehose-${ var . random_id } "
264277}
0 commit comments