diff --git a/cloudtrail/sqs.tf b/cloudtrail/sqs.tf index a5b3840..25ee60a 100644 --- a/cloudtrail/sqs.tf +++ b/cloudtrail/sqs.tf @@ -1,4 +1,5 @@ resource "aws_sqs_queue" "cloudtrail_deadletter" { + count = var.enable_sqs ? 1 : 0 # delay=0 retention=4d max=256k visibility=1h name = format("%v-deadletter", local.name) delay_seconds = 0 @@ -18,7 +19,8 @@ resource "aws_sqs_queue" "cloudtrail_deadletter" { } resource "aws_sqs_queue_policy" "cloudtrail_deadletter" { - queue_url = aws_sqs_queue.cloudtrail_deadletter.id + count = var.enable_sqs ? 1 : 0 + queue_url = var.enable_sqs ? aws_sqs_queue.cloudtrail_deadletter[0].id : null policy = data.aws_iam_policy_document.cloudtrail_deadletter.json } @@ -28,7 +30,7 @@ data "aws_iam_policy_document" "cloudtrail_deadletter" { sid = "AllowSNSSendMessage" effect = "Allow" actions = ["SQS:SendMessage"] - resources = [aws_sqs_queue.cloudtrail_deadletter.arn] + resources = [var.enable_sqs ? aws_sqs_queue.cloudtrail_deadletter[0].arn : null] principals { type = "AWS" identifiers = ["*"] @@ -36,12 +38,13 @@ data "aws_iam_policy_document" "cloudtrail_deadletter" { condition { test = "ArnEquals" variable = "aws:SourceArn" - values = [aws_sns_topic.cloudtrail.arn] + values = [var.enable_sns ? aws_sns_topic.cloudtrail[0].arn : null] } } } resource "aws_sqs_queue" "cloudtrail" { + count = var.enable_sqs ? 1 : 0 # delay=0 retention=7d max=256k visibity=2h name = local.name delay_seconds = 0 @@ -51,7 +54,7 @@ resource "aws_sqs_queue" "cloudtrail" { visibility_timeout_seconds = 7200 redrive_policy = jsonencode({ - deadLetterTargetArn = aws_sqs_queue.cloudtrail_deadletter.arn + deadLetterTargetArn = var.enable_sqs ? aws_sqs_queue.cloudtrail_deadletter[0].arn : null maxReceiveCount = 100 }) @@ -66,7 +69,8 @@ resource "aws_sqs_queue" "cloudtrail" { } resource "aws_sqs_queue_policy" "cloudtrail_sqs" { - queue_url = aws_sqs_queue.cloudtrail.id + count = var.enable_sqs ? 1 : 0 + queue_url = var.enable_sqs ? aws_sqs_queue.cloudtrail[0].id : null policy = data.aws_iam_policy_document.cloudtrail_sqs.json } @@ -76,7 +80,7 @@ data "aws_iam_policy_document" "cloudtrail_sqs" { sid = "AllowSNSSendMessage" effect = "Allow" actions = ["SQS:SendMessage"] - resources = [aws_sqs_queue.cloudtrail.arn] + resources = [var.enable_sqs ? aws_sqs_queue.cloudtrail[0].arn : null] principals { type = "AWS" identifiers = ["*"] @@ -84,13 +88,14 @@ data "aws_iam_policy_document" "cloudtrail_sqs" { condition { test = "ArnEquals" variable = "aws:SourceArn" - values = [aws_sns_topic.cloudtrail.arn] + values = [var.enable_sns ? aws_sns_topic.cloudtrail[0].arn : null] } } } resource "aws_sns_topic_subscription" "cloudtrail_sqs" { + count = var.enable_sqs && var.enable_sns ? 1 : 0 protocol = "sqs" - topic_arn = aws_sns_topic.cloudtrail.arn - endpoint = aws_sqs_queue.cloudtrail.arn + topic_arn = var.enable_sns ? aws_sns_topic.cloudtrail[0].arn : null + endpoint = var.enable_sqs ? aws_sqs_queue.cloudtrail[0].arn : null }