From 0c44e31f91dd5ea8c448daff88c7ffbe8ecf6f00 Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Mon, 11 Apr 2022 21:40:56 +0300 Subject: [PATCH] Tagging and Terraform updates. - Update the AWS provider. - Use the common tags option in the provider and improve tagging usage. - Address a few warnings from the updated provider. --- alarms.tf | 2 -- functions.tf | 6 ++---- log-groups.tf | 4 +--- main.tf | 15 ++++++++++++--- s3.tf | 30 ++++++++++++++++++------------ sms-notify.tf | 3 --- sns.tf | 6 ++---- triggers.tf | 1 - 8 files changed, 35 insertions(+), 32 deletions(-) diff --git a/alarms.tf b/alarms.tf index 274ac9a..137491f 100644 --- a/alarms.tf +++ b/alarms.tf @@ -11,7 +11,6 @@ resource "aws_cloudwatch_metric_alarm" "invocations" { ok_actions = [local.topic_arn] period = (var.rate + 1) * 60 statistic = "Sum" - tags = local.common_tags threshold = 1 dimensions = { @@ -36,7 +35,6 @@ resource "aws_cloudwatch_metric_alarm" "errors" { ok_actions = [local.topic_arn] period = (var.rate + 1) * 60 statistic = "Sum" - tags = local.common_tags threshold = 0 dimensions = { diff --git a/functions.tf b/functions.tf index 74c5367..2ce0c5e 100644 --- a/functions.tf +++ b/functions.tf @@ -1,5 +1,5 @@ locals { - function_name_prefix = local.Name + function_name_prefix = local.name functions = [ "_dns", "gitlab", @@ -40,9 +40,8 @@ locals { } resource "aws_iam_role" "lambda" { - name = local.Name + name = local.name assume_role_policy = local.lambda_assume_policy_doc - tags = local.common_tags } locals { @@ -125,7 +124,6 @@ resource "aws_lambda_function" "function" { description = "${local.module} ${local.functions[count.index]} check in ${local.env}." memory_size = var.memory_size reserved_concurrent_executions = -1 - tags = local.common_tags timeout = var.timeout environment { diff --git a/log-groups.tf b/log-groups.tf index a50e4fa..2316e36 100644 --- a/log-groups.tf +++ b/log-groups.tf @@ -3,7 +3,6 @@ resource "aws_cloudwatch_log_group" "lambda" { count = length(local.function_names) name = "/aws/lambda/${local.function_names[count.index]}" retention_in_days = var.log_retention - tags = local.common_tags } locals { @@ -39,9 +38,8 @@ locals { } resource "aws_iam_policy" "log" { - name = "${local.module}-${local.env}-log" + name = "${local.name}-log" policy = local.log_policy_doc - tags = local.common_tags } locals { diff --git a/main.tf b/main.tf index 320abad..cfc07b1 100644 --- a/main.tf +++ b/main.tf @@ -1,5 +1,11 @@ terraform { backend "http" {} + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 4.0" + } + } } locals { @@ -8,8 +14,9 @@ locals { common_tags = { Environment = local.env Module = local.module + Name = local.name } - Name = "${local.module}-${local.env}" + name = "${local.module}-${local.env}" } output "env" { @@ -35,11 +42,13 @@ output "region" { provider "aws" { region = var.region + default_tags { + tags = local.common_tags + } } resource "aws_resourcegroups_group" "group" { - name = local.Name - tags = local.common_tags + name = local.name resource_query { query = <<EOF { diff --git a/s3.tf b/s3.tf index 0786116..8de9772 100644 --- a/s3.tf +++ b/s3.tf @@ -1,16 +1,11 @@ resource "aws_s3_bucket" "payloads" { # checkov:skip=CKV_AWS_18 # checkov:skip=CKV_AWS_19 + # checkov:skip=CKV_AWS_21 # checkov:skip=CKV_AWS_144 # checkov:skip=CKV_AWS_145 - bucket = local.Name - tags = local.common_tags - acl = "private" + bucket = local.name force_destroy = true - - versioning { - enabled = true - } } @@ -19,6 +14,18 @@ locals { payloads_bucket_name = aws_s3_bucket.payloads.bucket } +resource "aws_s3_bucket_versioning" "payloads" { + bucket = local.payloads_bucket_name + versioning_configuration { + status = "Enabled" + } +} + +resource "aws_s3_bucket_acl" "payloads" { + acl = "private" + bucket = local.payloads_bucket_name +} + resource "aws_s3_bucket_public_access_block" "payloads" { bucket = aws_s3_bucket.payloads.bucket @@ -38,19 +45,18 @@ output "payloads_bucket_name" { value = local.payloads_bucket_name } -resource "aws_s3_bucket_object" "payload" { +resource "aws_s3_object" "payload" { # checkov:skip=CKV_AWS_186 bucket = local.payloads_bucket_name key = "payload.zip" source = "payload.zip" etag = filemd5("payload.zip") - tags = local.common_tags } locals { - payload_object_etag = aws_s3_bucket_object.payload.etag - payload_object_name = aws_s3_bucket_object.payload.key - payload_object_version = aws_s3_bucket_object.payload.version_id + payload_object_etag = aws_s3_object.payload.etag + payload_object_name = aws_s3_object.payload.key + payload_object_version = aws_s3_object.payload.version_id } output "payload_object_etag" { diff --git a/sms-notify.tf b/sms-notify.tf index a952408..f096f04 100644 --- a/sms-notify.tf +++ b/sms-notify.tf @@ -28,7 +28,6 @@ resource "aws_lambda_function" "sms_notify" { description = "Send SMS message notification using Twilio." memory_size = var.memory_size reserved_concurrent_executions = -1 - tags = local.common_tags timeout = var.timeout environment { @@ -111,7 +110,6 @@ resource "aws_cloudwatch_log_group" "sms_notify" { # checkov:skip=CKV_AWS_158 name = "/aws/lambda/${local.function_name_prefix}-sms-notify" retention_in_days = var.log_retention - tags = local.common_tags } locals { @@ -149,7 +147,6 @@ locals { resource "aws_iam_policy" "sms_notify_log" { name = "${local.module}-${local.env}-sms-notify-log" policy = local.sms_notify_log_policy_doc - tags = local.common_tags } locals { diff --git a/sns.tf b/sns.tf index 98dce86..4436428 100644 --- a/sns.tf +++ b/sns.tf @@ -1,7 +1,6 @@ resource "aws_sns_topic" "topic" { # checkov:skip=CKV_AWS_26 - name = local.Name - tags = local.common_tags + name = local.name } locals { @@ -61,9 +60,8 @@ locals { } resource "aws_iam_policy" "publish" { - name = "${local.module}-${local.env}-publish" + name = "${local.name}-publish" policy = local.sns_publish_policy_doc - tags = local.common_tags } locals { diff --git a/triggers.tf b/triggers.tf index e08e5ec..5bf5595 100644 --- a/triggers.tf +++ b/triggers.tf @@ -14,7 +14,6 @@ resource "aws_cloudwatch_event_rule" "schedule" { name = local.function_names[count.index] description = "Schedule to trigger ${local.function_names[count.index]} functions in ${local.env}." schedule_expression = "rate(${var.rate} minutes)" - tags = local.common_tags } locals { -- GitLab