From ce81f558ed25500290ad88368bc39db9feb1c02c Mon Sep 17 00:00:00 2001 From: Adar Nimrod <nimrod@shore.co.il> Date: Sun, 9 Jan 2022 11:08:14 +0200 Subject: [PATCH] Address Checkov warnings. Mostly ignore things I'm not interested in but it did find somethings. --- functions.tf | 33 +++++++++++++++++++-------------- log-groups.tf | 1 + s3.tf | 15 +++++++++++++++ sms-notify.tf | 32 +++++++++++++++++++------------- sns.tf | 1 + 5 files changed, 55 insertions(+), 27 deletions(-) diff --git a/functions.tf b/functions.tf index 9b6b9a0..74c5367 100644 --- a/functions.tf +++ b/functions.tf @@ -108,20 +108,25 @@ output "timeout" { } resource "aws_lambda_function" "function" { - count = length(local.functions) - runtime = var.runtime - function_name = local.function_names[count.index] - role = local.lambda_role_arn - source_code_hash = filebase64sha256("payload.zip") - s3_bucket = local.payloads_bucket_name - s3_key = local.payload_object_name - s3_object_version = local.payload_object_version - package_type = "Zip" - handler = "${local.functions[count.index]}.handler" - description = "${local.module} ${local.functions[count.index]} check in ${local.env}." - memory_size = var.memory_size - tags = local.common_tags - timeout = var.timeout + # checkov:skip=CKV_AWS_50 + # checkov:skip=CKV_AWS_116 + # checkov:skip=CKV_AWS_117 + # checkov:skip=CKV_AWS_173 + count = length(local.functions) + runtime = var.runtime + function_name = local.function_names[count.index] + role = local.lambda_role_arn + source_code_hash = filebase64sha256("payload.zip") + s3_bucket = local.payloads_bucket_name + s3_key = local.payload_object_name + s3_object_version = local.payload_object_version + package_type = "Zip" + handler = "${local.functions[count.index]}.handler" + 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 { variables = { diff --git a/log-groups.tf b/log-groups.tf index f0e86d6..a50e4fa 100644 --- a/log-groups.tf +++ b/log-groups.tf @@ -1,4 +1,5 @@ resource "aws_cloudwatch_log_group" "lambda" { + # checkov:skip=CKV_AWS_158 count = length(local.function_names) name = "/aws/lambda/${local.function_names[count.index]}" retention_in_days = var.log_retention diff --git a/s3.tf b/s3.tf index 2d71652..0786116 100644 --- a/s3.tf +++ b/s3.tf @@ -1,4 +1,8 @@ resource "aws_s3_bucket" "payloads" { + # checkov:skip=CKV_AWS_18 + # checkov:skip=CKV_AWS_19 + # checkov:skip=CKV_AWS_144 + # checkov:skip=CKV_AWS_145 bucket = local.Name tags = local.common_tags acl = "private" @@ -9,11 +13,21 @@ resource "aws_s3_bucket" "payloads" { } } + locals { payloads_bucket_arn = aws_s3_bucket.payloads.arn payloads_bucket_name = aws_s3_bucket.payloads.bucket } +resource "aws_s3_bucket_public_access_block" "payloads" { + bucket = aws_s3_bucket.payloads.bucket + + block_public_acls = true + block_public_policy = true + ignore_public_acls = true + restrict_public_buckets = true +} + output "payloads_bucket_arn" { description = "ARN of the payloads S3 bucket." value = local.payloads_bucket_arn @@ -25,6 +39,7 @@ output "payloads_bucket_name" { } resource "aws_s3_bucket_object" "payload" { + # checkov:skip=CKV_AWS_186 bucket = local.payloads_bucket_name key = "payload.zip" source = "payload.zip" diff --git a/sms-notify.tf b/sms-notify.tf index 27047ee..a952408 100644 --- a/sms-notify.tf +++ b/sms-notify.tf @@ -12,19 +12,24 @@ variable "twilio_from_number" { } resource "aws_lambda_function" "sms_notify" { - runtime = var.runtime - function_name = "${local.function_name_prefix}-sms-notify" - role = local.lambda_role_arn - source_code_hash = filebase64sha256("payload.zip") - s3_bucket = local.payloads_bucket_name - s3_key = local.payload_object_name - s3_object_version = local.payload_object_version - package_type = "Zip" - handler = "sms_notify.handler" - description = "Send SMS message notification using Twilio." - memory_size = var.memory_size - tags = local.common_tags - timeout = var.timeout + # checkov:skip=CKV_AWS_50 + # checkov:skip=CKV_AWS_116 + # checkov:skip=CKV_AWS_117 + # checkov:skip=CKV_AWS_173 + runtime = var.runtime + function_name = "${local.function_name_prefix}-sms-notify" + role = local.lambda_role_arn + source_code_hash = filebase64sha256("payload.zip") + s3_bucket = local.payloads_bucket_name + s3_key = local.payload_object_name + s3_object_version = local.payload_object_version + package_type = "Zip" + handler = "sms_notify.handler" + description = "Send SMS message notification using Twilio." + memory_size = var.memory_size + reserved_concurrent_executions = -1 + tags = local.common_tags + timeout = var.timeout environment { variables = { @@ -103,6 +108,7 @@ resource "aws_sns_topic_subscription" "sms_notify" { ] } 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 diff --git a/sns.tf b/sns.tf index 6ddf0d9..98dce86 100644 --- a/sns.tf +++ b/sns.tf @@ -1,4 +1,5 @@ resource "aws_sns_topic" "topic" { + # checkov:skip=CKV_AWS_26 name = local.Name tags = local.common_tags } -- GitLab