Experience Builder


Terraform

< Back

Repository
futurice / terraform-examples
Description

Terraform samples for all the major clouds you can copy and paste. The future, co-created.

Stars

 625

Failed Checks
  •  Security Scanning
     Linting

  • Scan Date

    2023-10-30 17:57:40

    Security Scanning

    This repository failed the Experience Builder Terraform Module's Security Scanning validation. This means that a security scanning tool was not found to be implemented in any of the CICD tool configuration files in the repository.

    There is an opportunity to:

    Checkov Output
                    
                      2023-10-05 14:45:00,608 [MainThread  ] [WARNI]  Failed to download module github.com/neomantra/terraform-docker-mirror:None (for external modules, the --download-external-modules flag is required)
    2023-10-05 14:45:00,608 [MainThread  ] [WARNI]  Failed to download module github.com/claranet/terraform-path-hash?ref=v0.1.0:None (for external modules, the --download-external-modules flag is required)
    2023-10-05 14:45:00,608 [MainThread  ] [WARNI]  Failed to download module terraform-aws-modules/acm/aws:None (for external modules, the --download-external-modules flag is required)
    2023-10-05 14:45:00,609 [MainThread  ] [WARNI]  Failed to download module git::ssh://[email protected]/futurice/terraform-utils.git//aws_reverse_proxy?ref=v11.0:None (for external modules, the --download-external-modules flag is required)
    2023-10-05 14:45:00,609 [MainThread  ] [WARNI]  Failed to download module terraform-aws-modules/alb/aws:~>5.0 (for external modules, the --download-external-modules flag is required)
    2023-10-05 14:45:00,609 [MainThread  ] [WARNI]  Failed to download module terraform-aws-modules/vpc/aws:~>2.0 (for external modules, the --download-external-modules flag is required)
    terraform scan results:
    
    Passed checks: 277, Failed checks: 251, Skipped checks: 0
    
    Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
    	FAILED for resource: aws_instance.this
    	File: /aws/aws_ec2_ebs_docker_host/main.tf:3-46
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-logging-policies/ensure-that-detailed-monitoring-is-enabled-for-ec2-instances.html
    
    		3  | resource "aws_instance" "this" {
    		4  |   instance_type          = "${var.instance_type}"
    		5  |   ami                    = "${var.instance_ami}"
    		6  |   availability_zone      = "${local.availability_zone}"
    		7  |   key_name               = "${aws_key_pair.this.id}"                            # the name of the SSH keypair to use for provisioning
    		8  |   vpc_security_group_ids = ["${aws_security_group.this.id}"]
    		9  |   subnet_id              = "${data.aws_subnet.this.id}"
    		10 |   user_data              = "${sha1(local.reprovision_trigger)}"                 # this value isn't used by the EC2 instance, but its change will trigger re-creation of the resource
    		11 |   tags                   = "${merge(var.tags, map("Name", "${var.hostname}"))}"
    		12 |   volume_tags            = "${merge(var.tags, map("Name", "${var.hostname}"))}" # give the root EBS volume a name (+ other possible tags) that makes it easier to identify as belonging to this host
    		13 | 
    		14 |   root_block_device {
    		15 |     volume_size = "${var.root_volume_size}"
    		16 |   }
    		17 | 
    		18 |   connection {
    		19 |     user        = "${var.ssh_username}"
    		20 |     private_key = "${file("${var.ssh_private_key_path}")}"
    		21 |     agent       = false                                    # don't use SSH agent because we have the private key right here
    		22 |   }
    		23 | 
    		24 |   provisioner "remote-exec" {
    		25 |     inline = [
    		26 |       "sudo hostnamectl set-hostname ${var.hostname}",
    		27 |       "echo 127.0.0.1 ${var.hostname} | sudo tee -a /etc/hosts", # https://askubuntu.com/a/59517
    		28 |     ]
    		29 |   }
    		30 | 
    		31 |   provisioner "remote-exec" {
    		32 |     script = "${path.module}/provision-docker.sh"
    		33 |   }
    		34 | 
    		35 |   provisioner "file" {
    		36 |     source      = "${path.module}/provision-swap.sh"
    		37 |     destination = "/home/${var.ssh_username}/provision-swap.sh"
    		38 |   }
    		39 | 
    		40 |   provisioner "remote-exec" {
    		41 |     inline = [
    		42 |       "sh /home/${var.ssh_username}/provision-swap.sh ${var.swap_file_size} ${var.swap_swappiness}",
    		43 |       "rm /home/${var.ssh_username}/provision-swap.sh",
    		44 |     ]
    		45 |   }
    		46 | }
    
    Check: CKV_AWS_8: "Ensure all data stored in the Launch configuration or instance Elastic Blocks Store is securely encrypted"
    	FAILED for resource: aws_instance.this
    	File: /aws/aws_ec2_ebs_docker_host/main.tf:3-46
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/general-13.html
    
    		3  | resource "aws_instance" "this" {
    		4  |   instance_type          = "${var.instance_type}"
    		5  |   ami                    = "${var.instance_ami}"
    		6  |   availability_zone      = "${local.availability_zone}"
    		7  |   key_name               = "${aws_key_pair.this.id}"                            # the name of the SSH keypair to use for provisioning
    		8  |   vpc_security_group_ids = ["${aws_security_group.this.id}"]
    		9  |   subnet_id              = "${data.aws_subnet.this.id}"
    		10 |   user_data              = "${sha1(local.reprovision_trigger)}"                 # this value isn't used by the EC2 instance, but its change will trigger re-creation of the resource
    		11 |   tags                   = "${merge(var.tags, map("Name", "${var.hostname}"))}"
    		12 |   volume_tags            = "${merge(var.tags, map("Name", "${var.hostname}"))}" # give the root EBS volume a name (+ other possible tags) that makes it easier to identify as belonging to this host
    		13 | 
    		14 |   root_block_device {
    		15 |     volume_size = "${var.root_volume_size}"
    		16 |   }
    		17 | 
    		18 |   connection {
    		19 |     user        = "${var.ssh_username}"
    		20 |     private_key = "${file("${var.ssh_private_key_path}")}"
    		21 |     agent       = false                                    # don't use SSH agent because we have the private key right here
    		22 |   }
    		23 | 
    		24 |   provisioner "remote-exec" {
    		25 |     inline = [
    		26 |       "sudo hostnamectl set-hostname ${var.hostname}",
    		27 |       "echo 127.0.0.1 ${var.hostname} | sudo tee -a /etc/hosts", # https://askubuntu.com/a/59517
    		28 |     ]
    		29 |   }
    		30 | 
    		31 |   provisioner "remote-exec" {
    		32 |     script = "${path.module}/provision-docker.sh"
    		33 |   }
    		34 | 
    		35 |   provisioner "file" {
    		36 |     source      = "${path.module}/provision-swap.sh"
    		37 |     destination = "/home/${var.ssh_username}/provision-swap.sh"
    		38 |   }
    		39 | 
    		40 |   provisioner "remote-exec" {
    		41 |     inline = [
    		42 |       "sh /home/${var.ssh_username}/provision-swap.sh ${var.swap_file_size} ${var.swap_swappiness}",
    		43 |       "rm /home/${var.ssh_username}/provision-swap.sh",
    		44 |     ]
    		45 |   }
    		46 | }
    
    Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
    	FAILED for resource: aws_instance.this
    	File: /aws/aws_ec2_ebs_docker_host/main.tf:3-46
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/bc-aws-general-31.html
    
    		3  | resource "aws_instance" "this" {
    		4  |   instance_type          = "${var.instance_type}"
    		5  |   ami                    = "${var.instance_ami}"
    		6  |   availability_zone      = "${local.availability_zone}"
    		7  |   key_name               = "${aws_key_pair.this.id}"                            # the name of the SSH keypair to use for provisioning
    		8  |   vpc_security_group_ids = ["${aws_security_group.this.id}"]
    		9  |   subnet_id              = "${data.aws_subnet.this.id}"
    		10 |   user_data              = "${sha1(local.reprovision_trigger)}"                 # this value isn't used by the EC2 instance, but its change will trigger re-creation of the resource
    		11 |   tags                   = "${merge(var.tags, map("Name", "${var.hostname}"))}"
    		12 |   volume_tags            = "${merge(var.tags, map("Name", "${var.hostname}"))}" # give the root EBS volume a name (+ other possible tags) that makes it easier to identify as belonging to this host
    		13 | 
    		14 |   root_block_device {
    		15 |     volume_size = "${var.root_volume_size}"
    		16 |   }
    		17 | 
    		18 |   connection {
    		19 |     user        = "${var.ssh_username}"
    		20 |     private_key = "${file("${var.ssh_private_key_path}")}"
    		21 |     agent       = false                                    # don't use SSH agent because we have the private key right here
    		22 |   }
    		23 | 
    		24 |   provisioner "remote-exec" {
    		25 |     inline = [
    		26 |       "sudo hostnamectl set-hostname ${var.hostname}",
    		27 |       "echo 127.0.0.1 ${var.hostname} | sudo tee -a /etc/hosts", # https://askubuntu.com/a/59517
    		28 |     ]
    		29 |   }
    		30 | 
    		31 |   provisioner "remote-exec" {
    		32 |     script = "${path.module}/provision-docker.sh"
    		33 |   }
    		34 | 
    		35 |   provisioner "file" {
    		36 |     source      = "${path.module}/provision-swap.sh"
    		37 |     destination = "/home/${var.ssh_username}/provision-swap.sh"
    		38 |   }
    		39 | 
    		40 |   provisioner "remote-exec" {
    		41 |     inline = [
    		42 |       "sh /home/${var.ssh_username}/provision-swap.sh ${var.swap_file_size} ${var.swap_swappiness}",
    		43 |       "rm /home/${var.ssh_username}/provision-swap.sh",
    		44 |     ]
    		45 |   }
    		46 | }
    
    Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
    	FAILED for resource: aws_instance.this
    	File: /aws/aws_ec2_ebs_docker_host/main.tf:3-46
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-ec2-is-ebs-optimized.html
    
    		3  | resource "aws_instance" "this" {
    		4  |   instance_type          = "${var.instance_type}"
    		5  |   ami                    = "${var.instance_ami}"
    		6  |   availability_zone      = "${local.availability_zone}"
    		7  |   key_name               = "${aws_key_pair.this.id}"                            # the name of the SSH keypair to use for provisioning
    		8  |   vpc_security_group_ids = ["${aws_security_group.this.id}"]
    		9  |   subnet_id              = "${data.aws_subnet.this.id}"
    		10 |   user_data              = "${sha1(local.reprovision_trigger)}"                 # this value isn't used by the EC2 instance, but its change will trigger re-creation of the resource
    		11 |   tags                   = "${merge(var.tags, map("Name", "${var.hostname}"))}"
    		12 |   volume_tags            = "${merge(var.tags, map("Name", "${var.hostname}"))}" # give the root EBS volume a name (+ other possible tags) that makes it easier to identify as belonging to this host
    		13 | 
    		14 |   root_block_device {
    		15 |     volume_size = "${var.root_volume_size}"
    		16 |   }
    		17 | 
    		18 |   connection {
    		19 |     user        = "${var.ssh_username}"
    		20 |     private_key = "${file("${var.ssh_private_key_path}")}"
    		21 |     agent       = false                                    # don't use SSH agent because we have the private key right here
    		22 |   }
    		23 | 
    		24 |   provisioner "remote-exec" {
    		25 |     inline = [
    		26 |       "sudo hostnamectl set-hostname ${var.hostname}",
    		27 |       "echo 127.0.0.1 ${var.hostname} | sudo tee -a /etc/hosts", # https://askubuntu.com/a/59517
    		28 |     ]
    		29 |   }
    		30 | 
    		31 |   provisioner "remote-exec" {
    		32 |     script = "${path.module}/provision-docker.sh"
    		33 |   }
    		34 | 
    		35 |   provisioner "file" {
    		36 |     source      = "${path.module}/provision-swap.sh"
    		37 |     destination = "/home/${var.ssh_username}/provision-swap.sh"
    		38 |   }
    		39 | 
    		40 |   provisioner "remote-exec" {
    		41 |     inline = [
    		42 |       "sh /home/${var.ssh_username}/provision-swap.sh ${var.swap_file_size} ${var.swap_swappiness}",
    		43 |       "rm /home/${var.ssh_username}/provision-swap.sh",
    		44 |     ]
    		45 |   }
    		46 | }
    
    Check: CKV_AWS_23: "Ensure every security groups rule has a description"
    	FAILED for resource: aws_security_group.this
    	File: /aws/aws_ec2_ebs_docker_host/security.tf:7-10
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/networking-31.html
    
    		7  | resource "aws_security_group" "this" {
    		8  |   vpc_id = "${data.aws_vpc.this.id}"
    		9  |   tags   = "${merge(var.tags, map("Name", "${var.hostname}"))}"
    		10 | }
    
    Check: CKV_AWS_23: "Ensure every security groups rule has a description"
    	FAILED for resource: aws_security_group_rule.outgoing_any
    	File: /aws/aws_ec2_ebs_docker_host/security.tf:14-21
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/networking-31.html
    
    		14 | resource "aws_security_group_rule" "outgoing_any" {
    		15 |   security_group_id = "${aws_security_group.this.id}"
    		16 |   type              = "egress"
    		17 |   from_port         = 0
    		18 |   to_port           = 0
    		19 |   protocol          = "-1"
    		20 |   cidr_blocks       = ["0.0.0.0/0"]
    		21 | }
    
    Check: CKV_AWS_23: "Ensure every security groups rule has a description"
    	FAILED for resource: aws_security_group_rule.incoming_ssh
    	File: /aws/aws_ec2_ebs_docker_host/security.tf:23-30
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/networking-31.html
    
    		23 | resource "aws_security_group_rule" "incoming_ssh" {
    		24 |   security_group_id = "${aws_security_group.this.id}"
    		25 |   type              = "ingress"
    		26 |   from_port         = 22
    		27 |   to_port           = 22
    		28 |   protocol          = "tcp"
    		29 |   cidr_blocks       = ["0.0.0.0/0"]
    		30 | }
    
    Check: CKV_AWS_24: "Ensure no security groups allow ingress from 0.0.0.0:0 to port 22"
    	FAILED for resource: aws_security_group_rule.incoming_ssh
    	File: /aws/aws_ec2_ebs_docker_host/security.tf:23-30
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/networking-1-port-security.html
    
    		23 | resource "aws_security_group_rule" "incoming_ssh" {
    		24 |   security_group_id = "${aws_security_group.this.id}"
    		25 |   type              = "ingress"
    		26 |   from_port         = 22
    		27 |   to_port           = 22
    		28 |   protocol          = "tcp"
    		29 |   cidr_blocks       = ["0.0.0.0/0"]
    		30 | }
    
    Check: CKV_AWS_237: "Ensure Create before destroy for API GATEWAY"
    	FAILED for resource: aws_api_gateway_rest_api.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:1-4
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-aws-api-gateway-enables-create-before-destroy.html
    
    		1 | resource "aws_api_gateway_rest_api" "this" {
    		2 |   name        = "${local.prefix_with_domain}"
    		3 |   description = "${var.comment_prefix}${var.api_domain}"
    		4 | }
    
    Check: CKV_AWS_217: "Ensure Create before destroy for API deployments"
    	FAILED for resource: aws_api_gateway_deployment.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:6-13
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-aws-api-deployments-enable-create-before-destroy.html
    
    		6  | resource "aws_api_gateway_deployment" "this" {
    		7  |   rest_api_id = "${aws_api_gateway_rest_api.this.id}"
    		8  | 
    		9  |   depends_on = [
    		10 |     "aws_api_gateway_integration.proxy_root",
    		11 |     "aws_api_gateway_integration.proxy_other",
    		12 |   ]
    		13 | }
    
    Check: CKV_AWS_120: "Ensure API Gateway caching is enabled"
    	FAILED for resource: aws_api_gateway_stage.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:15-21
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-api-gateway-caching-is-enabled.html
    
    		15 | resource "aws_api_gateway_stage" "this" {
    		16 |   stage_name    = "${var.stage_name}"
    		17 |   description   = "${var.comment_prefix}${var.api_domain}"
    		18 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		19 |   deployment_id = "${aws_api_gateway_deployment.this.id}"
    		20 |   tags          = "${var.tags}"
    		21 | }
    
    Check: CKV_AWS_73: "Ensure API Gateway has X-Ray Tracing enabled"
    	FAILED for resource: aws_api_gateway_stage.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:15-21
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-logging-policies/logging-15.html
    
    		15 | resource "aws_api_gateway_stage" "this" {
    		16 |   stage_name    = "${var.stage_name}"
    		17 |   description   = "${var.comment_prefix}${var.api_domain}"
    		18 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		19 |   deployment_id = "${aws_api_gateway_deployment.this.id}"
    		20 |   tags          = "${var.tags}"
    		21 | }
    
    Check: CKV_AWS_76: "Ensure API Gateway has Access Logging enabled"
    	FAILED for resource: aws_api_gateway_stage.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:15-21
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-logging-policies/logging-17.html
    
    		15 | resource "aws_api_gateway_stage" "this" {
    		16 |   stage_name    = "${var.stage_name}"
    		17 |   description   = "${var.comment_prefix}${var.api_domain}"
    		18 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		19 |   deployment_id = "${aws_api_gateway_deployment.this.id}"
    		20 |   tags          = "${var.tags}"
    		21 | }
    
    Check: CKV_AWS_225: "Ensure API Gateway method setting caching is enabled"
    	FAILED for resource: aws_api_gateway_method_settings.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:23-35
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-aws-api-gateway-method-settings-enable-caching.html
    
    		23 | resource "aws_api_gateway_method_settings" "this" {
    		24 |   rest_api_id = "${aws_api_gateway_rest_api.this.id}"
    		25 |   stage_name  = "${aws_api_gateway_stage.this.stage_name}"
    		26 |   method_path = "*/*"
    		27 | 
    		28 |   settings {
    		29 |     metrics_enabled        = "${var.api_gateway_cloudwatch_metrics}"
    		30 |     logging_level          = "${var.api_gateway_logging_level}"
    		31 |     data_trace_enabled     = "${var.api_gateway_logging_level == "OFF" ? false : true}"
    		32 |     throttling_rate_limit  = "${var.throttling_rate_limit}"
    		33 |     throttling_burst_limit = "${var.throttling_burst_limit}"
    		34 |   }
    		35 | }
    
    Check: CKV_AWS_308: "Ensure API Gateway method setting caching is set to encrypted"
    	FAILED for resource: aws_api_gateway_method_settings.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:23-35
    
    		23 | resource "aws_api_gateway_method_settings" "this" {
    		24 |   rest_api_id = "${aws_api_gateway_rest_api.this.id}"
    		25 |   stage_name  = "${aws_api_gateway_stage.this.stage_name}"
    		26 |   method_path = "*/*"
    		27 | 
    		28 |   settings {
    		29 |     metrics_enabled        = "${var.api_gateway_cloudwatch_metrics}"
    		30 |     logging_level          = "${var.api_gateway_logging_level}"
    		31 |     data_trace_enabled     = "${var.api_gateway_logging_level == "OFF" ? false : true}"
    		32 |     throttling_rate_limit  = "${var.throttling_rate_limit}"
    		33 |     throttling_burst_limit = "${var.throttling_burst_limit}"
    		34 |   }
    		35 | }
    
    Check: CKV_AWS_206: "Ensure API Gateway Domain uses a modern security Policy"
    	FAILED for resource: aws_api_gateway_domain_name.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:37-44
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-aws-api-gateway-domain-uses-a-modern-security-policy.html
    
    		37 | resource "aws_api_gateway_domain_name" "this" {
    		38 |   domain_name              = "${var.api_domain}"
    		39 |   regional_certificate_arn = "${aws_acm_certificate_validation.this.certificate_arn}"
    		40 | 
    		41 |   endpoint_configuration {
    		42 |     types = ["REGIONAL"]
    		43 |   }
    		44 | }
    
    Check: CKV_AWS_59: "Ensure there is no open access to back-end resources through API"
    	FAILED for resource: aws_api_gateway_method.proxy_root
    	File: /aws/aws_lambda_api/api_gateway_resources.tf:3-8
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-6-api-gateway-authorizer-set.html
    
    		3 | resource "aws_api_gateway_method" "proxy_root" {
    		4 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		5 |   resource_id   = "${aws_api_gateway_rest_api.this.root_resource_id}"
    		6 |   http_method   = "ANY"
    		7 |   authorization = "NONE"
    		8 | }
    
    Check: CKV_AWS_59: "Ensure there is no open access to back-end resources through API"
    	FAILED for resource: aws_api_gateway_method.proxy_other
    	File: /aws/aws_lambda_api/api_gateway_resources.tf:27-32
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-6-api-gateway-authorizer-set.html
    
    		27 | resource "aws_api_gateway_method" "proxy_other" {
    		28 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		29 |   resource_id   = "${aws_api_gateway_resource.proxy_other.id}"
    		30 |   http_method   = "ANY"
    		31 |   authorization = "NONE"
    		32 | }
    
    Check: CKV_AWS_233: "Ensure Create before destroy for ACM certificates"
    	FAILED for resource: aws_acm_certificate.this
    	File: /aws/aws_lambda_api/certificate.tf:3-7
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/ensure-aws-acm-certificate-enables-create-before-destroy.html
    
    		3 | resource "aws_acm_certificate" "this" {
    		4 |   domain_name       = "${var.api_domain}"
    		5 |   validation_method = "DNS"                                                                       # the required records are created below
    		6 |   tags              = "${merge(var.tags, map("Name", "${var.comment_prefix}${var.api_domain}"))}"
    		7 | }
    
    Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_api/main.tf:6-26
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-4.html
    
    		6  | resource "aws_lambda_function" "local_zipfile" {
    		7  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		8  | 
    		9  |   # These are SPECIFIC to the deployment method:
    		10 |   filename         = "${var.function_zipfile}"
    		11 |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		12 | 
    		13 |   # These are the SAME for both:
    		14 |   description   = "${var.comment_prefix}${var.api_domain}"
    		15 |   function_name = "${local.prefix_with_domain}"
    		16 |   handler       = "${var.function_handler}"
    		17 |   runtime       = "${var.function_runtime}"
    		18 |   timeout       = "${var.function_timeout}"
    		19 |   memory_size   = "${var.memory_size}"
    		20 |   role          = "${aws_iam_role.this.arn}"
    		21 |   tags          = "${var.tags}"
    		22 | 
    		23 |   environment {
    		24 |     variables = "${var.function_env_vars}"
    		25 |   }
    		26 | }
    
    Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_api/main.tf:6-26
    
    		6  | resource "aws_lambda_function" "local_zipfile" {
    		7  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		8  | 
    		9  |   # These are SPECIFIC to the deployment method:
    		10 |   filename         = "${var.function_zipfile}"
    		11 |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		12 | 
    		13 |   # These are the SAME for both:
    		14 |   description   = "${var.comment_prefix}${var.api_domain}"
    		15 |   function_name = "${local.prefix_with_domain}"
    		16 |   handler       = "${var.function_handler}"
    		17 |   runtime       = "${var.function_runtime}"
    		18 |   timeout       = "${var.function_timeout}"
    		19 |   memory_size   = "${var.memory_size}"
    		20 |   role          = "${aws_iam_role.this.arn}"
    		21 |   tags          = "${var.tags}"
    		22 | 
    		23 |   environment {
    		24 |     variables = "${var.function_env_vars}"
    		25 |   }
    		26 | }
    
    Check: CKV_AWS_363: "Ensure Lambda Runtime is not deprecated"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_api/main.tf:6-26
    
    		6  | resource "aws_lambda_function" "local_zipfile" {
    		7  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		8  | 
    		9  |   # These are SPECIFIC to the deployment method:
    		10 |   filename         = "${var.function_zipfile}"
    		11 |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		12 | 
    		13 |   # These are the SAME for both:
    		14 |   description   = "${var.comment_prefix}${var.api_domain}"
    		15 |   function_name = "${local.prefix_with_domain}"
    		16 |   handler       = "${var.function_handler}"
    		17 |   runtime       = "${var.function_runtime}"
    		18 |   timeout       = "${var.function_timeout}"
    		19 |   memory_size   = "${var.memory_size}"
    		20 |   role          = "${aws_iam_role.this.arn}"
    		21 |   tags          = "${var.tags}"
    		22 | 
    		23 |   environment {
    		24 |     variables = "${var.function_env_vars}"
    		25 |   }
    		26 | }
    
    Check: CKV_AWS_173: "Check encryption settings for Lambda environmental variable"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_api/main.tf:6-26
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-5.html
    
    		6  | resource "aws_lambda_function" "local_zipfile" {
    		7  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		8  | 
    		9  |   # These are SPECIFIC to the deployment method:
    		10 |   filename         = "${var.function_zipfile}"
    		11 |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		12 | 
    		13 |   # These are the SAME for both:
    		14 |   description   = "${var.comment_prefix}${var.api_domain}"
    		15 |   function_name = "${local.prefix_with_domain}"
    		16 |   handler       = "${var.function_handler}"
    		17 |   runtime       = "${var.function_runtime}"
    		18 |   timeout       = "${var.function_timeout}"
    		19 |   memory_size   = "${var.memory_size}"
    		20 |   role          = "${aws_iam_role.this.arn}"
    		21 |   tags          = "${var.tags}"
    		22 | 
    		23 |   environment {
    		24 |     variables = "${var.function_env_vars}"
    		25 |   }
    		26 | }
    
    Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_api/main.tf:6-26
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-function-level-concurrent-execution-limit.html
    
    		6  | resource "aws_lambda_function" "local_zipfile" {
    		7  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		8  | 
    		9  |   # These are SPECIFIC to the deployment method:
    		10 |   filename         = "${var.function_zipfile}"
    		11 |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		12 | 
    		13 |   # These are the SAME for both:
    		14 |   description   = "${var.comment_prefix}${var.api_domain}"
    		15 |   function_name = "${local.prefix_with_domain}"
    		16 |   handler       = "${var.function_handler}"
    		17 |   runtime       = "${var.function_runtime}"
    		18 |   timeout       = "${var.function_timeout}"
    		19 |   memory_size   = "${var.memory_size}"
    		20 |   role          = "${aws_iam_role.this.arn}"
    		21 |   tags          = "${var.tags}"
    		22 | 
    		23 |   environment {
    		24 |     variables = "${var.function_env_vars}"
    		25 |   }
    		26 | }
    
    Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_api/main.tf:6-26
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-a-dead-letter-queue-dlq.html
    
    		6  | resource "aws_lambda_function" "local_zipfile" {
    		7  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		8  | 
    		9  |   # These are SPECIFIC to the deployment method:
    		10 |   filename         = "${var.function_zipfile}"
    		11 |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		12 | 
    		13 |   # These are the SAME for both:
    		14 |   description   = "${var.comment_prefix}${var.api_domain}"
    		15 |   function_name = "${local.prefix_with_domain}"
    		16 |   handler       = "${var.function_handler}"
    		17 |   runtime       = "${var.function_runtime}"
    		18 |   timeout       = "${var.function_timeout}"
    		19 |   memory_size   = "${var.memory_size}"
    		20 |   role          = "${aws_iam_role.this.arn}"
    		21 |   tags          = "${var.tags}"
    		22 | 
    		23 |   environment {
    		24 |     variables = "${var.function_env_vars}"
    		25 |   }
    		26 | }
    
    Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_api/main.tf:6-26
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-inside-a-vpc-1.html
    
    		6  | resource "aws_lambda_function" "local_zipfile" {
    		7  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		8  | 
    		9  |   # These are SPECIFIC to the deployment method:
    		10 |   filename         = "${var.function_zipfile}"
    		11 |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		12 | 
    		13 |   # These are the SAME for both:
    		14 |   description   = "${var.comment_prefix}${var.api_domain}"
    		15 |   function_name = "${local.prefix_with_domain}"
    		16 |   handler       = "${var.function_handler}"
    		17 |   runtime       = "${var.function_runtime}"
    		18 |   timeout       = "${var.function_timeout}"
    		19 |   memory_size   = "${var.memory_size}"
    		20 |   role          = "${aws_iam_role.this.arn}"
    		21 |   tags          = "${var.tags}"
    		22 | 
    		23 |   environment {
    		24 |     variables = "${var.function_env_vars}"
    		25 |   }
    		26 | }
    
    Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_api/main.tf:29-49
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-4.html
    
    		29 | resource "aws_lambda_function" "s3_zipfile" {
    		30 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		31 | 
    		32 |   # These are SPECIFIC to the deployment method:
    		33 |   s3_bucket = "${var.function_s3_bucket}"
    		34 |   s3_key    = "${var.function_zipfile}"
    		35 | 
    		36 |   # These are the SAME for both:
    		37 |   description   = "${var.comment_prefix}${var.api_domain}"
    		38 |   function_name = "${local.prefix_with_domain}"
    		39 |   handler       = "${var.function_handler}"
    		40 |   runtime       = "${var.function_runtime}"
    		41 |   timeout       = "${var.function_timeout}"
    		42 |   memory_size   = "${var.memory_size}"
    		43 |   role          = "${aws_iam_role.this.arn}"
    		44 |   tags          = "${var.tags}"
    		45 | 
    		46 |   environment {
    		47 |     variables = "${var.function_env_vars}"
    		48 |   }
    		49 | }
    
    Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_api/main.tf:29-49
    
    		29 | resource "aws_lambda_function" "s3_zipfile" {
    		30 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		31 | 
    		32 |   # These are SPECIFIC to the deployment method:
    		33 |   s3_bucket = "${var.function_s3_bucket}"
    		34 |   s3_key    = "${var.function_zipfile}"
    		35 | 
    		36 |   # These are the SAME for both:
    		37 |   description   = "${var.comment_prefix}${var.api_domain}"
    		38 |   function_name = "${local.prefix_with_domain}"
    		39 |   handler       = "${var.function_handler}"
    		40 |   runtime       = "${var.function_runtime}"
    		41 |   timeout       = "${var.function_timeout}"
    		42 |   memory_size   = "${var.memory_size}"
    		43 |   role          = "${aws_iam_role.this.arn}"
    		44 |   tags          = "${var.tags}"
    		45 | 
    		46 |   environment {
    		47 |     variables = "${var.function_env_vars}"
    		48 |   }
    		49 | }
    
    Check: CKV_AWS_363: "Ensure Lambda Runtime is not deprecated"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_api/main.tf:29-49
    
    		29 | resource "aws_lambda_function" "s3_zipfile" {
    		30 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		31 | 
    		32 |   # These are SPECIFIC to the deployment method:
    		33 |   s3_bucket = "${var.function_s3_bucket}"
    		34 |   s3_key    = "${var.function_zipfile}"
    		35 | 
    		36 |   # These are the SAME for both:
    		37 |   description   = "${var.comment_prefix}${var.api_domain}"
    		38 |   function_name = "${local.prefix_with_domain}"
    		39 |   handler       = "${var.function_handler}"
    		40 |   runtime       = "${var.function_runtime}"
    		41 |   timeout       = "${var.function_timeout}"
    		42 |   memory_size   = "${var.memory_size}"
    		43 |   role          = "${aws_iam_role.this.arn}"
    		44 |   tags          = "${var.tags}"
    		45 | 
    		46 |   environment {
    		47 |     variables = "${var.function_env_vars}"
    		48 |   }
    		49 | }
    
    Check: CKV_AWS_173: "Check encryption settings for Lambda environmental variable"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_api/main.tf:29-49
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-5.html
    
    		29 | resource "aws_lambda_function" "s3_zipfile" {
    		30 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		31 | 
    		32 |   # These are SPECIFIC to the deployment method:
    		33 |   s3_bucket = "${var.function_s3_bucket}"
    		34 |   s3_key    = "${var.function_zipfile}"
    		35 | 
    		36 |   # These are the SAME for both:
    		37 |   description   = "${var.comment_prefix}${var.api_domain}"
    		38 |   function_name = "${local.prefix_with_domain}"
    		39 |   handler       = "${var.function_handler}"
    		40 |   runtime       = "${var.function_runtime}"
    		41 |   timeout       = "${var.function_timeout}"
    		42 |   memory_size   = "${var.memory_size}"
    		43 |   role          = "${aws_iam_role.this.arn}"
    		44 |   tags          = "${var.tags}"
    		45 | 
    		46 |   environment {
    		47 |     variables = "${var.function_env_vars}"
    		48 |   }
    		49 | }
    
    Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_api/main.tf:29-49
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-function-level-concurrent-execution-limit.html
    
    		29 | resource "aws_lambda_function" "s3_zipfile" {
    		30 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		31 | 
    		32 |   # These are SPECIFIC to the deployment method:
    		33 |   s3_bucket = "${var.function_s3_bucket}"
    		34 |   s3_key    = "${var.function_zipfile}"
    		35 | 
    		36 |   # These are the SAME for both:
    		37 |   description   = "${var.comment_prefix}${var.api_domain}"
    		38 |   function_name = "${local.prefix_with_domain}"
    		39 |   handler       = "${var.function_handler}"
    		40 |   runtime       = "${var.function_runtime}"
    		41 |   timeout       = "${var.function_timeout}"
    		42 |   memory_size   = "${var.memory_size}"
    		43 |   role          = "${aws_iam_role.this.arn}"
    		44 |   tags          = "${var.tags}"
    		45 | 
    		46 |   environment {
    		47 |     variables = "${var.function_env_vars}"
    		48 |   }
    		49 | }
    
    Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_api/main.tf:29-49
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-a-dead-letter-queue-dlq.html
    
    		29 | resource "aws_lambda_function" "s3_zipfile" {
    		30 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		31 | 
    		32 |   # These are SPECIFIC to the deployment method:
    		33 |   s3_bucket = "${var.function_s3_bucket}"
    		34 |   s3_key    = "${var.function_zipfile}"
    		35 | 
    		36 |   # These are the SAME for both:
    		37 |   description   = "${var.comment_prefix}${var.api_domain}"
    		38 |   function_name = "${local.prefix_with_domain}"
    		39 |   handler       = "${var.function_handler}"
    		40 |   runtime       = "${var.function_runtime}"
    		41 |   timeout       = "${var.function_timeout}"
    		42 |   memory_size   = "${var.memory_size}"
    		43 |   role          = "${aws_iam_role.this.arn}"
    		44 |   tags          = "${var.tags}"
    		45 | 
    		46 |   environment {
    		47 |     variables = "${var.function_env_vars}"
    		48 |   }
    		49 | }
    
    Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_api/main.tf:29-49
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-inside-a-vpc-1.html
    
    		29 | resource "aws_lambda_function" "s3_zipfile" {
    		30 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		31 | 
    		32 |   # These are SPECIFIC to the deployment method:
    		33 |   s3_bucket = "${var.function_s3_bucket}"
    		34 |   s3_key    = "${var.function_zipfile}"
    		35 | 
    		36 |   # These are the SAME for both:
    		37 |   description   = "${var.comment_prefix}${var.api_domain}"
    		38 |   function_name = "${local.prefix_with_domain}"
    		39 |   handler       = "${var.function_handler}"
    		40 |   runtime       = "${var.function_runtime}"
    		41 |   timeout       = "${var.function_timeout}"
    		42 |   memory_size   = "${var.memory_size}"
    		43 |   role          = "${aws_iam_role.this.arn}"
    		44 |   tags          = "${var.tags}"
    		45 | 
    		46 |   environment {
    		47 |     variables = "${var.function_env_vars}"
    		48 |   }
    		49 | }
    
    Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_cronjob/main.tf:2-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-4.html
    
    		2  | resource "aws_lambda_function" "local_zipfile" {
    		3  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		4  | 
    		5  |   # These are SPECIFIC to the deployment method:
    		6  |   filename         = "${var.function_zipfile}"
    		7  |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		8  | 
    		9  |   # These are the SAME for both:
    		10 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		11 |   function_name = "${local.prefix_with_name}"
    		12 |   handler       = "${var.function_handler}"
    		13 |   runtime       = "${var.function_runtime}"
    		14 |   timeout       = "${var.function_timeout}"
    		15 |   memory_size   = "${var.memory_size}"
    		16 |   role          = "${aws_iam_role.this.arn}"
    		17 |   tags          = "${var.tags}"
    		18 | 
    		19 |   environment {
    		20 |     variables = "${var.function_env_vars}"
    		21 |   }
    		22 | }
    
    Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_cronjob/main.tf:2-22
    
    		2  | resource "aws_lambda_function" "local_zipfile" {
    		3  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		4  | 
    		5  |   # These are SPECIFIC to the deployment method:
    		6  |   filename         = "${var.function_zipfile}"
    		7  |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		8  | 
    		9  |   # These are the SAME for both:
    		10 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		11 |   function_name = "${local.prefix_with_name}"
    		12 |   handler       = "${var.function_handler}"
    		13 |   runtime       = "${var.function_runtime}"
    		14 |   timeout       = "${var.function_timeout}"
    		15 |   memory_size   = "${var.memory_size}"
    		16 |   role          = "${aws_iam_role.this.arn}"
    		17 |   tags          = "${var.tags}"
    		18 | 
    		19 |   environment {
    		20 |     variables = "${var.function_env_vars}"
    		21 |   }
    		22 | }
    
    Check: CKV_AWS_363: "Ensure Lambda Runtime is not deprecated"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_cronjob/main.tf:2-22
    
    		2  | resource "aws_lambda_function" "local_zipfile" {
    		3  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		4  | 
    		5  |   # These are SPECIFIC to the deployment method:
    		6  |   filename         = "${var.function_zipfile}"
    		7  |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		8  | 
    		9  |   # These are the SAME for both:
    		10 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		11 |   function_name = "${local.prefix_with_name}"
    		12 |   handler       = "${var.function_handler}"
    		13 |   runtime       = "${var.function_runtime}"
    		14 |   timeout       = "${var.function_timeout}"
    		15 |   memory_size   = "${var.memory_size}"
    		16 |   role          = "${aws_iam_role.this.arn}"
    		17 |   tags          = "${var.tags}"
    		18 | 
    		19 |   environment {
    		20 |     variables = "${var.function_env_vars}"
    		21 |   }
    		22 | }
    
    Check: CKV_AWS_173: "Check encryption settings for Lambda environmental variable"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_cronjob/main.tf:2-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-5.html
    
    		2  | resource "aws_lambda_function" "local_zipfile" {
    		3  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		4  | 
    		5  |   # These are SPECIFIC to the deployment method:
    		6  |   filename         = "${var.function_zipfile}"
    		7  |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		8  | 
    		9  |   # These are the SAME for both:
    		10 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		11 |   function_name = "${local.prefix_with_name}"
    		12 |   handler       = "${var.function_handler}"
    		13 |   runtime       = "${var.function_runtime}"
    		14 |   timeout       = "${var.function_timeout}"
    		15 |   memory_size   = "${var.memory_size}"
    		16 |   role          = "${aws_iam_role.this.arn}"
    		17 |   tags          = "${var.tags}"
    		18 | 
    		19 |   environment {
    		20 |     variables = "${var.function_env_vars}"
    		21 |   }
    		22 | }
    
    Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_cronjob/main.tf:2-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-function-level-concurrent-execution-limit.html
    
    		2  | resource "aws_lambda_function" "local_zipfile" {
    		3  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		4  | 
    		5  |   # These are SPECIFIC to the deployment method:
    		6  |   filename         = "${var.function_zipfile}"
    		7  |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		8  | 
    		9  |   # These are the SAME for both:
    		10 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		11 |   function_name = "${local.prefix_with_name}"
    		12 |   handler       = "${var.function_handler}"
    		13 |   runtime       = "${var.function_runtime}"
    		14 |   timeout       = "${var.function_timeout}"
    		15 |   memory_size   = "${var.memory_size}"
    		16 |   role          = "${aws_iam_role.this.arn}"
    		17 |   tags          = "${var.tags}"
    		18 | 
    		19 |   environment {
    		20 |     variables = "${var.function_env_vars}"
    		21 |   }
    		22 | }
    
    Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_cronjob/main.tf:2-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-a-dead-letter-queue-dlq.html
    
    		2  | resource "aws_lambda_function" "local_zipfile" {
    		3  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		4  | 
    		5  |   # These are SPECIFIC to the deployment method:
    		6  |   filename         = "${var.function_zipfile}"
    		7  |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		8  | 
    		9  |   # These are the SAME for both:
    		10 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		11 |   function_name = "${local.prefix_with_name}"
    		12 |   handler       = "${var.function_handler}"
    		13 |   runtime       = "${var.function_runtime}"
    		14 |   timeout       = "${var.function_timeout}"
    		15 |   memory_size   = "${var.memory_size}"
    		16 |   role          = "${aws_iam_role.this.arn}"
    		17 |   tags          = "${var.tags}"
    		18 | 
    		19 |   environment {
    		20 |     variables = "${var.function_env_vars}"
    		21 |   }
    		22 | }
    
    Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
    	FAILED for resource: aws_lambda_function.local_zipfile
    	File: /aws/aws_lambda_cronjob/main.tf:2-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-inside-a-vpc-1.html
    
    		2  | resource "aws_lambda_function" "local_zipfile" {
    		3  |   count = "${var.function_s3_bucket == "" ? 1 : 0}"
    		4  | 
    		5  |   # These are SPECIFIC to the deployment method:
    		6  |   filename         = "${var.function_zipfile}"
    		7  |   source_code_hash = "${var.function_s3_bucket == "" ? "${base64sha256(file("${var.function_zipfile}"))}" : ""}"
    		8  | 
    		9  |   # These are the SAME for both:
    		10 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		11 |   function_name = "${local.prefix_with_name}"
    		12 |   handler       = "${var.function_handler}"
    		13 |   runtime       = "${var.function_runtime}"
    		14 |   timeout       = "${var.function_timeout}"
    		15 |   memory_size   = "${var.memory_size}"
    		16 |   role          = "${aws_iam_role.this.arn}"
    		17 |   tags          = "${var.tags}"
    		18 | 
    		19 |   environment {
    		20 |     variables = "${var.function_env_vars}"
    		21 |   }
    		22 | }
    
    Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_cronjob/main.tf:25-45
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-4.html
    
    		25 | resource "aws_lambda_function" "s3_zipfile" {
    		26 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		27 | 
    		28 |   # These are SPECIFIC to the deployment method:
    		29 |   s3_bucket = "${var.function_s3_bucket}"
    		30 |   s3_key    = "${var.function_zipfile}"
    		31 | 
    		32 |   # These are the SAME for both:
    		33 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		34 |   function_name = "${local.prefix_with_name}"
    		35 |   handler       = "${var.function_handler}"
    		36 |   runtime       = "${var.function_runtime}"
    		37 |   timeout       = "${var.function_timeout}"
    		38 |   memory_size   = "${var.memory_size}"
    		39 |   role          = "${aws_iam_role.this.arn}"
    		40 |   tags          = "${var.tags}"
    		41 | 
    		42 |   environment {
    		43 |     variables = "${var.function_env_vars}"
    		44 |   }
    		45 | }
    
    Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_cronjob/main.tf:25-45
    
    		25 | resource "aws_lambda_function" "s3_zipfile" {
    		26 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		27 | 
    		28 |   # These are SPECIFIC to the deployment method:
    		29 |   s3_bucket = "${var.function_s3_bucket}"
    		30 |   s3_key    = "${var.function_zipfile}"
    		31 | 
    		32 |   # These are the SAME for both:
    		33 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		34 |   function_name = "${local.prefix_with_name}"
    		35 |   handler       = "${var.function_handler}"
    		36 |   runtime       = "${var.function_runtime}"
    		37 |   timeout       = "${var.function_timeout}"
    		38 |   memory_size   = "${var.memory_size}"
    		39 |   role          = "${aws_iam_role.this.arn}"
    		40 |   tags          = "${var.tags}"
    		41 | 
    		42 |   environment {
    		43 |     variables = "${var.function_env_vars}"
    		44 |   }
    		45 | }
    
    Check: CKV_AWS_363: "Ensure Lambda Runtime is not deprecated"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_cronjob/main.tf:25-45
    
    		25 | resource "aws_lambda_function" "s3_zipfile" {
    		26 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		27 | 
    		28 |   # These are SPECIFIC to the deployment method:
    		29 |   s3_bucket = "${var.function_s3_bucket}"
    		30 |   s3_key    = "${var.function_zipfile}"
    		31 | 
    		32 |   # These are the SAME for both:
    		33 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		34 |   function_name = "${local.prefix_with_name}"
    		35 |   handler       = "${var.function_handler}"
    		36 |   runtime       = "${var.function_runtime}"
    		37 |   timeout       = "${var.function_timeout}"
    		38 |   memory_size   = "${var.memory_size}"
    		39 |   role          = "${aws_iam_role.this.arn}"
    		40 |   tags          = "${var.tags}"
    		41 | 
    		42 |   environment {
    		43 |     variables = "${var.function_env_vars}"
    		44 |   }
    		45 | }
    
    Check: CKV_AWS_173: "Check encryption settings for Lambda environmental variable"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_cronjob/main.tf:25-45
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-5.html
    
    		25 | resource "aws_lambda_function" "s3_zipfile" {
    		26 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		27 | 
    		28 |   # These are SPECIFIC to the deployment method:
    		29 |   s3_bucket = "${var.function_s3_bucket}"
    		30 |   s3_key    = "${var.function_zipfile}"
    		31 | 
    		32 |   # These are the SAME for both:
    		33 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		34 |   function_name = "${local.prefix_with_name}"
    		35 |   handler       = "${var.function_handler}"
    		36 |   runtime       = "${var.function_runtime}"
    		37 |   timeout       = "${var.function_timeout}"
    		38 |   memory_size   = "${var.memory_size}"
    		39 |   role          = "${aws_iam_role.this.arn}"
    		40 |   tags          = "${var.tags}"
    		41 | 
    		42 |   environment {
    		43 |     variables = "${var.function_env_vars}"
    		44 |   }
    		45 | }
    
    Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_cronjob/main.tf:25-45
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-function-level-concurrent-execution-limit.html
    
    		25 | resource "aws_lambda_function" "s3_zipfile" {
    		26 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		27 | 
    		28 |   # These are SPECIFIC to the deployment method:
    		29 |   s3_bucket = "${var.function_s3_bucket}"
    		30 |   s3_key    = "${var.function_zipfile}"
    		31 | 
    		32 |   # These are the SAME for both:
    		33 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		34 |   function_name = "${local.prefix_with_name}"
    		35 |   handler       = "${var.function_handler}"
    		36 |   runtime       = "${var.function_runtime}"
    		37 |   timeout       = "${var.function_timeout}"
    		38 |   memory_size   = "${var.memory_size}"
    		39 |   role          = "${aws_iam_role.this.arn}"
    		40 |   tags          = "${var.tags}"
    		41 | 
    		42 |   environment {
    		43 |     variables = "${var.function_env_vars}"
    		44 |   }
    		45 | }
    
    Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_cronjob/main.tf:25-45
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-a-dead-letter-queue-dlq.html
    
    		25 | resource "aws_lambda_function" "s3_zipfile" {
    		26 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		27 | 
    		28 |   # These are SPECIFIC to the deployment method:
    		29 |   s3_bucket = "${var.function_s3_bucket}"
    		30 |   s3_key    = "${var.function_zipfile}"
    		31 | 
    		32 |   # These are the SAME for both:
    		33 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		34 |   function_name = "${local.prefix_with_name}"
    		35 |   handler       = "${var.function_handler}"
    		36 |   runtime       = "${var.function_runtime}"
    		37 |   timeout       = "${var.function_timeout}"
    		38 |   memory_size   = "${var.memory_size}"
    		39 |   role          = "${aws_iam_role.this.arn}"
    		40 |   tags          = "${var.tags}"
    		41 | 
    		42 |   environment {
    		43 |     variables = "${var.function_env_vars}"
    		44 |   }
    		45 | }
    
    Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
    	FAILED for resource: aws_lambda_function.s3_zipfile[0]
    	File: /aws/aws_lambda_cronjob/main.tf:25-45
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-inside-a-vpc-1.html
    
    		25 | resource "aws_lambda_function" "s3_zipfile" {
    		26 |   count = "${var.function_s3_bucket == "" ? 0 : 1}"
    		27 | 
    		28 |   # These are SPECIFIC to the deployment method:
    		29 |   s3_bucket = "${var.function_s3_bucket}"
    		30 |   s3_key    = "${var.function_zipfile}"
    		31 | 
    		32 |   # These are the SAME for both:
    		33 |   description   = "${var.comment_prefix}${var.cronjob_name}"
    		34 |   function_name = "${local.prefix_with_name}"
    		35 |   handler       = "${var.function_handler}"
    		36 |   runtime       = "${var.function_runtime}"
    		37 |   timeout       = "${var.function_timeout}"
    		38 |   memory_size   = "${var.memory_size}"
    		39 |   role          = "${aws_iam_role.this.arn}"
    		40 |   tags          = "${var.tags}"
    		41 | 
    		42 |   environment {
    		43 |     variables = "${var.function_env_vars}"
    		44 |   }
    		45 | }
    
    Check: CKV_AWS_233: "Ensure Create before destroy for ACM certificates"
    	FAILED for resource: aws_acm_certificate.this
    	File: /aws/aws_reverse_proxy/certificate.tf:3-8
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/ensure-aws-acm-certificate-enables-create-before-destroy.html
    
    		3 | resource "aws_acm_certificate" "this" {
    		4 |   provider          = "aws.us_east_1"                                                              # because ACM is only available in the "us-east-1" region
    		5 |   domain_name       = "${var.site_domain}"
    		6 |   validation_method = "DNS"                                                                        # the required records are created below
    		7 |   tags              = "${merge(var.tags, map("Name", "${var.comment_prefix}${var.site_domain}"))}"
    		8 | }
    
    Check: CKV_AWS_305: "Ensure Cloudfront distribution has a default root object configured"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/aws_reverse_proxy/cloudfront.tf:3-139
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV_AWS_86: "Ensure Cloudfront distribution has Access Logging enabled"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/aws_reverse_proxy/cloudfront.tf:3-139
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-logging-policies/logging-20.html
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV_AWS_68: "CloudFront Distribution should have WAF enabled"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/aws_reverse_proxy/cloudfront.tf:3-139
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/bc-aws-general-27.html
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV_AWS_174: "Verify CloudFront Distribution Viewer Certificate is using TLS v1.2"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/aws_reverse_proxy/cloudfront.tf:3-139
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/bc-aws-networking-63.html
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV_AWS_310: "Ensure CloudFront distributions should have origin failover configured"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/aws_reverse_proxy/cloudfront.tf:3-139
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
    	FAILED for resource: aws_lambda_function.viewer_request
    	File: /aws/aws_reverse_proxy/lambda.tf:35-51
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-4.html
    
    		35 | resource "aws_lambda_function" "viewer_request" {
    		36 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		37 | 
    		38 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		39 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		40 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		41 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		42 | 
    		43 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		44 |   function_name    = "${local.prefix_with_domain}---viewer_request"
    		45 |   role             = "${aws_iam_role.this.arn}"
    		46 |   description      = "${var.comment_prefix}${var.site_domain} (request handler)"
    		47 |   handler          = "lambda.viewer_request"
    		48 |   runtime          = "nodejs8.10"
    		49 |   publish          = true                                                        # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		50 |   tags             = "${var.tags}"
    		51 | }
    
    Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
    	FAILED for resource: aws_lambda_function.viewer_request
    	File: /aws/aws_reverse_proxy/lambda.tf:35-51
    
    		35 | resource "aws_lambda_function" "viewer_request" {
    		36 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		37 | 
    		38 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		39 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		40 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		41 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		42 | 
    		43 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		44 |   function_name    = "${local.prefix_with_domain}---viewer_request"
    		45 |   role             = "${aws_iam_role.this.arn}"
    		46 |   description      = "${var.comment_prefix}${var.site_domain} (request handler)"
    		47 |   handler          = "lambda.viewer_request"
    		48 |   runtime          = "nodejs8.10"
    		49 |   publish          = true                                                        # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		50 |   tags             = "${var.tags}"
    		51 | }
    
    Check: CKV_AWS_363: "Ensure Lambda Runtime is not deprecated"
    	FAILED for resource: aws_lambda_function.viewer_request
    	File: /aws/aws_reverse_proxy/lambda.tf:35-51
    
    		35 | resource "aws_lambda_function" "viewer_request" {
    		36 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		37 | 
    		38 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		39 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		40 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		41 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		42 | 
    		43 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		44 |   function_name    = "${local.prefix_with_domain}---viewer_request"
    		45 |   role             = "${aws_iam_role.this.arn}"
    		46 |   description      = "${var.comment_prefix}${var.site_domain} (request handler)"
    		47 |   handler          = "lambda.viewer_request"
    		48 |   runtime          = "nodejs8.10"
    		49 |   publish          = true                                                        # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		50 |   tags             = "${var.tags}"
    		51 | }
    
    Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
    	FAILED for resource: aws_lambda_function.viewer_request
    	File: /aws/aws_reverse_proxy/lambda.tf:35-51
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-function-level-concurrent-execution-limit.html
    
    		35 | resource "aws_lambda_function" "viewer_request" {
    		36 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		37 | 
    		38 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		39 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		40 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		41 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		42 | 
    		43 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		44 |   function_name    = "${local.prefix_with_domain}---viewer_request"
    		45 |   role             = "${aws_iam_role.this.arn}"
    		46 |   description      = "${var.comment_prefix}${var.site_domain} (request handler)"
    		47 |   handler          = "lambda.viewer_request"
    		48 |   runtime          = "nodejs8.10"
    		49 |   publish          = true                                                        # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		50 |   tags             = "${var.tags}"
    		51 | }
    
    Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
    	FAILED for resource: aws_lambda_function.viewer_request
    	File: /aws/aws_reverse_proxy/lambda.tf:35-51
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-a-dead-letter-queue-dlq.html
    
    		35 | resource "aws_lambda_function" "viewer_request" {
    		36 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		37 | 
    		38 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		39 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		40 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		41 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		42 | 
    		43 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		44 |   function_name    = "${local.prefix_with_domain}---viewer_request"
    		45 |   role             = "${aws_iam_role.this.arn}"
    		46 |   description      = "${var.comment_prefix}${var.site_domain} (request handler)"
    		47 |   handler          = "lambda.viewer_request"
    		48 |   runtime          = "nodejs8.10"
    		49 |   publish          = true                                                        # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		50 |   tags             = "${var.tags}"
    		51 | }
    
    Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
    	FAILED for resource: aws_lambda_function.viewer_request
    	File: /aws/aws_reverse_proxy/lambda.tf:35-51
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-inside-a-vpc-1.html
    
    		35 | resource "aws_lambda_function" "viewer_request" {
    		36 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		37 | 
    		38 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		39 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		40 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		41 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		42 | 
    		43 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		44 |   function_name    = "${local.prefix_with_domain}---viewer_request"
    		45 |   role             = "${aws_iam_role.this.arn}"
    		46 |   description      = "${var.comment_prefix}${var.site_domain} (request handler)"
    		47 |   handler          = "lambda.viewer_request"
    		48 |   runtime          = "nodejs8.10"
    		49 |   publish          = true                                                        # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		50 |   tags             = "${var.tags}"
    		51 | }
    
    Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
    	FAILED for resource: aws_lambda_function.viewer_response
    	File: /aws/aws_reverse_proxy/lambda.tf:53-69
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-serverless-policies/bc-aws-serverless-4.html
    
    		53 | resource "aws_lambda_function" "viewer_response" {
    		54 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		55 | 
    		56 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		57 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		58 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		59 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		60 | 
    		61 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		62 |   function_name    = "${local.prefix_with_domain}---viewer_response"
    		63 |   role             = "${aws_iam_role.this.arn}"
    		64 |   description      = "${var.comment_prefix}${var.site_domain} (response handler)"
    		65 |   handler          = "lambda.viewer_response"
    		66 |   runtime          = "nodejs8.10"
    		67 |   publish          = true                                                         # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		68 |   tags             = "${var.tags}"
    		69 | }
    
    Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
    	FAILED for resource: aws_lambda_function.viewer_response
    	File: /aws/aws_reverse_proxy/lambda.tf:53-69
    
    		53 | resource "aws_lambda_function" "viewer_response" {
    		54 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		55 | 
    		56 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		57 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		58 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		59 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		60 | 
    		61 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		62 |   function_name    = "${local.prefix_with_domain}---viewer_response"
    		63 |   role             = "${aws_iam_role.this.arn}"
    		64 |   description      = "${var.comment_prefix}${var.site_domain} (response handler)"
    		65 |   handler          = "lambda.viewer_response"
    		66 |   runtime          = "nodejs8.10"
    		67 |   publish          = true                                                         # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		68 |   tags             = "${var.tags}"
    		69 | }
    
    Check: CKV_AWS_363: "Ensure Lambda Runtime is not deprecated"
    	FAILED for resource: aws_lambda_function.viewer_response
    	File: /aws/aws_reverse_proxy/lambda.tf:53-69
    
    		53 | resource "aws_lambda_function" "viewer_response" {
    		54 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		55 | 
    		56 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		57 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		58 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		59 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		60 | 
    		61 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		62 |   function_name    = "${local.prefix_with_domain}---viewer_response"
    		63 |   role             = "${aws_iam_role.this.arn}"
    		64 |   description      = "${var.comment_prefix}${var.site_domain} (response handler)"
    		65 |   handler          = "lambda.viewer_response"
    		66 |   runtime          = "nodejs8.10"
    		67 |   publish          = true                                                         # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		68 |   tags             = "${var.tags}"
    		69 | }
    
    Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
    	FAILED for resource: aws_lambda_function.viewer_response
    	File: /aws/aws_reverse_proxy/lambda.tf:53-69
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-function-level-concurrent-execution-limit.html
    
    		53 | resource "aws_lambda_function" "viewer_response" {
    		54 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		55 | 
    		56 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		57 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		58 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		59 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		60 | 
    		61 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		62 |   function_name    = "${local.prefix_with_domain}---viewer_response"
    		63 |   role             = "${aws_iam_role.this.arn}"
    		64 |   description      = "${var.comment_prefix}${var.site_domain} (response handler)"
    		65 |   handler          = "lambda.viewer_response"
    		66 |   runtime          = "nodejs8.10"
    		67 |   publish          = true                                                         # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		68 |   tags             = "${var.tags}"
    		69 | }
    
    Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
    	FAILED for resource: aws_lambda_function.viewer_response
    	File: /aws/aws_reverse_proxy/lambda.tf:53-69
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-for-a-dead-letter-queue-dlq.html
    
    		53 | resource "aws_lambda_function" "viewer_response" {
    		54 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		55 | 
    		56 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		57 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		58 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		59 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		60 | 
    		61 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		62 |   function_name    = "${local.prefix_with_domain}---viewer_response"
    		63 |   role             = "${aws_iam_role.this.arn}"
    		64 |   description      = "${var.comment_prefix}${var.site_domain} (response handler)"
    		65 |   handler          = "lambda.viewer_response"
    		66 |   runtime          = "nodejs8.10"
    		67 |   publish          = true                                                         # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		68 |   tags             = "${var.tags}"
    		69 | }
    
    Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
    	FAILED for resource: aws_lambda_function.viewer_response
    	File: /aws/aws_reverse_proxy/lambda.tf:53-69
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-aws-lambda-function-is-configured-inside-a-vpc-1.html
    
    		53 | resource "aws_lambda_function" "viewer_response" {
    		54 |   provider = "aws.us_east_1" # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function must be in region 'us-east-1'
    		55 | 
    		56 |   # lambda_zip.output_path will be absolute, i.e. different on different machines.
    		57 |   # This can cause Terraform to notice differences that aren't actually there, so let's convert it to a relative one.
    		58 |   # https://github.com/hashicorp/terraform/issues/7613#issuecomment-332238441
    		59 |   filename = "${substr(data.archive_file.lambda_zip.output_path, length(path.cwd) + 1, -1)}"
    		60 | 
    		61 |   source_code_hash = "${data.archive_file.lambda_zip.output_base64sha256}"
    		62 |   function_name    = "${local.prefix_with_domain}---viewer_response"
    		63 |   role             = "${aws_iam_role.this.arn}"
    		64 |   description      = "${var.comment_prefix}${var.site_domain} (response handler)"
    		65 |   handler          = "lambda.viewer_response"
    		66 |   runtime          = "nodejs8.10"
    		67 |   publish          = true                                                         # because: error creating CloudFront Distribution: InvalidLambdaFunctionAssociation: The function ARN must reference a specific function version. (The ARN must end with the version number.)
    		68 |   tags             = "${var.tags}"
    		69 | }
    
    Check: CKV_AWS_70: "Ensure S3 bucket does not allow an action with any Principal"
    	FAILED for resource: aws_s3_bucket_policy.this
    	File: /aws/aws_static_site/s3.tf:30-54
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/s3-policies/bc-aws-s3-23.html
    
    		30 | resource "aws_s3_bucket_policy" "this" {
    		31 |   depends_on = ["aws_s3_bucket.this"]                      # because we refer to the bucket indirectly, we need to explicitly define the dependency
    		32 |   count      = "${var.bucket_override_name == "" ? 1 : 0}"
    		33 |   bucket     = "${local.bucket_name}"
    		34 | 
    		35 |   # https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-2
    		36 |   policy = <" to make someone an operator (admin)
    		93  |   # Use 'sudo journalctl -u google-startup-scripts.service' to retrieve the startup script output
    		94  |   metadata_startup_script = "docker run -d -p 25565:25565 -e EULA=TRUE -e VERSION=1.12.2 -v /var/minecraft:/data --name mc -e TYPE=FORGE -e FORGEVERSION=14.23.0.2552 -e MEMORY=2G --rm=true itzg/minecraft-server:latest;"
    		95  | 
    		96  |   metadata = {
    		97  |     enable-oslogin = "TRUE"
    		98  |   }
    		99  |       
    		100 |   boot_disk {
    		101 |     auto_delete = false # Keep disk after shutdown (game data)
    		102 |     source      = google_compute_disk.minecraft.self_link
    		103 |   }
    		104 | 
    		105 |   network_interface {
    		106 |     network = google_compute_network.minecraft.name
    		107 |     access_config {
    		108 |       nat_ip = google_compute_address.minecraft.address
    		109 |     }
    		110 |   }
    		111 | 
    		112 |   service_account {
    		113 |     email  = google_service_account.minecraft.email
    		114 |     scopes = ["userinfo-email"]
    		115 |   }
    		116 | 
    		117 |   scheduling {
    		118 |     preemptible       = true # Closes within 24 hours (sometimes sooner)
    		119 |     automatic_restart = false
    		120 |   }
    		121 | }
    
    Check: CKV_GCP_40: "Ensure that Compute instances do not have public IP addresses"
    	FAILED for resource: google_compute_instance.minecraft
    	File: /google_cloud/minecraft/main.tf:81-121
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-public-policies/bc-gcp-public-2.html
    
    		81  | resource "google_compute_instance" "minecraft" {
    		82  |   name         = "minecraft"
    		83  |   machine_type = "n1-standard-1"
    		84  |   zone         = local.zone
    		85  |   tags         = ["minecraft"]
    		86  | 
    		87  |   # Run itzg/minecraft-server docker image on startup
    		88  |   # The instructions of https://hub.docker.com/r/itzg/minecraft-server/ are applicable
    		89  |   # For instance, Ssh into the instance and you can run
    		90  |   #  docker logs mc
    		91  |   #  docker exec -i mc rcon-cli
    		92  |   # Once in rcon-cli you can "op " to make someone an operator (admin)
    		93  |   # Use 'sudo journalctl -u google-startup-scripts.service' to retrieve the startup script output
    		94  |   metadata_startup_script = "docker run -d -p 25565:25565 -e EULA=TRUE -e VERSION=1.12.2 -v /var/minecraft:/data --name mc -e TYPE=FORGE -e FORGEVERSION=14.23.0.2552 -e MEMORY=2G --rm=true itzg/minecraft-server:latest;"
    		95  | 
    		96  |   metadata = {
    		97  |     enable-oslogin = "TRUE"
    		98  |   }
    		99  |       
    		100 |   boot_disk {
    		101 |     auto_delete = false # Keep disk after shutdown (game data)
    		102 |     source      = google_compute_disk.minecraft.self_link
    		103 |   }
    		104 | 
    		105 |   network_interface {
    		106 |     network = google_compute_network.minecraft.name
    		107 |     access_config {
    		108 |       nat_ip = google_compute_address.minecraft.address
    		109 |     }
    		110 |   }
    		111 | 
    		112 |   service_account {
    		113 |     email  = google_service_account.minecraft.email
    		114 |     scopes = ["userinfo-email"]
    		115 |   }
    		116 | 
    		117 |   scheduling {
    		118 |     preemptible       = true # Closes within 24 hours (sometimes sooner)
    		119 |     automatic_restart = false
    		120 |   }
    		121 | }
    
    Check: CKV_GCP_32: "Ensure 'Block Project-wide SSH keys' is enabled for VM instances"
    	FAILED for resource: google_compute_instance.minecraft
    	File: /google_cloud/minecraft/main.tf:81-121
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-networking-policies/bc-gcp-networking-8.html
    
    		81  | resource "google_compute_instance" "minecraft" {
    		82  |   name         = "minecraft"
    		83  |   machine_type = "n1-standard-1"
    		84  |   zone         = local.zone
    		85  |   tags         = ["minecraft"]
    		86  | 
    		87  |   # Run itzg/minecraft-server docker image on startup
    		88  |   # The instructions of https://hub.docker.com/r/itzg/minecraft-server/ are applicable
    		89  |   # For instance, Ssh into the instance and you can run
    		90  |   #  docker logs mc
    		91  |   #  docker exec -i mc rcon-cli
    		92  |   # Once in rcon-cli you can "op " to make someone an operator (admin)
    		93  |   # Use 'sudo journalctl -u google-startup-scripts.service' to retrieve the startup script output
    		94  |   metadata_startup_script = "docker run -d -p 25565:25565 -e EULA=TRUE -e VERSION=1.12.2 -v /var/minecraft:/data --name mc -e TYPE=FORGE -e FORGEVERSION=14.23.0.2552 -e MEMORY=2G --rm=true itzg/minecraft-server:latest;"
    		95  | 
    		96  |   metadata = {
    		97  |     enable-oslogin = "TRUE"
    		98  |   }
    		99  |       
    		100 |   boot_disk {
    		101 |     auto_delete = false # Keep disk after shutdown (game data)
    		102 |     source      = google_compute_disk.minecraft.self_link
    		103 |   }
    		104 | 
    		105 |   network_interface {
    		106 |     network = google_compute_network.minecraft.name
    		107 |     access_config {
    		108 |       nat_ip = google_compute_address.minecraft.address
    		109 |     }
    		110 |   }
    		111 | 
    		112 |   service_account {
    		113 |     email  = google_service_account.minecraft.email
    		114 |     scopes = ["userinfo-email"]
    		115 |   }
    		116 | 
    		117 |   scheduling {
    		118 |     preemptible       = true # Closes within 24 hours (sometimes sooner)
    		119 |     automatic_restart = false
    		120 |   }
    		121 | }
    
    Check: CKV_GCP_38: "Ensure VM disks for critical VMs are encrypted with Customer Supplied Encryption Keys (CSEK)"
    	FAILED for resource: google_compute_instance.minecraft
    	File: /google_cloud/minecraft/main.tf:81-121
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-general-policies/encrypt-boot-disks-for-instances-with-cseks.html
    
    		81  | resource "google_compute_instance" "minecraft" {
    		82  |   name         = "minecraft"
    		83  |   machine_type = "n1-standard-1"
    		84  |   zone         = local.zone
    		85  |   tags         = ["minecraft"]
    		86  | 
    		87  |   # Run itzg/minecraft-server docker image on startup
    		88  |   # The instructions of https://hub.docker.com/r/itzg/minecraft-server/ are applicable
    		89  |   # For instance, Ssh into the instance and you can run
    		90  |   #  docker logs mc
    		91  |   #  docker exec -i mc rcon-cli
    		92  |   # Once in rcon-cli you can "op " to make someone an operator (admin)
    		93  |   # Use 'sudo journalctl -u google-startup-scripts.service' to retrieve the startup script output
    		94  |   metadata_startup_script = "docker run -d -p 25565:25565 -e EULA=TRUE -e VERSION=1.12.2 -v /var/minecraft:/data --name mc -e TYPE=FORGE -e FORGEVERSION=14.23.0.2552 -e MEMORY=2G --rm=true itzg/minecraft-server:latest;"
    		95  | 
    		96  |   metadata = {
    		97  |     enable-oslogin = "TRUE"
    		98  |   }
    		99  |       
    		100 |   boot_disk {
    		101 |     auto_delete = false # Keep disk after shutdown (game data)
    		102 |     source      = google_compute_disk.minecraft.self_link
    		103 |   }
    		104 | 
    		105 |   network_interface {
    		106 |     network = google_compute_network.minecraft.name
    		107 |     access_config {
    		108 |       nat_ip = google_compute_address.minecraft.address
    		109 |     }
    		110 |   }
    		111 | 
    		112 |   service_account {
    		113 |     email  = google_service_account.minecraft.email
    		114 |     scopes = ["userinfo-email"]
    		115 |   }
    		116 | 
    		117 |   scheduling {
    		118 |     preemptible       = true # Closes within 24 hours (sometimes sooner)
    		119 |     automatic_restart = false
    		120 |   }
    		121 | }
    
    Check: CKV_GCP_2: "Ensure Google compute firewall ingress does not allow unrestricted ssh access"
    	FAILED for resource: google_compute_firewall.minecraft
    	File: /google_cloud/minecraft/main.tf:130-149
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-networking-policies/bc-gcp-networking-1.html
    
    		130 | resource "google_compute_firewall" "minecraft" {
    		131 |   name    = "minecraft"
    		132 |   network = google_compute_network.minecraft.name
    		133 |   # Minecraft client port
    		134 |   allow {
    		135 |     protocol = "tcp"
    		136 |     ports    = ["25565"]
    		137 |   }
    		138 |   # ICMP (ping)
    		139 |   allow {
    		140 |     protocol = "icmp"
    		141 |   }
    		142 |   # SSH (for RCON-CLI access)
    		143 |   allow {
    		144 |     protocol = "tcp"
    		145 |     ports    = ["22"]
    		146 |   }
    		147 |   source_ranges = ["0.0.0.0/0"]
    		148 |   target_tags   = ["minecraft"]
    		149 | }
    
    Check: CKV_GCP_113: "Ensure IAM policy should not define public access"
    	FAILED for resource: google_iam_policy.noauth
    	File: /google_cloud/oathkeeper/main.tf:30-35
    
    		30 | data "google_iam_policy" "noauth" {
    		31 |   binding {
    		32 |     role    = "roles/run.invoker"
    		33 |     members = ["allUsers"]
    		34 |   }
    		35 | }
    
    Check: CKV_GCP_114: "Ensure public access prevention is enforced on Cloud Storage bucket"
    	FAILED for resource: google_storage_bucket.config
    	File: /google_cloud/oathkeeper/main.tf:46-50
    
    		46 | resource "google_storage_bucket" "config" {
    		47 |   name               = "${local.project}_${local.region}_oathkeeper"
    		48 |   location           = local.location
    		49 |   bucket_policy_only = true
    		50 | }
    
    Check: CKV_GCP_78: "Ensure Cloud storage has versioning enabled"
    	FAILED for resource: google_storage_bucket.config
    	File: /google_cloud/oathkeeper/main.tf:46-50
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-general-policies/ensure-gcp-cloud-storage-has-versioning-enabled.html
    
    		46 | resource "google_storage_bucket" "config" {
    		47 |   name               = "${local.project}_${local.region}_oathkeeper"
    		48 |   location           = local.location
    		49 |   bucket_policy_only = true
    		50 | }
    
    Check: CKV_GCP_29: "Ensure that Cloud Storage buckets have uniform bucket-level access enabled"
    	FAILED for resource: google_storage_bucket.config
    	File: /google_cloud/oathkeeper/main.tf:46-50
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-storage-gcs-policies/bc-gcp-gcs-2.html
    
    		46 | resource "google_storage_bucket" "config" {
    		47 |   name               = "${local.project}_${local.region}_oathkeeper"
    		48 |   location           = local.location
    		49 |   bucket_policy_only = true
    		50 | }
    
    Check: CKV_GCP_62: "Bucket should log access"
    	FAILED for resource: google_storage_bucket.config
    	File: /google_cloud/oathkeeper/main.tf:46-50
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-storage-gcs-policies/bc-gcp-logging-2.html
    
    		46 | resource "google_storage_bucket" "config" {
    		47 |   name               = "${local.project}_${local.region}_oathkeeper"
    		48 |   location           = local.location
    		49 |   bucket_policy_only = true
    		50 | }
    
    Check: CKV_GCP_28: "Ensure that Cloud Storage bucket is not anonymously or publicly accessible"
    	FAILED for resource: google_storage_bucket_iam_member.oathkeeper-viewer
    	File: /google_cloud/oathkeeper/main.tf:66-71
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-public-policies/bc-gcp-public-1.html
    
    		66 | resource "google_storage_bucket_iam_member" "oathkeeper-viewer" {
    		67 |   bucket = google_storage_bucket.config.name
    		68 |   role   = "roles/storage.objectViewer"
    		69 |   # member = "serviceAccount:${google_service_account.oathkeeper.email}"
    		70 |   member = "allUsers" # work around until we can use the cloud API https://github.com/ory/oathkeeper/issues/425
    		71 | }
    
    Check: CKV_GCP_113: "Ensure IAM policy should not define public access"
    	FAILED for resource: google_iam_policy.noauth
    	File: /google_cloud/openresty-beyondcorp/main.tf:54-59
    
    		54 | data "google_iam_policy" "noauth" {
    		55 |   binding {
    		56 |     role    = "roles/run.invoker"
    		57 |     members = ["allUsers"]
    		58 |   }
    		59 | }
    
    Check: CKV_GCP_83: "Ensure PubSub Topics are encrypted with Customer Supplied Encryption Keys (CSEK)"
    	FAILED for resource: google_pubsub_topic.httpwal
    	File: /google_cloud/openresty-beyondcorp/main.tf:123-125
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-general-policies/ensure-gcp-pubsub-topics-are-encrypted-with-customer-supplied-encryption-keys-csek.html
    
    		123 | resource "google_pubsub_topic" "httpwal" {
    		124 |   name = "openresty_wal"
    		125 | }
    
    Check: CKV_GCP_49: "Ensure roles do not impersonate or manage Service Accounts used at project level"
    	FAILED for resource: google_project_iam_member.pubsub_token_creator
    	File: /google_cloud/openresty-beyondcorp/main.tf:128-132
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-iam-policies/bc-gcp-iam-10.html
    
    		128 | resource "google_project_iam_member" "pubsub_token_creator" {
    		129 |   project = local.project
    		130 |   role    = "roles/iam.serviceAccountTokenCreator"
    		131 |   member  = "serviceAccount:service-${local.project_number}@gcp-sa-pubsub.iam.gserviceaccount.com"
    		132 | }
    
    Check: CKV_GCP_41: "Ensure that IAM users are not assigned the Service Account User or Service Account Token Creator roles at project level"
    	FAILED for resource: google_project_iam_member.pubsub_token_creator
    	File: /google_cloud/openresty-beyondcorp/main.tf:128-132
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-iam-policies/bc-gcp-iam-3.html
    
    		128 | resource "google_project_iam_member" "pubsub_token_creator" {
    		129 |   project = local.project
    		130 |   role    = "roles/iam.serviceAccountTokenCreator"
    		131 |   member  = "serviceAccount:service-${local.project_number}@gcp-sa-pubsub.iam.gserviceaccount.com"
    		132 | }
    
    Check: CKV2_AZURE_33: "Ensure storage account is configured with private endpoint"
    	FAILED for resource: azurerm_storage_account.storage
    	File: /azure/layers/main.tf:45-52
    
    		45 | resource "azurerm_storage_account" "storage" {
    		46 |   name                      = "${var.resource_name_prefix}storage"
    		47 |   resource_group_name       = azurerm_resource_group.storage.name
    		48 |   location                  = var.location
    		49 |   account_tier              = "Standard"
    		50 |   account_replication_type  = "LRS"
    		51 |   enable_https_traffic_only = true
    		52 | }
    
    Check: CKV2_AZURE_21: "Ensure Storage logging is enabled for Blob service for read requests"
    	FAILED for resource: azurerm_storage_container.storage
    	File: /azure/layers/main.tf:54-58
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/azure-policies/azure-logging-policies/ensure-storage-logging-is-enabled-for-blob-service-for-read-requests.html
    
    		54 | resource "azurerm_storage_container" "storage" {
    		55 |   name                  = "${var.resource_name_prefix}container"
    		56 |   storage_account_name  = azurerm_storage_account.storage.name
    		57 |   container_access_type = "private"
    		58 | }
    
    Check: CKV2_AZURE_38: "Ensure soft-delete is enabled on Azure storage account"
    	FAILED for resource: azurerm_storage_account.storage
    	File: /azure/layers/main.tf:45-52
    
    		45 | resource "azurerm_storage_account" "storage" {
    		46 |   name                      = "${var.resource_name_prefix}storage"
    		47 |   resource_group_name       = azurerm_resource_group.storage.name
    		48 |   location                  = var.location
    		49 |   account_tier              = "Standard"
    		50 |   account_replication_type  = "LRS"
    		51 |   enable_https_traffic_only = true
    		52 | }
    
    Check: CKV2_AZURE_1: "Ensure storage for critical data are encrypted with Customer Managed Key"
    	FAILED for resource: azurerm_storage_account.storage
    	File: /azure/layers/main.tf:45-52
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/azure-policies/azure-general-policies/ensure-storage-for-critical-data-are-encrypted-with-customer-managed-key.html
    
    		45 | resource "azurerm_storage_account" "storage" {
    		46 |   name                      = "${var.resource_name_prefix}storage"
    		47 |   resource_group_name       = azurerm_resource_group.storage.name
    		48 |   location                  = var.location
    		49 |   account_tier              = "Standard"
    		50 |   account_replication_type  = "LRS"
    		51 |   enable_https_traffic_only = true
    		52 | }
    
    Check: CKV2_AZURE_31: "Ensure VNET subnet is configured with a Network Security Group (NSG)"
    	FAILED for resource: azurerm_subnet.subnet
    	File: /azure/layers/main.tf:25-38
    
    		25 | resource "azurerm_subnet" "subnet" {
    		26 |   name                 = "${var.resource_name_prefix}-subnet"
    		27 |   virtual_network_name = azurerm_virtual_network.network.name
    		28 |   resource_group_name  = azurerm_resource_group.network.name
    		29 |   address_prefix       = "10.137.1.0/24"
    		30 |   service_endpoints    = ["Microsoft.KeyVault"]
    		31 | 
    		32 |   lifecycle {
    		33 |     ignore_changes = [
    		34 |       network_security_group_id,
    		35 |       route_table_id
    		36 |     ]
    		37 |   }
    		38 | }
    
    Check: CKV2_AZURE_32: "Ensure private endpoint is configured to key vault"
    	FAILED for resource: azurerm_key_vault.current
    	File: /azure/azure_linux_docker_app_service/shared.tf:18-29
    
    		18 | resource "azurerm_key_vault" "current" {
    		19 |   name                = local.key_vault_name
    		20 |   location            = data.azurerm_resource_group.current.location
    		21 |   resource_group_name = data.azurerm_resource_group.current.name
    		22 |   tenant_id           = data.azurerm_client_config.current.tenant_id
    		23 | 
    		24 |   soft_delete_enabled        = true
    		25 |   soft_delete_retention_days = 7
    		26 |   purge_protection_enabled   = false
    		27 | 
    		28 |   sku_name = "standard"
    		29 | }
    
    Check: CKV2_GCP_10: "Ensure GCP Cloud Function HTTP trigger is secured"
    	FAILED for resource: module.functions.google_cloudfunctions_function.memorystoreloader
    	File: /google_cloud/CQRS_bigquery_memorystore/functions/function_memorystoreloader.tf:5-35
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-networking-policies/ensure-gcp-cloud-function-http-trigger-is-secured.html
    
    		5  | resource "google_cloudfunctions_function" "memorystoreloader" {
    		6  |   name    = "memorystoreloader"
    		7  |   runtime = "nodejs10"
    		8  |   /* Testing has minimal resource requirements */
    		9  |   max_instances       = 2
    		10 |   available_memory_mb = 2048 // Cache loading speed is improved with better instance type, linearly
    		11 |   timeout             = 60
    		12 |   entry_point         = "memorystoreload"
    		13 |   region              = var.config.region
    		14 | 
    		15 |   source_archive_bucket = var.config.code_bucket.name
    		16 |   source_archive_object = google_storage_bucket_object.memorystoreload_code.name
    		17 | 
    		18 |   // Function triggered by mutations in the upload bucket
    		19 |   event_trigger {
    		20 |     event_type = "providers/cloud.storage/eventTypes/object.change"
    		21 |     resource   = google_storage_bucket.memorystore_uploads.name
    		22 |     failure_policy {
    		23 |       retry = false
    		24 |     }
    		25 |   }
    		26 | 
    		27 |   provider      = "google-beta"
    		28 |   vpc_connector = google_vpc_access_connector.serverless_vpc_connector.name
    		29 | 
    		30 |   environment_variables = {
    		31 |     REDIS_HOST = var.memorystore_host
    		32 |     REDIS_PORT = 6379
    		33 |     EXPIRY     = 60 * 60 * 24 * 30 // 30d expiry for keys
    		34 |   }
    		35 | }
    
    Check: CKV2_GCP_10: "Ensure GCP Cloud Function HTTP trigger is secured"
    	FAILED for resource: module.functions.google_cloudfunctions_function.prober
    	File: /google_cloud/CQRS_bigquery_memorystore/functions/function_prober.tf:5-31
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-networking-policies/ensure-gcp-cloud-function-http-trigger-is-secured.html
    
    		5  | resource "google_cloudfunctions_function" "prober" {
    		6  |   name    = "prober"
    		7  |   runtime = "nodejs10"
    		8  |   /* Probing has minimal resource requirements */
    		9  |   max_instances       = 1
    		10 |   available_memory_mb = 128
    		11 |   timeout             = 30
    		12 |   entry_point         = "probe"
    		13 |   region              = var.config.region
    		14 | 
    		15 |   source_archive_bucket = var.config.code_bucket.name
    		16 |   source_archive_object = google_storage_bucket_object.probe_code.name
    		17 | 
    		18 |   event_trigger {
    		19 |     event_type = "providers/cloud.pubsub/eventTypes/topic.publish"
    		20 |     resource   = google_pubsub_topic.version_every_minute.name
    		21 |     failure_policy {
    		22 |       retry = false
    		23 |     }
    		24 |   }
    		25 | 
    		26 |   environment_variables = {
    		27 |     PROBE_DATASET   = var.prober_ingress_table.dataset_id
    		28 |     PROBE_TABLE     = var.prober_ingress_table.table_id
    		29 |     CONTROLS_DATASET = var.control_dataset.dataset_id
    		30 |   }
    		31 | }
    
    Check: CKV2_GCP_10: "Ensure GCP Cloud Function HTTP trigger is secured"
    	FAILED for resource: module.functions.google_cloudfunctions_function.test
    	File: /google_cloud/CQRS_bigquery_memorystore/functions/function_test.tf:5-43
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-networking-policies/ensure-gcp-cloud-function-http-trigger-is-secured.html
    
    		5  | resource "google_cloudfunctions_function" "test" {
    		6  |   name                  = "test"
    		7  |   runtime               = "nodejs10"
    		8  |   /* Testing has minimal resource requirements */
    		9  |   max_instances         = 1   
    		10 |   available_memory_mb   = 128
    		11 |   timeout               = 30
    		12 |   entry_point           = "test"
    		13 |   region                = var.config.region
    		14 | 
    		15 |   source_archive_bucket = var.config.code_bucket.name
    		16 |   source_archive_object = google_storage_bucket_object.test_code.name
    		17 | 
    		18 |   trigger_http = true
    		19 | 
    		20 |   provider      = "google-beta"
    		21 |   vpc_connector = google_vpc_access_connector.serverless_vpc_connector.name
    		22 | 
    		23 |   environment_variables = {
    		24 |     CONFIG_BUCKET = var.config.code_bucket.name
    		25 |     PROBER_DATASET = var.prober_ingress_table.dataset_id
    		26 |     PROBER_TABLE = var.prober_ingress_table.table_id
    		27 |     UNIFIED_VALUES_DATASET = var.unified_values_table.dataset_id
    		28 |     UNIFIED_VALUES_TABLE = var.unified_values_table.table_id
    		29 |     /*
    		30 |     UNIFIED_METABOLICS_DATASET = var.unified_metabolics_table.dataset_id
    		31 |     UNIFIED_METABOLICS_TABLE = var.unified_metabolics_table.table_id
    		32 |     */
    		33 |     CURRENT_TOTALS_DATASET = var.current_totals_table.dataset_id
    		34 |     CURRENT_TOTALS_TABLE = var.current_totals_table.table_id
    		35 |     /*
    		36 |     DAILY_METABOLICS_PRECOMPUTE_DATASET = var.daily_metabolics_precompute_table.dataset_id
    		37 |     DAILY_METABOLICS_PRECOMPUTE_TABLE = var.daily_metabolics_precompute_table.table_id
    		38 |     */
    		39 |     MEMORYSTORE_UPLOADS_BUCKET = google_storage_bucket.memorystore_uploads.name
    		40 |     REDIS_HOST = var.memorystore_host
    		41 |     REDIS_PORT = 6379
    		42 |   }
    		43 | }
    
    Check: CKV2_GCP_10: "Ensure GCP Cloud Function HTTP trigger is secured"
    	FAILED for resource: module.functions.google_cloudfunctions_function.update_current
    	File: /google_cloud/CQRS_bigquery_memorystore/functions/function_update_current.tf:5-36
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-networking-policies/ensure-gcp-cloud-function-http-trigger-is-secured.html
    
    		5  | resource "google_cloudfunctions_function" "update_current" {
    		6  |   name    = "update_current"
    		7  |   runtime = "nodejs10"
    		8  |   /* Running BQ client has minimal resource requirements */
    		9  |   max_instances       = 1
    		10 |   available_memory_mb = 128
    		11 |   timeout             = 30
    		12 |   entry_point         = "materialize"
    		13 |   region              = var.config.region
    		14 | 
    		15 |   source_archive_bucket = var.config.code_bucket.name
    		16 |   source_archive_object = google_storage_bucket_object.materialize_code.name
    		17 | 
    		18 |   // Function triggered by mutations in the upload bucket
    		19 |   event_trigger {
    		20 |     event_type = "providers/cloud.pubsub/eventTypes/topic.publish"
    		21 |     resource   = google_pubsub_topic.version_every_two_minutes.name
    		22 |     failure_policy {
    		23 |       retry = false
    		24 |     }
    		25 |   }
    		26 | 
    		27 |   environment_variables = {
    		28 |     PROJECT        = var.config.project
    		29 |     DATASET        = var.current_totals_table.dataset_id
    		30 |     TABLE          = var.current_totals_table.table_id
    		31 |     SOURCE_DATASET = var.current_totals_latest_table.dataset_id
    		32 |     SOURCE_TABLE   = var.current_totals_latest_table.table_id
    		33 |     BUCKET         = google_storage_bucket.memorystore_uploads.name
    		34 |     FILE           = "current_totals.json"
    		35 |   }
    		36 | }
    
    Check: CKV2_GCP_10: "Ensure GCP Cloud Function HTTP trigger is secured"
    	FAILED for resource: module.functions.google_cloudfunctions_function.update_historical
    	File: /google_cloud/CQRS_bigquery_memorystore/functions/function_update_historical.tf:1-34
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/google-cloud-policies/google-cloud-networking-policies/ensure-gcp-cloud-function-http-trigger-is-secured.html
    
    		1  | resource "google_cloudfunctions_function" "update_historical" {
    		2  |   name    = "update_historical"
    		3  |   runtime = "nodejs10"
    		4  |   /* Running BQ client has minimal resource requirements */
    		5  |   max_instances       = 1
    		6  |   available_memory_mb = 128
    		7  |   timeout             = 30
    		8  |   entry_point         = "materialize"
    		9  |   region              = var.config.region
    		10 | 
    		11 |   source_archive_bucket = var.config.code_bucket.name
    		12 |   // Note we reuse source code setup in function_update_current.tf
    		13 |   source_archive_object = google_storage_bucket_object.materialize_code.name
    		14 | 
    		15 |   // Function triggered by mutations in the upload bucket
    		16 |   event_trigger {
    		17 |     event_type = "providers/cloud.pubsub/eventTypes/topic.publish"
    		18 |     resource   = google_pubsub_topic.version_every_hour.name
    		19 |     failure_policy {
    		20 |       retry = false
    		21 |     }
    		22 |   }
    		23 | 
    		24 |   environment_variables = {
    		25 |     PROJECT        = var.config.project
    		26 |     DATASET        = var.historical_totals_table.dataset_id
    		27 |     TABLE          = var.historical_totals_table.table_id
    		28 |     SOURCE_DATASET = var.historical_totals_latest_table.dataset_id
    		29 |     SOURCE_TABLE   = var.historical_totals_latest_table.table_id
    		30 |     N_DAYS         = var.config.retention_days
    		31 |     BUCKET         = google_storage_bucket.memorystore_uploads.name
    		32 |     FILE           = "historical_totals.json"
    		33 |   }
    		34 | }
    
    Check: CKV_AWS_144: "Ensure that S3 bucket has cross-region replication enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/aws_static_site/s3.tf:5-25
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-s3-bucket-has-cross-region-replication-enabled.html
    
    		5  | resource "aws_s3_bucket" "this" {
    		6  |   count  = "${var.bucket_override_name == "" ? 1 : 0}"
    		7  |   bucket = "${local.bucket_name}"
    		8  |   tags   = "${var.tags}"
    		9  | 
    		10 |   # Add a CORS configuration, so that we don't have issues with webfont loading
    		11 |   # http://www.holovaty.com/writing/cors-ie-cloudfront/
    		12 |   cors_rule {
    		13 |     allowed_headers = ["*"]
    		14 |     allowed_methods = ["GET"]
    		15 |     allowed_origins = ["*"]
    		16 |     max_age_seconds = 3000
    		17 |   }
    		18 | 
    		19 |   # Enable website hosting
    		20 |   # Note, though, that when accessing the bucket over its SSL endpoint, the index_document will not be used
    		21 |   website {
    		22 |     index_document = "index.html"
    		23 |     error_document = "error.html"
    		24 |   }
    		25 | }
    
    Check: CKV_AWS_144: "Ensure that S3 bucket has cross-region replication enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:19-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-s3-bucket-has-cross-region-replication-enabled.html
    
    		19 | resource "aws_s3_bucket" "this" {
    		20 |   bucket = var.bucket_name
    		21 |   tags   = var.tags
    		22 | }
    
    Check: CKV2_AWS_62: "Ensure S3 buckets should have event notifications enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/aws_static_site/s3.tf:5-25
    
    		5  | resource "aws_s3_bucket" "this" {
    		6  |   count  = "${var.bucket_override_name == "" ? 1 : 0}"
    		7  |   bucket = "${local.bucket_name}"
    		8  |   tags   = "${var.tags}"
    		9  | 
    		10 |   # Add a CORS configuration, so that we don't have issues with webfont loading
    		11 |   # http://www.holovaty.com/writing/cors-ie-cloudfront/
    		12 |   cors_rule {
    		13 |     allowed_headers = ["*"]
    		14 |     allowed_methods = ["GET"]
    		15 |     allowed_origins = ["*"]
    		16 |     max_age_seconds = 3000
    		17 |   }
    		18 | 
    		19 |   # Enable website hosting
    		20 |   # Note, though, that when accessing the bucket over its SSL endpoint, the index_document will not be used
    		21 |   website {
    		22 |     index_document = "index.html"
    		23 |     error_document = "error.html"
    		24 |   }
    		25 | }
    
    Check: CKV2_AWS_62: "Ensure S3 buckets should have event notifications enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:19-22
    
    		19 | resource "aws_s3_bucket" "this" {
    		20 |   bucket = var.bucket_name
    		21 |   tags   = var.tags
    		22 | }
    
    Check: CKV2_AWS_19: "Ensure that all EIP addresses allocated to a VPC are attached to EC2 instances"
    	FAILED for resource: aws_eip.nat
    	File: /aws/aws_vpc_msk/network-routing.tf:14-15
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/ensure-that-all-eip-addresses-allocated-to-a-vpc-are-attached-to-ec2-instances.html
    
    		14 | resource "aws_eip" "nat" {
    		15 | }
    
    Check: CKV2_AWS_12: "Ensure the default security group of every VPC restricts all traffic"
    	FAILED for resource: aws_vpc.msk_vpc
    	File: /aws/aws_vpc_msk/vpc.tf:1-10
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/networking-4.html
    
    		1  | resource "aws_vpc" "msk_vpc" {
    		2  |   cidr_block = var.vpc_cidr
    		3  |   tags = merge(
    		4  |     local.common-tags,
    		5  |     map(
    		6  |       "Name", "msk-${lower(var.environment)}-vpc",
    		7  |       "Description", "VPC for creating MSK resources",
    		8  |     )
    		9  |   )
    		10 | }
    Check: CKV2_AWS_47: "Ensure AWS CloudFront attached WAFv2 WebACL is configured with AMR for Log4j Vulnerability"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/aws_reverse_proxy/cloudfront.tf:3-139
    	Guide: https://docs.bridgecrew.io/docs/ensure-aws-cloudfront-attached-wafv2-webacl-is-configured-with-amr-for-log4j-vulnerability
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV2_AWS_47: "Ensure AWS CloudFront attached WAFv2 WebACL is configured with AMR for Log4j Vulnerability"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:65-139
    	Guide: https://docs.bridgecrew.io/docs/ensure-aws-cloudfront-attached-wafv2-webacl-is-configured-with-amr-for-log4j-vulnerability
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV2_AWS_47: "Ensure AWS CloudFront attached WAFv2 WebACL is configured with AMR for Log4j Vulnerability"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/wordpress_fargate/cloudfront.tf:15-141
    	Guide: https://docs.bridgecrew.io/docs/ensure-aws-cloudfront-attached-wafv2-webacl-is-configured-with-amr-for-log4j-vulnerability
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV2_AWS_29: "Ensure public API gateway are protected by WAF"
    	FAILED for resource: aws_api_gateway_stage.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:15-21
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/ensure-public-api-gateway-are-protected-by-waf.html
    
    		15 | resource "aws_api_gateway_stage" "this" {
    		16 |   stage_name    = "${var.stage_name}"
    		17 |   description   = "${var.comment_prefix}${var.api_domain}"
    		18 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		19 |   deployment_id = "${aws_api_gateway_deployment.this.id}"
    		20 |   tags          = "${var.tags}"
    		21 | }
    
    Check: CKV_AWS_21: "Ensure all data stored in the S3 bucket have versioning enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/aws_static_site/s3.tf:5-25
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/s3-policies/s3-16-enable-versioning.html
    
    		5  | resource "aws_s3_bucket" "this" {
    		6  |   count  = "${var.bucket_override_name == "" ? 1 : 0}"
    		7  |   bucket = "${local.bucket_name}"
    		8  |   tags   = "${var.tags}"
    		9  | 
    		10 |   # Add a CORS configuration, so that we don't have issues with webfont loading
    		11 |   # http://www.holovaty.com/writing/cors-ie-cloudfront/
    		12 |   cors_rule {
    		13 |     allowed_headers = ["*"]
    		14 |     allowed_methods = ["GET"]
    		15 |     allowed_origins = ["*"]
    		16 |     max_age_seconds = 3000
    		17 |   }
    		18 | 
    		19 |   # Enable website hosting
    		20 |   # Note, though, that when accessing the bucket over its SSL endpoint, the index_document will not be used
    		21 |   website {
    		22 |     index_document = "index.html"
    		23 |     error_document = "error.html"
    		24 |   }
    		25 | }
    
    Check: CKV_AWS_21: "Ensure all data stored in the S3 bucket have versioning enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:19-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/s3-policies/s3-16-enable-versioning.html
    
    		19 | resource "aws_s3_bucket" "this" {
    		20 |   bucket = var.bucket_name
    		21 |   tags   = var.tags
    		22 | }
    
    Check: CKV2_AWS_8: "Ensure that RDS clusters has backup plan of AWS Backup"
    	FAILED for resource: aws_rds_cluster.this
    	File: /aws/wordpress_fargate/db.tf:6-27
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-rds-clusters-has-backup-plan-of-aws-backup.html
    
    		6  | resource "aws_rds_cluster" "this" {
    		7  |   cluster_identifier      = "${var.prefix}-${var.environment}"
    		8  |   engine                  = "aurora"
    		9  |   engine_mode             = "serverless"
    		10 |   vpc_security_group_ids  = [aws_security_group.db.id]
    		11 |   db_subnet_group_name    = aws_db_subnet_group.this.name
    		12 |   engine_version          = var.db_engine_version
    		13 |   availability_zones      = data.aws_availability_zones.this.names
    		14 |   database_name           = "wordpress"
    		15 |   master_username         = var.db_master_username
    		16 |   master_password         = var.db_master_password
    		17 |   backup_retention_period = var.db_backup_retention_days
    		18 |   preferred_backup_window = var.db_backup_window
    		19 |   scaling_configuration {
    		20 |     auto_pause               = var.db_auto_pause
    		21 |     seconds_until_auto_pause = var.db_seconds_until_auto_pause
    		22 |     max_capacity             = var.db_max_capacity
    		23 |     min_capacity             = var.db_min_capacity
    		24 |   }
    		25 |   final_snapshot_identifier = "${var.prefix}-${var.environment}-${random_string.snapshot_suffix.result}"
    		26 |   tags                      = var.tags
    		27 | }
    
    Check: CKV2_AWS_5: "Ensure that Security Groups are attached to another resource"
    	FAILED for resource: aws_security_group.wordpress
    	File: /aws/wordpress_fargate/fargate.tf:104-124
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/ensure-that-security-groups-are-attached-to-ec2-instances-or-elastic-network-interfaces-enis.html
    
    		104 | resource "aws_security_group" "wordpress" {
    		105 |   name        = "${var.prefix}-wordpress-${var.environment}"
    		106 |   description = "Fargate wordpress"
    		107 |   vpc_id      = module.vpc.vpc_id
    		108 | 
    		109 |   egress {
    		110 |     from_port   = 0
    		111 |     to_port     = 0
    		112 |     protocol    = "-1"
    		113 |     cidr_blocks = ["0.0.0.0/0"]
    		114 |   }
    		115 | 
    		116 |   ingress {
    		117 |     from_port       = 0
    		118 |     to_port         = 0
    		119 |     protocol        = "tcp"
    		120 |     security_groups = [aws_security_group.alb.id, aws_security_group.efs.id]
    		121 |   }
    		122 | 
    		123 |   tags = var.tags
    		124 | }
    
    Check: CKV2_AWS_27: "Ensure Postgres RDS as aws_rds_cluster has Query Logging enabled"
    	FAILED for resource: aws_rds_cluster.this
    	File: /aws/wordpress_fargate/db.tf:6-27
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/bc-aws-logging-32.html
    
    		6  | resource "aws_rds_cluster" "this" {
    		7  |   cluster_identifier      = "${var.prefix}-${var.environment}"
    		8  |   engine                  = "aurora"
    		9  |   engine_mode             = "serverless"
    		10 |   vpc_security_group_ids  = [aws_security_group.db.id]
    		11 |   db_subnet_group_name    = aws_db_subnet_group.this.name
    		12 |   engine_version          = var.db_engine_version
    		13 |   availability_zones      = data.aws_availability_zones.this.names
    		14 |   database_name           = "wordpress"
    		15 |   master_username         = var.db_master_username
    		16 |   master_password         = var.db_master_password
    		17 |   backup_retention_period = var.db_backup_retention_days
    		18 |   preferred_backup_window = var.db_backup_window
    		19 |   scaling_configuration {
    		20 |     auto_pause               = var.db_auto_pause
    		21 |     seconds_until_auto_pause = var.db_seconds_until_auto_pause
    		22 |     max_capacity             = var.db_max_capacity
    		23 |     min_capacity             = var.db_min_capacity
    		24 |   }
    		25 |   final_snapshot_identifier = "${var.prefix}-${var.environment}-${random_string.snapshot_suffix.result}"
    		26 |   tags                      = var.tags
    		27 | }
    
    Check: CKV2_AWS_51: "Ensure AWS API Gateway endpoints uses client certificate authentication"
    	FAILED for resource: aws_api_gateway_stage.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:15-21
    
    		15 | resource "aws_api_gateway_stage" "this" {
    		16 |   stage_name    = "${var.stage_name}"
    		17 |   description   = "${var.comment_prefix}${var.api_domain}"
    		18 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		19 |   deployment_id = "${aws_api_gateway_deployment.this.id}"
    		20 |   tags          = "${var.tags}"
    		21 | }
    
    Check: CKV2_AWS_4: "Ensure API Gateway stage have logging level defined as appropriate"
    	FAILED for resource: aws_api_gateway_stage.this
    	File: /aws/aws_lambda_api/api_gateway_config.tf:15-21
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-logging-policies/ensure-api-gateway-stage-have-logging-level-defined-as-appropiate.html
    
    		15 | resource "aws_api_gateway_stage" "this" {
    		16 |   stage_name    = "${var.stage_name}"
    		17 |   description   = "${var.comment_prefix}${var.api_domain}"
    		18 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		19 |   deployment_id = "${aws_api_gateway_deployment.this.id}"
    		20 |   tags          = "${var.tags}"
    		21 | }
    
    Check: CKV2_AWS_61: "Ensure that an S3 bucket has a lifecycle configuration"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/aws_static_site/s3.tf:5-25
    
    		5  | resource "aws_s3_bucket" "this" {
    		6  |   count  = "${var.bucket_override_name == "" ? 1 : 0}"
    		7  |   bucket = "${local.bucket_name}"
    		8  |   tags   = "${var.tags}"
    		9  | 
    		10 |   # Add a CORS configuration, so that we don't have issues with webfont loading
    		11 |   # http://www.holovaty.com/writing/cors-ie-cloudfront/
    		12 |   cors_rule {
    		13 |     allowed_headers = ["*"]
    		14 |     allowed_methods = ["GET"]
    		15 |     allowed_origins = ["*"]
    		16 |     max_age_seconds = 3000
    		17 |   }
    		18 | 
    		19 |   # Enable website hosting
    		20 |   # Note, though, that when accessing the bucket over its SSL endpoint, the index_document will not be used
    		21 |   website {
    		22 |     index_document = "index.html"
    		23 |     error_document = "error.html"
    		24 |   }
    		25 | }
    
    Check: CKV2_AWS_61: "Ensure that an S3 bucket has a lifecycle configuration"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:19-22
    
    		19 | resource "aws_s3_bucket" "this" {
    		20 |   bucket = var.bucket_name
    		21 |   tags   = var.tags
    		22 | }
    
    Check: CKV2_AWS_53: "Ensure AWS API gateway request is validated"
    	FAILED for resource: aws_api_gateway_method.proxy_root
    	File: /aws/aws_lambda_api/api_gateway_resources.tf:3-8
    
    		3 | resource "aws_api_gateway_method" "proxy_root" {
    		4 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		5 |   resource_id   = "${aws_api_gateway_rest_api.this.root_resource_id}"
    		6 |   http_method   = "ANY"
    		7 |   authorization = "NONE"
    		8 | }
    
    Check: CKV2_AWS_53: "Ensure AWS API gateway request is validated"
    	FAILED for resource: aws_api_gateway_method.proxy_other
    	File: /aws/aws_lambda_api/api_gateway_resources.tf:27-32
    
    		27 | resource "aws_api_gateway_method" "proxy_other" {
    		28 |   rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
    		29 |   resource_id   = "${aws_api_gateway_resource.proxy_other.id}"
    		30 |   http_method   = "ANY"
    		31 |   authorization = "NONE"
    		32 | }
    
    Check: CKV2_AWS_11: "Ensure VPC flow logging is enabled in all VPCs"
    	FAILED for resource: aws_vpc.msk_vpc
    	File: /aws/aws_vpc_msk/vpc.tf:1-10
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-logging-policies/logging-9-enable-vpc-flow-logging.html
    
    		1  | resource "aws_vpc" "msk_vpc" {
    		2  |   cidr_block = var.vpc_cidr
    		3  |   tags = merge(
    		4  |     local.common-tags,
    		5  |     map(
    		6  |       "Name", "msk-${lower(var.environment)}-vpc",
    		7  |       "Description", "VPC for creating MSK resources",
    		8  |     )
    		9  |   )
    		10 | }
    Check: CKV_AWS_18: "Ensure the S3 bucket has access logging enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/aws_static_site/s3.tf:5-25
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/s3-policies/s3-13-enable-logging.html
    
    		5  | resource "aws_s3_bucket" "this" {
    		6  |   count  = "${var.bucket_override_name == "" ? 1 : 0}"
    		7  |   bucket = "${local.bucket_name}"
    		8  |   tags   = "${var.tags}"
    		9  | 
    		10 |   # Add a CORS configuration, so that we don't have issues with webfont loading
    		11 |   # http://www.holovaty.com/writing/cors-ie-cloudfront/
    		12 |   cors_rule {
    		13 |     allowed_headers = ["*"]
    		14 |     allowed_methods = ["GET"]
    		15 |     allowed_origins = ["*"]
    		16 |     max_age_seconds = 3000
    		17 |   }
    		18 | 
    		19 |   # Enable website hosting
    		20 |   # Note, though, that when accessing the bucket over its SSL endpoint, the index_document will not be used
    		21 |   website {
    		22 |     index_document = "index.html"
    		23 |     error_document = "error.html"
    		24 |   }
    		25 | }
    
    Check: CKV_AWS_18: "Ensure the S3 bucket has access logging enabled"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:19-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/s3-policies/s3-13-enable-logging.html
    
    		19 | resource "aws_s3_bucket" "this" {
    		20 |   bucket = var.bucket_name
    		21 |   tags   = var.tags
    		22 | }
    
    Check: CKV2_AWS_6: "Ensure that S3 bucket has a Public Access block"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/aws_static_site/s3.tf:5-25
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/s3-bucket-should-have-public-access-blocks-defaults-to-false-if-the-public-access-block-is-not-attached.html
    
    		5  | resource "aws_s3_bucket" "this" {
    		6  |   count  = "${var.bucket_override_name == "" ? 1 : 0}"
    		7  |   bucket = "${local.bucket_name}"
    		8  |   tags   = "${var.tags}"
    		9  | 
    		10 |   # Add a CORS configuration, so that we don't have issues with webfont loading
    		11 |   # http://www.holovaty.com/writing/cors-ie-cloudfront/
    		12 |   cors_rule {
    		13 |     allowed_headers = ["*"]
    		14 |     allowed_methods = ["GET"]
    		15 |     allowed_origins = ["*"]
    		16 |     max_age_seconds = 3000
    		17 |   }
    		18 | 
    		19 |   # Enable website hosting
    		20 |   # Note, though, that when accessing the bucket over its SSL endpoint, the index_document will not be used
    		21 |   website {
    		22 |     index_document = "index.html"
    		23 |     error_document = "error.html"
    		24 |   }
    		25 | }
    
    Check: CKV_AWS_145: "Ensure that S3 buckets are encrypted with KMS by default"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/aws_static_site/s3.tf:5-25
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-s3-buckets-are-encrypted-with-kms-by-default.html
    
    		5  | resource "aws_s3_bucket" "this" {
    		6  |   count  = "${var.bucket_override_name == "" ? 1 : 0}"
    		7  |   bucket = "${local.bucket_name}"
    		8  |   tags   = "${var.tags}"
    		9  | 
    		10 |   # Add a CORS configuration, so that we don't have issues with webfont loading
    		11 |   # http://www.holovaty.com/writing/cors-ie-cloudfront/
    		12 |   cors_rule {
    		13 |     allowed_headers = ["*"]
    		14 |     allowed_methods = ["GET"]
    		15 |     allowed_origins = ["*"]
    		16 |     max_age_seconds = 3000
    		17 |   }
    		18 | 
    		19 |   # Enable website hosting
    		20 |   # Note, though, that when accessing the bucket over its SSL endpoint, the index_document will not be used
    		21 |   website {
    		22 |     index_document = "index.html"
    		23 |     error_document = "error.html"
    		24 |   }
    		25 | }
    
    Check: CKV_AWS_145: "Ensure that S3 buckets are encrypted with KMS by default"
    	FAILED for resource: aws_s3_bucket.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:19-22
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/ensure-that-s3-buckets-are-encrypted-with-kms-by-default.html
    
    		19 | resource "aws_s3_bucket" "this" {
    		20 |   bucket = var.bucket_name
    		21 |   tags   = var.tags
    		22 | }
    
    Check: CKV2_AWS_32: "Ensure CloudFront distribution has a response headers policy attached"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/aws_reverse_proxy/cloudfront.tf:3-139
    	Guide: https://docs.bridgecrew.io/docs/bc_aws_networking_65
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV2_AWS_32: "Ensure CloudFront distribution has a response headers policy attached"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/static_website_ssl_cloudfront_private_s3/main.tf:65-139
    	Guide: https://docs.bridgecrew.io/docs/bc_aws_networking_65
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV2_AWS_32: "Ensure CloudFront distribution has a response headers policy attached"
    	FAILED for resource: aws_cloudfront_distribution.this
    	File: /aws/wordpress_fargate/cloudfront.tf:15-141
    	Guide: https://docs.bridgecrew.io/docs/bc_aws_networking_65
    
    		Code lines for this resource are too many. Please use IDE of your choice to review the file.
    Check: CKV2_GCP_13: "Ensure PostgreSQL database flag 'log_duration' is set to 'on'"
    	FAILED for resource: google_sql_database_instance.camunda-db
    	File: /google_cloud/camunda-secure/cloudsql.tf:1-13
    
    		1  | resource "google_sql_database_instance" "camunda-db" {
    		2  |   name             = "camunda-db-postgres"
    		3  |   database_version = "POSTGRES_11"
    		4  |   region           = local.config.region
    		5  | 
    		6  |   settings {
    		7  |     # Very small instance for testing.
    		8  |     tier = "db-f1-micro"
    		9  |     ip_configuration {
    		10 |         ipv4_enabled = true
    		11 |     }
    		12 |   }
    		13 | }
    
    Check: CKV2_GCP_13: "Ensure PostgreSQL database flag 'log_duration' is set to 'on'"
    	FAILED for resource: google_sql_database_instance.camunda-db
    	File: /google_cloud/camunda/cloudsql.tf:1-13
    
    		1  | resource "google_sql_database_instance" "camunda-db" {
    		2  |   name             = "camunda-db-postgres"
    		3  |   database_version = "POSTGRES_11"
    		4  |   region           = local.config.region
    		5  | 
    		6  |   settings {
    		7  |     # Very small instance for testing.
    		8  |     tier = "db-f1-micro"
    		9  |     ip_configuration {
    		10 |         ipv4_enabled = true
    		11 |     }
    		12 |   }
    		13 | }
    
    Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
    	FAILED for resource: aws_instance.this
    	File: /aws/aws_ec2_ebs_docker_host/main.tf:3-46
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-an-iam-role-is-attached-to-ec2-instance.html
    
    		3  | resource "aws_instance" "this" {
    		4  |   instance_type          = "${var.instance_type}"
    		5  |   ami                    = "${var.instance_ami}"
    		6  |   availability_zone      = "${local.availability_zone}"
    		7  |   key_name               = "${aws_key_pair.this.id}"                            # the name of the SSH keypair to use for provisioning
    		8  |   vpc_security_group_ids = ["${aws_security_group.this.id}"]
    		9  |   subnet_id              = "${data.aws_subnet.this.id}"
    		10 |   user_data              = "${sha1(local.reprovision_trigger)}"                 # this value isn't used by the EC2 instance, but its change will trigger re-creation of the resource
    		11 |   tags                   = "${merge(var.tags, map("Name", "${var.hostname}"))}"
    		12 |   volume_tags            = "${merge(var.tags, map("Name", "${var.hostname}"))}" # give the root EBS volume a name (+ other possible tags) that makes it easier to identify as belonging to this host
    		13 | 
    		14 |   root_block_device {
    		15 |     volume_size = "${var.root_volume_size}"
    		16 |   }
    		17 | 
    		18 |   connection {
    		19 |     user        = "${var.ssh_username}"
    		20 |     private_key = "${file("${var.ssh_private_key_path}")}"
    		21 |     agent       = false                                    # don't use SSH agent because we have the private key right here
    		22 |   }
    		23 | 
    		24 |   provisioner "remote-exec" {
    		25 |     inline = [
    		26 |       "sudo hostnamectl set-hostname ${var.hostname}",
    		27 |       "echo 127.0.0.1 ${var.hostname} | sudo tee -a /etc/hosts", # https://askubuntu.com/a/59517
    		28 |     ]
    		29 |   }
    		30 | 
    		31 |   provisioner "remote-exec" {
    		32 |     script = "${path.module}/provision-docker.sh"
    		33 |   }
    		34 | 
    		35 |   provisioner "file" {
    		36 |     source      = "${path.module}/provision-swap.sh"
    		37 |     destination = "/home/${var.ssh_username}/provision-swap.sh"
    		38 |   }
    		39 | 
    		40 |   provisioner "remote-exec" {
    		41 |     inline = [
    		42 |       "sh /home/${var.ssh_username}/provision-swap.sh ${var.swap_file_size} ${var.swap_swappiness}",
    		43 |       "rm /home/${var.ssh_username}/provision-swap.sh",
    		44 |     ]
    		45 |   }
    		46 | }
    
    dockerfile scan results:
    
    Passed checks: 315, Failed checks: 12, Skipped checks: 0
    
    Check: CKV_DOCKER_4: "Ensure that COPY is used instead of ADD in Dockerfiles"
    	FAILED for resource: /google_cloud/oathkeeper/Dockerfile.template.ADD
    	File: /google_cloud/oathkeeper/Dockerfile.template:2-2
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-copy-is-used-instead-of-add-in-dockerfiles.html
    
    		2 | ADD config.yml /config.yaml
    
    Check: CKV_DOCKER_3: "Ensure that a user for the container has been created"
    	FAILED for resource: /google_cloud/oathkeeper/Dockerfile.template.
    	File: /google_cloud/oathkeeper/Dockerfile.template:1-2
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-a-user-for-the-container-has-been-created.html
    
    		1 | FROM eu.gcr.io/${project}/${image}:${tag}
    		2 | ADD config.yml /config.yaml
    
    Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
    	FAILED for resource: /google_cloud/oathkeeper/Dockerfile.template.
    	File: /google_cloud/oathkeeper/Dockerfile.template:1-2
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-healthcheck-instructions-have-been-added-to-container-images.html
    
    		1 | FROM eu.gcr.io/${project}/${image}:${tag}
    		2 | ADD config.yml /config.yaml
    
    Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
    	FAILED for resource: /google_cloud/camunda-secure/Dockerfile.template.
    	File: /google_cloud/camunda-secure/Dockerfile.template:1-15
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-healthcheck-instructions-have-been-added-to-container-images.html
    
    		1  | FROM eu.gcr.io/${project}/${image}:${tag}
    		2  | # https://forum.camunda.org/t/apt-get-is-missing-on-camunda-bpm-platform-7-9-0-image/7789
    		3  | USER root 
    		4  | RUN apk add --no-cache wget
    		5  | USER camunda
    		6  | RUN rm /camunda/lib/postgresql-*.jar 
    		7  | RUN wget --directory-prefix=/camunda/lib https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory/releases/download/v1.0.15/postgres-socket-factory-1.0.15-jar-with-driver-and-dependencies.jar
    		8  | 
    		9  | # json-path and deps
    		10 | RUN wget --directory-prefix=/camunda/lib https://repo1.maven.org/maven2/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar
    		11 | RUN wget --directory-prefix=/camunda/lib https://repo1.maven.org/maven2/net/minidev/json-smart/2.3/json-smart-2.3.jar
    		12 | RUN wget --directory-prefix=/camunda/lib https://repo1.maven.org/maven2/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar
    		13 | 
    		14 | COPY bpm-platform.xml /camunda/conf/
    		15 | # COPY server.xml /camunda/conf/
    
    Check: CKV_DOCKER_3: "Ensure that a user for the container has been created"
    	FAILED for resource: /azure/azure_linux_docker_app_service/example-app/Dockerfile.
    	File: /azure/azure_linux_docker_app_service/example-app/Dockerfile:1-9
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-a-user-for-the-container-has-been-created.html
    
    		1 | FROM node:14-slim
    		2 | 
    		3 | WORKDIR /app
    		4 | COPY package.json package-lock.json ./
    		5 | RUN npm ci
    		6 | COPY index.js ./
    		7 | 
    		8 | EXPOSE 4000
    		9 | CMD ["node", "index.js"]
    
    Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
    	FAILED for resource: /azure/azure_linux_docker_app_service/example-app/Dockerfile.
    	File: /azure/azure_linux_docker_app_service/example-app/Dockerfile:1-9
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-healthcheck-instructions-have-been-added-to-container-images.html
    
    		1 | FROM node:14-slim
    		2 | 
    		3 | WORKDIR /app
    		4 | COPY package.json package-lock.json ./
    		5 | RUN npm ci
    		6 | COPY index.js ./
    		7 | 
    		8 | EXPOSE 4000
    		9 | CMD ["node", "index.js"]
    
    Check: CKV_DOCKER_4: "Ensure that COPY is used instead of ADD in Dockerfiles"
    	FAILED for resource: /google_cloud/openresty-beyondcorp/Dockerfile.template.ADD
    	File: /google_cloud/openresty-beyondcorp/Dockerfile.template:7-7
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-copy-is-used-instead-of-add-in-dockerfiles.html
    
    		7 | ADD default.conf /etc/nginx/conf.d/default.conf
    
    Check: CKV_DOCKER_4: "Ensure that COPY is used instead of ADD in Dockerfiles"
    	FAILED for resource: /google_cloud/openresty-beyondcorp/Dockerfile.template.ADD
    	File: /google_cloud/openresty-beyondcorp/Dockerfile.template:8-8
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-copy-is-used-instead-of-add-in-dockerfiles.html
    
    		8 | ADD login /assets/login
    
    Check: CKV_DOCKER_4: "Ensure that COPY is used instead of ADD in Dockerfiles"
    	FAILED for resource: /google_cloud/openresty-beyondcorp/Dockerfile.template.ADD
    	File: /google_cloud/openresty-beyondcorp/Dockerfile.template:9-9
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-copy-is-used-instead-of-add-in-dockerfiles.html
    
    		9 | ADD swiss/ /usr/local/openresty/lualib/swiss/
    
    Check: CKV_DOCKER_3: "Ensure that a user for the container has been created"
    	FAILED for resource: /google_cloud/openresty-beyondcorp/Dockerfile.template.
    	File: /google_cloud/openresty-beyondcorp/Dockerfile.template:1-11
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-a-user-for-the-container-has-been-created.html
    
    		1  | FROM eu.gcr.io/${project}/${image}:${tag}
    		2  | RUN apk add --no-cache curl perl
    		3  | RUN opm get ledgetech/lua-resty-http
    		4  | RUN opm get bungle/lua-resty-reqargs
    		5  | RUN opm get jkeys089/lua-resty-hmac
    		6  | 
    		7  | ADD default.conf /etc/nginx/conf.d/default.conf
    		8  | ADD login /assets/login
    		9  | ADD swiss/ /usr/local/openresty/lualib/swiss/
    		10 | 
    		11 | 
    
    Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
    	FAILED for resource: /google_cloud/openresty-beyondcorp/Dockerfile.template.
    	File: /google_cloud/openresty-beyondcorp/Dockerfile.template:1-11
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-healthcheck-instructions-have-been-added-to-container-images.html
    
    		1  | FROM eu.gcr.io/${project}/${image}:${tag}
    		2  | RUN apk add --no-cache curl perl
    		3  | RUN opm get ledgetech/lua-resty-http
    		4  | RUN opm get bungle/lua-resty-reqargs
    		5  | RUN opm get jkeys089/lua-resty-hmac
    		6  | 
    		7  | ADD default.conf /etc/nginx/conf.d/default.conf
    		8  | ADD login /assets/login
    		9  | ADD swiss/ /usr/local/openresty/lualib/swiss/
    		10 | 
    		11 | 
    
    Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
    	FAILED for resource: /google_cloud/camunda/Dockerfile.template.
    	File: /google_cloud/camunda/Dockerfile.template:1-14
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/docker-policies/docker-policy-index/ensure-that-healthcheck-instructions-have-been-added-to-container-images.html
    
    		1  | FROM eu.gcr.io/${project}/${image}:${tag}
    		2  | # https://forum.camunda.org/t/apt-get-is-missing-on-camunda-bpm-platform-7-9-0-image/7789
    		3  | USER root 
    		4  | RUN apk add --no-cache wget
    		5  | USER camunda
    		6  | RUN rm /camunda/lib/postgresql-*.jar 
    		7  | RUN wget --directory-prefix=/camunda/lib https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory/releases/download/v1.0.15/postgres-socket-factory-1.0.15-jar-with-driver-and-dependencies.jar
    		8  | 
    		9  | # json-path and deps
    		10 | RUN wget --directory-prefix=/camunda/lib https://repo1.maven.org/maven2/com/jayway/jsonpath/json-path/2.4.0/json-path-2.4.0.jar
    		11 | RUN wget --directory-prefix=/camunda/lib https://repo1.maven.org/maven2/net/minidev/json-smart/2.3/json-smart-2.3.jar
    		12 | RUN wget --directory-prefix=/camunda/lib https://repo1.maven.org/maven2/net/minidev/accessors-smart/1.2/accessors-smart-1.2.jar
    		13 | 
    		14 | COPY bpm-platform.xml /camunda/conf/
    
    secrets scan results:
    
    Passed checks: 0, Failed checks: 1, Skipped checks: 0
    
    Check: CKV_SECRET_6: "Base64 High Entropy String"
    	FAILED for resource: ef36e488ad3b81642c5554f9b9442bdcda150c08
    	File: /google_cloud/openresty-beyondcorp/main.tf:76-77
    	Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/secrets-policies/secrets-policy-index/git-secrets-6.html
    
    		76 |     SLACK_SIGNING_SECRET = "projec**********************************************************"
    
    
    
                    
                  

    Linting

    This repository failed the Experience Builder Terraform Module's Linting validation. This means that a linting tool was not found to be implemented in any of the CICD tool configuration files in the repository.

    There is an opportunity to: