Repository | omerbsezer / Fast-Terraform |
Description | This repo covers Terraform (Infrastructure as Code) with LABs using AWS and AWS Sample Projects: Resources, Variables, Meta Arguments, Provisioners, Dynamic Blocks, Modules, Provisioning AWS Resour… |
Stars | 203 |
---|---|
Failed Checks |
Security Scanning |
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:
- Remediate the findings identified by one of the recommended
Terraform security scanning tools (example
checkov
output found below) - Implement one of the security scanning tools within the CICD framework used by the repository
Checkov Output
2023-10-05 14:51:34,561 [MainThread ] [WARNI] Failed to download module terraform-aws-modules/eks/aws:~>19.12 (for external modules, the --download-external-modules flag is required)
2023-10-05 14:51:34,561 [MainThread ] [WARNI] Failed to download module github.com/aws-ia/terraform-aws-eks-blueprints/modules/kubernetes-addons:None (for external modules, the --download-external-modules flag is required)
2023-10-05 14:51:34,561 [MainThread ] [WARNI] Failed to download module terraform-aws-modules/vpc/aws:~>4.0 (for external modules, the --download-external-modules flag is required)
terraform scan results:
Passed checks: 291, Failed checks: 273, Skipped checks: 0
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.instance
File: /labs/backend-remote-state/main.tf:22-29
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
22 | resource "aws_instance" "instance" {
23 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
24 | instance_type = "t2.nano"
25 |
26 | tags = {
27 | Name = "Basic Instance"
28 | }
29 | }
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.instance
File: /labs/backend-remote-state/main.tf:22-29
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
22 | resource "aws_instance" "instance" {
23 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
24 | instance_type = "t2.nano"
25 |
26 | tags = {
27 | Name = "Basic Instance"
28 | }
29 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.instance
File: /labs/backend-remote-state/main.tf:22-29
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
22 | resource "aws_instance" "instance" {
23 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
24 | instance_type = "t2.nano"
25 |
26 | tags = {
27 | Name = "Basic Instance"
28 | }
29 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.instance
File: /labs/backend-remote-state/main.tf:22-29
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
22 | resource "aws_instance" "instance" {
23 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
24 | instance_type = "t2.nano"
25 |
26 | tags = {
27 | Name = "Basic Instance"
28 | }
29 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.instance
File: /labs/basic-resource-ec2-ubuntu/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
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.instance
File: /labs/basic-resource-ec2-ubuntu/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.instance
File: /labs/basic-resource-ec2-ubuntu/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.instance
File: /labs/basic-resource-ec2-ubuntu/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.instance
File: /labs/data-sources/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
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.instance
File: /labs/data-sources/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.instance
File: /labs/data-sources/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.instance
File: /labs/data-sources/main.tf:16-23
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
16 | resource "aws_instance" "instance" {
17 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
18 | instance_type = "t2.nano"
19 |
20 | tags = {
21 | Name = "Basic Instance"
22 | }
23 | }
Check: CKV_AWS_23: "Ensure every security groups rule has a description"
FAILED for resource: aws_security_group.main
File: /labs/dynamic-blocks/main.tf:70-97
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
70 | resource "aws_security_group" "main" {
71 | name = "resource_with_dynamic_block"
72 | description = "Allow SSH inbound connections"
73 | vpc_id = aws_vpc.my_vpc.id # todo: update it with data.aws_vpc.main.id
74 |
75 | dynamic "ingress" {
76 | for_each = local.ingress_rules
77 |
78 | content {
79 | description = ingress.value.description
80 | from_port = ingress.value.port
81 | to_port = ingress.value.port
82 | protocol = "tcp"
83 | cidr_blocks = ["0.0.0.0/0"]
84 | }
85 | }
86 |
87 | egress {
88 | from_port = 0
89 | to_port = 0
90 | protocol = "-1"
91 | cidr_blocks = ["0.0.0.0/0"]
92 | }
93 |
94 | tags = {
95 | Name = "AWS security group dynamic block"
96 | }
97 | }
Check: CKV_AWS_260: "Ensure no security groups allow ingress from 0.0.0.0:0 to port 80"
FAILED for resource: aws_security_group.main
File: /labs/dynamic-blocks/main.tf:70-97
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-security-groups-do-not-allow-ingress-from-00000-to-port-80.html
70 | resource "aws_security_group" "main" {
71 | name = "resource_with_dynamic_block"
72 | description = "Allow SSH inbound connections"
73 | vpc_id = aws_vpc.my_vpc.id # todo: update it with data.aws_vpc.main.id
74 |
75 | dynamic "ingress" {
76 | for_each = local.ingress_rules
77 |
78 | content {
79 | description = ingress.value.description
80 | from_port = ingress.value.port
81 | to_port = ingress.value.port
82 | protocol = "tcp"
83 | cidr_blocks = ["0.0.0.0/0"]
84 | }
85 | }
86 |
87 | egress {
88 | from_port = 0
89 | to_port = 0
90 | protocol = "-1"
91 | cidr_blocks = ["0.0.0.0/0"]
92 | }
93 |
94 | tags = {
95 | Name = "AWS security group dynamic block"
96 | }
97 | }
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.main
File: /labs/dynamic-blocks/main.tf:70-97
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
70 | resource "aws_security_group" "main" {
71 | name = "resource_with_dynamic_block"
72 | description = "Allow SSH inbound connections"
73 | vpc_id = aws_vpc.my_vpc.id # todo: update it with data.aws_vpc.main.id
74 |
75 | dynamic "ingress" {
76 | for_each = local.ingress_rules
77 |
78 | content {
79 | description = ingress.value.description
80 | from_port = ingress.value.port
81 | to_port = ingress.value.port
82 | protocol = "tcp"
83 | cidr_blocks = ["0.0.0.0/0"]
84 | }
85 | }
86 |
87 | egress {
88 | from_port = 0
89 | to_port = 0
90 | protocol = "-1"
91 | cidr_blocks = ["0.0.0.0/0"]
92 | }
93 |
94 | tags = {
95 | Name = "AWS security group dynamic block"
96 | }
97 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.ubuntu2204
File: /labs/dynamic-blocks/main.tf:99-109
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
99 | resource "aws_instance" "ubuntu2204" {
100 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
101 | instance_type = "t2.nano"
102 | key_name = "testkey"
103 | vpc_security_group_ids = [aws_security_group.main.id]
104 | subnet_id = aws_subnet.public.id
105 | associate_public_ip_address = true
106 | tags = {
107 | Name = "Ubuntu 22.04"
108 | }
109 | }
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.ubuntu2204
File: /labs/dynamic-blocks/main.tf:99-109
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
99 | resource "aws_instance" "ubuntu2204" {
100 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
101 | instance_type = "t2.nano"
102 | key_name = "testkey"
103 | vpc_security_group_ids = [aws_security_group.main.id]
104 | subnet_id = aws_subnet.public.id
105 | associate_public_ip_address = true
106 | tags = {
107 | Name = "Ubuntu 22.04"
108 | }
109 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.ubuntu2204
File: /labs/dynamic-blocks/main.tf:99-109
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
99 | resource "aws_instance" "ubuntu2204" {
100 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
101 | instance_type = "t2.nano"
102 | key_name = "testkey"
103 | vpc_security_group_ids = [aws_security_group.main.id]
104 | subnet_id = aws_subnet.public.id
105 | associate_public_ip_address = true
106 | tags = {
107 | Name = "Ubuntu 22.04"
108 | }
109 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: aws_instance.ubuntu2204
File: /labs/dynamic-blocks/main.tf:99-109
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
99 | resource "aws_instance" "ubuntu2204" {
100 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
101 | instance_type = "t2.nano"
102 | key_name = "testkey"
103 | vpc_security_group_ids = [aws_security_group.main.id]
104 | subnet_id = aws_subnet.public.id
105 | associate_public_ip_address = true
106 | tags = {
107 | Name = "Ubuntu 22.04"
108 | }
109 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.ubuntu2204
File: /labs/dynamic-blocks/main.tf:99-109
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
99 | resource "aws_instance" "ubuntu2204" {
100 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
101 | instance_type = "t2.nano"
102 | key_name = "testkey"
103 | vpc_security_group_ids = [aws_security_group.main.id]
104 | subnet_id = aws_subnet.public.id
105 | associate_public_ip_address = true
106 | tags = {
107 | Name = "Ubuntu 22.04"
108 | }
109 | }
Check: CKV_AWS_110: "Ensure IAM policies does not allow privilege escalation"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-does-not-allow-privilege-escalation.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_108: "Ensure IAM policies does not allow data exfiltration"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-data-exfiltration.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_49: "Ensure no IAM policies documents allow "*" as a statement's actions"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/bc-aws-iam-43.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_1: "Ensure IAM policies that allow full "*-*" administrative privileges are not created"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/iam-23.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_109: "Ensure IAM policies does not allow permissions management / resource exposure without constraints"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-permissions-management-resource-exposure-without-constraint.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_107: "Ensure IAM policies does not allow credentials exposure"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-credentials-exposure.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_111: "Ensure IAM policies does not allow write access without constraints"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-write-access-without-constraint.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_356: "Ensure no IAM policies documents allow "*" as a statement's resource for restrictable actions"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_356: "Ensure no IAM policies documents allow "*" as a statement's resource for restrictable actions"
FAILED for resource: aws_iam_policy_document.ec2_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:66-72
66 | data "aws_iam_policy_document" "ec2_policy" {
67 | statement {
68 | effect = "Allow"
69 | actions = ["ec2:Describe*"]
70 | resources = ["*"]
71 | }
72 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.user_example[0]
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:95-98
95 | resource "aws_iam_user" "user_example" {
96 | count = length(var.user_names)
97 | name = var.user_names[count.index]
98 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.user_example[1]
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:95-98
95 | resource "aws_iam_user" "user_example" {
96 | count = length(var.user_names)
97 | name = var.user_names[count.index]
98 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.user_example[2]
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:95-98
95 | resource "aws_iam_user" "user_example" {
96 | count = length(var.user_names)
97 | name = var.user_names[count.index]
98 | }
Check: CKV_AWS_110: "Ensure IAM policies does not allow privilege escalation"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-does-not-allow-privilege-escalation.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_108: "Ensure IAM policies does not allow data exfiltration"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-data-exfiltration.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_49: "Ensure no IAM policies documents allow "*" as a statement's actions"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/bc-aws-iam-43.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_1: "Ensure IAM policies that allow full "*-*" administrative privileges are not created"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/iam-23.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_109: "Ensure IAM policies does not allow permissions management / resource exposure without constraints"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-permissions-management-resource-exposure-without-constraint.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_107: "Ensure IAM policies does not allow credentials exposure"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-credentials-exposure.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_111: "Ensure IAM policies does not allow write access without constraints"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/ensure-iam-policies-do-not-allow-write-access-without-constraint.html
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_356: "Ensure no IAM policies documents allow "*" as a statement's resource for restrictable actions"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.user_example["username1_admin_dev"]
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:96-99
96 | resource "aws_iam_user" "user_example" {
97 | for_each = var.user_names
98 | name = each.value
99 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.user_example["username2_admin"]
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:96-99
96 | resource "aws_iam_user" "user_example" {
97 | for_each = var.user_names
98 | name = each.value
99 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.user_example["username3_dev_s3"]
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:96-99
96 | resource "aws_iam_user" "user_example" {
97 | for_each = var.user_names
98 | name = each.value
99 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.example["user1"]
File: /labs/iamuser-metaargs-count-for-foreach-map/map/main.tf:14-17
14 | resource "aws_iam_user" "example" {
15 | for_each = var.user_names
16 | name = each.value
17 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.example["user2"]
File: /labs/iamuser-metaargs-count-for-foreach-map/map/main.tf:14-17
14 | resource "aws_iam_user" "example" {
15 | for_each = var.user_names
16 | name = each.value
17 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.example["user3"]
File: /labs/iamuser-metaargs-count-for-foreach-map/map/main.tf:14-17
14 | resource "aws_iam_user" "example" {
15 | for_each = var.user_names
16 | name = each.value
17 | }
Check: CKV_AWS_23: "Ensure every security groups rule has a description"
FAILED for resource: module.webserver-1.aws_security_group.ssg
File: /labs/modules/module1/main.tf:59-93
Calling File: /labs/modules/main.tf:13-22
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
59 | resource "aws_security_group" "ssg" {
60 | name = "module1_security_group" # name should be different on modules
61 | description = "Allow SSH inbound connections"
62 | vpc_id = aws_vpc.my_vpc.id
63 | # for SSH
64 | ingress {
65 | from_port = 22
66 | to_port = 22
67 | protocol = "tcp"
68 | cidr_blocks = ["0.0.0.0/0"]
69 | }
70 | # for HTTP Apache Server
71 | ingress {
72 | from_port = 80
73 | to_port = 80
74 | protocol = "tcp"
75 | cidr_blocks = ["0.0.0.0/0"]
76 | }
77 | # for HTTPS Apache Server
78 | ingress {
79 | from_port = 443
80 | to_port = 443
81 | protocol = "tcp"
82 | cidr_blocks = ["0.0.0.0/0"]
83 | }
84 | egress {
85 | from_port = 0
86 | to_port = 0
87 | protocol = "-1"
88 | cidr_blocks = ["0.0.0.0/0"]
89 | }
90 | tags = {
91 | Name = "allow_ssh_sg"
92 | }
93 | }
Check: CKV_AWS_260: "Ensure no security groups allow ingress from 0.0.0.0:0 to port 80"
FAILED for resource: module.webserver-1.aws_security_group.ssg
File: /labs/modules/module1/main.tf:59-93
Calling File: /labs/modules/main.tf:13-22
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-security-groups-do-not-allow-ingress-from-00000-to-port-80.html
59 | resource "aws_security_group" "ssg" {
60 | name = "module1_security_group" # name should be different on modules
61 | description = "Allow SSH inbound connections"
62 | vpc_id = aws_vpc.my_vpc.id
63 | # for SSH
64 | ingress {
65 | from_port = 22
66 | to_port = 22
67 | protocol = "tcp"
68 | cidr_blocks = ["0.0.0.0/0"]
69 | }
70 | # for HTTP Apache Server
71 | ingress {
72 | from_port = 80
73 | to_port = 80
74 | protocol = "tcp"
75 | cidr_blocks = ["0.0.0.0/0"]
76 | }
77 | # for HTTPS Apache Server
78 | ingress {
79 | from_port = 443
80 | to_port = 443
81 | protocol = "tcp"
82 | cidr_blocks = ["0.0.0.0/0"]
83 | }
84 | egress {
85 | from_port = 0
86 | to_port = 0
87 | protocol = "-1"
88 | cidr_blocks = ["0.0.0.0/0"]
89 | }
90 | tags = {
91 | Name = "allow_ssh_sg"
92 | }
93 | }
Check: CKV_AWS_24: "Ensure no security groups allow ingress from 0.0.0.0:0 to port 22"
FAILED for resource: module.webserver-1.aws_security_group.ssg
File: /labs/modules/module1/main.tf:59-93
Calling File: /labs/modules/main.tf:13-22
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
59 | resource "aws_security_group" "ssg" {
60 | name = "module1_security_group" # name should be different on modules
61 | description = "Allow SSH inbound connections"
62 | vpc_id = aws_vpc.my_vpc.id
63 | # for SSH
64 | ingress {
65 | from_port = 22
66 | to_port = 22
67 | protocol = "tcp"
68 | cidr_blocks = ["0.0.0.0/0"]
69 | }
70 | # for HTTP Apache Server
71 | ingress {
72 | from_port = 80
73 | to_port = 80
74 | protocol = "tcp"
75 | cidr_blocks = ["0.0.0.0/0"]
76 | }
77 | # for HTTPS Apache Server
78 | ingress {
79 | from_port = 443
80 | to_port = 443
81 | protocol = "tcp"
82 | cidr_blocks = ["0.0.0.0/0"]
83 | }
84 | egress {
85 | from_port = 0
86 | to_port = 0
87 | protocol = "-1"
88 | cidr_blocks = ["0.0.0.0/0"]
89 | }
90 | tags = {
91 | Name = "allow_ssh_sg"
92 | }
93 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: module.webserver-1.aws_instance.ec2
File: /labs/modules/module1/main.tf:95-113
Calling File: /labs/modules/main.tf:13-22
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "!! MODULE-1 !!: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_8: "Ensure all data stored in the Launch configuration or instance Elastic Blocks Store is securely encrypted"
FAILED for resource: module.webserver-1.aws_instance.ec2
File: /labs/modules/module1/main.tf:95-113
Calling File: /labs/modules/main.tf:13-22
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "!! MODULE-1 !!: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: module.webserver-1.aws_instance.ec2
File: /labs/modules/module1/main.tf:95-113
Calling File: /labs/modules/main.tf:13-22
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "!! MODULE-1 !!: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: module.webserver-1.aws_instance.ec2
File: /labs/modules/module1/main.tf:95-113
Calling File: /labs/modules/main.tf:13-22
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "!! MODULE-1 !!: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: module.webserver-1.aws_instance.ec2
File: /labs/modules/module1/main.tf:95-113
Calling File: /labs/modules/main.tf:13-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-ec2-is-ebs-optimized.html
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "!! MODULE-1 !!: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_23: "Ensure every security groups rule has a description"
FAILED for resource: module.webserver-2.aws_security_group.ssg
File: /labs/modules/module2/main.tf:59-93
Calling File: /labs/modules/main.tf:24-32
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
59 | resource "aws_security_group" "ssg" {
60 | name = "module2_security_group" # name should be different on modules
61 | description = "Allow SSH inbound connections"
62 | vpc_id = aws_vpc.my_vpc.id
63 | # for SSH
64 | ingress {
65 | from_port = 22
66 | to_port = 22
67 | protocol = "tcp"
68 | cidr_blocks = ["0.0.0.0/0"]
69 | }
70 | # for HTTP Apache Server
71 | ingress {
72 | from_port = 80
73 | to_port = 80
74 | protocol = "tcp"
75 | cidr_blocks = ["0.0.0.0/0"]
76 | }
77 | # for HTTPS Apache Server
78 | ingress {
79 | from_port = 443
80 | to_port = 443
81 | protocol = "tcp"
82 | cidr_blocks = ["0.0.0.0/0"]
83 | }
84 | egress {
85 | from_port = 0
86 | to_port = 0
87 | protocol = "-1"
88 | cidr_blocks = ["0.0.0.0/0"]
89 | }
90 | tags = {
91 | Name = "allow_ssh_sg"
92 | }
93 | }
Check: CKV_AWS_260: "Ensure no security groups allow ingress from 0.0.0.0:0 to port 80"
FAILED for resource: module.webserver-2.aws_security_group.ssg
File: /labs/modules/module2/main.tf:59-93
Calling File: /labs/modules/main.tf:24-32
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-security-groups-do-not-allow-ingress-from-00000-to-port-80.html
59 | resource "aws_security_group" "ssg" {
60 | name = "module2_security_group" # name should be different on modules
61 | description = "Allow SSH inbound connections"
62 | vpc_id = aws_vpc.my_vpc.id
63 | # for SSH
64 | ingress {
65 | from_port = 22
66 | to_port = 22
67 | protocol = "tcp"
68 | cidr_blocks = ["0.0.0.0/0"]
69 | }
70 | # for HTTP Apache Server
71 | ingress {
72 | from_port = 80
73 | to_port = 80
74 | protocol = "tcp"
75 | cidr_blocks = ["0.0.0.0/0"]
76 | }
77 | # for HTTPS Apache Server
78 | ingress {
79 | from_port = 443
80 | to_port = 443
81 | protocol = "tcp"
82 | cidr_blocks = ["0.0.0.0/0"]
83 | }
84 | egress {
85 | from_port = 0
86 | to_port = 0
87 | protocol = "-1"
88 | cidr_blocks = ["0.0.0.0/0"]
89 | }
90 | tags = {
91 | Name = "allow_ssh_sg"
92 | }
93 | }
Check: CKV_AWS_24: "Ensure no security groups allow ingress from 0.0.0.0:0 to port 22"
FAILED for resource: module.webserver-2.aws_security_group.ssg
File: /labs/modules/module2/main.tf:59-93
Calling File: /labs/modules/main.tf:24-32
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
59 | resource "aws_security_group" "ssg" {
60 | name = "module2_security_group" # name should be different on modules
61 | description = "Allow SSH inbound connections"
62 | vpc_id = aws_vpc.my_vpc.id
63 | # for SSH
64 | ingress {
65 | from_port = 22
66 | to_port = 22
67 | protocol = "tcp"
68 | cidr_blocks = ["0.0.0.0/0"]
69 | }
70 | # for HTTP Apache Server
71 | ingress {
72 | from_port = 80
73 | to_port = 80
74 | protocol = "tcp"
75 | cidr_blocks = ["0.0.0.0/0"]
76 | }
77 | # for HTTPS Apache Server
78 | ingress {
79 | from_port = 443
80 | to_port = 443
81 | protocol = "tcp"
82 | cidr_blocks = ["0.0.0.0/0"]
83 | }
84 | egress {
85 | from_port = 0
86 | to_port = 0
87 | protocol = "-1"
88 | cidr_blocks = ["0.0.0.0/0"]
89 | }
90 | tags = {
91 | Name = "allow_ssh_sg"
92 | }
93 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: module.webserver-2.aws_instance.ec2
File: /labs/modules/module2/main.tf:95-113
Calling File: /labs/modules/main.tf:24-32
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "** MODULE-2 **: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_8: "Ensure all data stored in the Launch configuration or instance Elastic Blocks Store is securely encrypted"
FAILED for resource: module.webserver-2.aws_instance.ec2
File: /labs/modules/module2/main.tf:95-113
Calling File: /labs/modules/main.tf:24-32
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "** MODULE-2 **: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: module.webserver-2.aws_instance.ec2
File: /labs/modules/module2/main.tf:95-113
Calling File: /labs/modules/main.tf:24-32
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "** MODULE-2 **: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: module.webserver-2.aws_instance.ec2
File: /labs/modules/module2/main.tf:95-113
Calling File: /labs/modules/main.tf:24-32
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "** MODULE-2 **: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: module.webserver-2.aws_instance.ec2
File: /labs/modules/module2/main.tf:95-113
Calling File: /labs/modules/main.tf:24-32
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "** MODULE-2 **: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV_AWS_23: "Ensure every security groups rule has a description"
FAILED for resource: aws_security_group.allow_ssh
File: /labs/provisioners-nullresources/main.tf:54-74
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
54 | resource "aws_security_group" "allow_ssh" {
55 | name = "allow_ssh_sg"
56 | description = "Allow SSH inbound connections"
57 | vpc_id = aws_vpc.my_vpc.id
58 | # for SSH
59 | ingress {
60 | from_port = 22
61 | to_port = 22
62 | protocol = "tcp"
63 | cidr_blocks = ["0.0.0.0/0"]
64 | }
65 | egress {
66 | from_port = 0
67 | to_port = 0
68 | protocol = "-1"
69 | cidr_blocks = ["0.0.0.0/0"]
70 | }
71 | tags = {
72 | Name = "allow_ssh_sg"
73 | }
74 | }
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.allow_ssh
File: /labs/provisioners-nullresources/main.tf:54-74
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
54 | resource "aws_security_group" "allow_ssh" {
55 | name = "allow_ssh_sg"
56 | description = "Allow SSH inbound connections"
57 | vpc_id = aws_vpc.my_vpc.id
58 | # for SSH
59 | ingress {
60 | from_port = 22
61 | to_port = 22
62 | protocol = "tcp"
63 | cidr_blocks = ["0.0.0.0/0"]
64 | }
65 | egress {
66 | from_port = 0
67 | to_port = 0
68 | protocol = "-1"
69 | cidr_blocks = ["0.0.0.0/0"]
70 | }
71 | tags = {
72 | Name = "allow_ssh_sg"
73 | }
74 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.ubuntu2204
File: /labs/provisioners-nullresources/main.tf:76-113
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
76 | resource "aws_instance" "ubuntu2204" {
77 |
78 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
79 | instance_type = "t2.nano"
80 | key_name = "testkey"
81 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
82 | subnet_id = aws_subnet.public.id
83 | associate_public_ip_address = true
84 |
85 | tags = {
86 | Name = "Ubuntu 22.04"
87 | }
88 |
89 | provisioner "file" {
90 | source = "test-file.txt"
91 | destination = "/home/ubuntu/test-file.txt"
92 | }
93 |
94 | provisioner "file" {
95 | content = "I want to copy this string to the destination file => server.txt (using provisioner file content)"
96 | destination = "/home/ubuntu/server.txt"
97 | }
98 |
99 | provisioner "remote-exec" {
100 | inline = [
101 | "touch hello.txt",
102 | "echo helloworld remote-exec provisioner >> hello.txt",
103 | ]
104 | }
105 |
106 | connection {
107 | type = "ssh"
108 | host = self.public_ip
109 | user = "ubuntu"
110 | private_key = file("testkey.pem")
111 | timeout = "4m"
112 | }
113 | }
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.ubuntu2204
File: /labs/provisioners-nullresources/main.tf:76-113
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
76 | resource "aws_instance" "ubuntu2204" {
77 |
78 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
79 | instance_type = "t2.nano"
80 | key_name = "testkey"
81 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
82 | subnet_id = aws_subnet.public.id
83 | associate_public_ip_address = true
84 |
85 | tags = {
86 | Name = "Ubuntu 22.04"
87 | }
88 |
89 | provisioner "file" {
90 | source = "test-file.txt"
91 | destination = "/home/ubuntu/test-file.txt"
92 | }
93 |
94 | provisioner "file" {
95 | content = "I want to copy this string to the destination file => server.txt (using provisioner file content)"
96 | destination = "/home/ubuntu/server.txt"
97 | }
98 |
99 | provisioner "remote-exec" {
100 | inline = [
101 | "touch hello.txt",
102 | "echo helloworld remote-exec provisioner >> hello.txt",
103 | ]
104 | }
105 |
106 | connection {
107 | type = "ssh"
108 | host = self.public_ip
109 | user = "ubuntu"
110 | private_key = file("testkey.pem")
111 | timeout = "4m"
112 | }
113 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.ubuntu2204
File: /labs/provisioners-nullresources/main.tf:76-113
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
76 | resource "aws_instance" "ubuntu2204" {
77 |
78 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
79 | instance_type = "t2.nano"
80 | key_name = "testkey"
81 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
82 | subnet_id = aws_subnet.public.id
83 | associate_public_ip_address = true
84 |
85 | tags = {
86 | Name = "Ubuntu 22.04"
87 | }
88 |
89 | provisioner "file" {
90 | source = "test-file.txt"
91 | destination = "/home/ubuntu/test-file.txt"
92 | }
93 |
94 | provisioner "file" {
95 | content = "I want to copy this string to the destination file => server.txt (using provisioner file content)"
96 | destination = "/home/ubuntu/server.txt"
97 | }
98 |
99 | provisioner "remote-exec" {
100 | inline = [
101 | "touch hello.txt",
102 | "echo helloworld remote-exec provisioner >> hello.txt",
103 | ]
104 | }
105 |
106 | connection {
107 | type = "ssh"
108 | host = self.public_ip
109 | user = "ubuntu"
110 | private_key = file("testkey.pem")
111 | timeout = "4m"
112 | }
113 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: aws_instance.ubuntu2204
File: /labs/provisioners-nullresources/main.tf:76-113
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
76 | resource "aws_instance" "ubuntu2204" {
77 |
78 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
79 | instance_type = "t2.nano"
80 | key_name = "testkey"
81 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
82 | subnet_id = aws_subnet.public.id
83 | associate_public_ip_address = true
84 |
85 | tags = {
86 | Name = "Ubuntu 22.04"
87 | }
88 |
89 | provisioner "file" {
90 | source = "test-file.txt"
91 | destination = "/home/ubuntu/test-file.txt"
92 | }
93 |
94 | provisioner "file" {
95 | content = "I want to copy this string to the destination file => server.txt (using provisioner file content)"
96 | destination = "/home/ubuntu/server.txt"
97 | }
98 |
99 | provisioner "remote-exec" {
100 | inline = [
101 | "touch hello.txt",
102 | "echo helloworld remote-exec provisioner >> hello.txt",
103 | ]
104 | }
105 |
106 | connection {
107 | type = "ssh"
108 | host = self.public_ip
109 | user = "ubuntu"
110 | private_key = file("testkey.pem")
111 | timeout = "4m"
112 | }
113 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.ubuntu2204
File: /labs/provisioners-nullresources/main.tf:76-113
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
76 | resource "aws_instance" "ubuntu2204" {
77 |
78 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
79 | instance_type = "t2.nano"
80 | key_name = "testkey"
81 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
82 | subnet_id = aws_subnet.public.id
83 | associate_public_ip_address = true
84 |
85 | tags = {
86 | Name = "Ubuntu 22.04"
87 | }
88 |
89 | provisioner "file" {
90 | source = "test-file.txt"
91 | destination = "/home/ubuntu/test-file.txt"
92 | }
93 |
94 | provisioner "file" {
95 | content = "I want to copy this string to the destination file => server.txt (using provisioner file content)"
96 | destination = "/home/ubuntu/server.txt"
97 | }
98 |
99 | provisioner "remote-exec" {
100 | inline = [
101 | "touch hello.txt",
102 | "echo helloworld remote-exec provisioner >> hello.txt",
103 | ]
104 | }
105 |
106 | connection {
107 | type = "ssh"
108 | host = self.public_ip
109 | user = "ubuntu"
110 | private_key = file("testkey.pem")
111 | timeout = "4m"
112 | }
113 | }
Check: CKV_AWS_273: "Ensure access is controlled through SSO and not AWS IAM defined users"
FAILED for resource: aws_iam_user.newuser
File: /labs/template/main.tf:16-18
16 | resource "aws_iam_user" "newuser" {
17 | name = "New-User" # must only contain alphanumeric characters, hyphens, underscores, commas, periods, @ symbols, plus and equals signs
18 | }
Check: CKV_AWS_40: "Ensure IAM policies are attached only to groups or roles (Reducing access management complexity may in-turn reduce opportunity for a principal to inadvertently receive or retain excessive privileges.)"
FAILED for resource: aws_iam_user_policy.instanceManageUser_assume_role
File: /labs/template/main.tf:23-61
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-iam-policies/iam-16-iam-policy-privileges-1.html
23 | resource "aws_iam_user_policy" "instanceManageUser_assume_role" {
24 | name = "EC2-S3-Lambda-DynamoDb-Policy"
25 | user = "${aws_iam_user.newuser.name}"
26 | policy = templatefile("${path.module}/policy.tftpl", {
27 | ec2_policies = [
28 | "ec2:RunInstances",
29 | "ec2:StopInstances",
30 | "ec2:StartInstances",
31 | "ec2:TerminateInstances",
32 | "ec2:TerminateInstances",
33 | "ec2:Describe*",
34 | "ec2:CreateTags",
35 | "ec2:RequestSpotInstances"
36 | ],
37 | s3_policies = [
38 | "s3:Get*",
39 | "s3:List*",
40 | "s3:Describe*",
41 | "s3-object-lambda:Get*",
42 | "s3-object-lambda:List*"
43 | ],
44 | lambda_policies = [
45 | "lambda:Create*",
46 | "lambda:List*",
47 | "lambda:Delete*",
48 | "lambda:Get*"
49 | ],
50 | dynamodb_policies = [
51 | "dynamodb:Describe*",
52 | "dynamodb:Update*",
53 | "dynamodb:Get*",
54 | "dynamodb:List*",
55 | "dynamodb:BatchGetItem",
56 | "dynamodb:Query",
57 | "dynamodb:Scan",
58 | "dynamodb:PartiQLSelect"
59 | ],
60 | })
61 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.ec2_example
File: /labs/variables-locals-output/main.tf:59-69
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
59 | resource "aws_instance" "ec2_example" {
60 |
61 | ami = var.ami
62 | instance_type = var.instance_type
63 | subnet_id = aws_subnet.my_subnet.id
64 | associate_public_ip_address = true
65 |
66 | tags = {
67 | Name = var.tag
68 | }
69 | }
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.ec2_example
File: /labs/variables-locals-output/main.tf:59-69
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
59 | resource "aws_instance" "ec2_example" {
60 |
61 | ami = var.ami
62 | instance_type = var.instance_type
63 | subnet_id = aws_subnet.my_subnet.id
64 | associate_public_ip_address = true
65 |
66 | tags = {
67 | Name = var.tag
68 | }
69 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.ec2_example
File: /labs/variables-locals-output/main.tf:59-69
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
59 | resource "aws_instance" "ec2_example" {
60 |
61 | ami = var.ami
62 | instance_type = var.instance_type
63 | subnet_id = aws_subnet.my_subnet.id
64 | associate_public_ip_address = true
65 |
66 | tags = {
67 | Name = var.tag
68 | }
69 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: aws_instance.ec2_example
File: /labs/variables-locals-output/main.tf:59-69
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
59 | resource "aws_instance" "ec2_example" {
60 |
61 | ami = var.ami
62 | instance_type = var.instance_type
63 | subnet_id = aws_subnet.my_subnet.id
64 | associate_public_ip_address = true
65 |
66 | tags = {
67 | Name = var.tag
68 | }
69 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.ec2_example
File: /labs/variables-locals-output/main.tf:59-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-ec2-is-ebs-optimized.html
59 | resource "aws_instance" "ec2_example" {
60 |
61 | ami = var.ami
62 | instance_type = var.instance_type
63 | subnet_id = aws_subnet.my_subnet.id
64 | associate_public_ip_address = true
65 |
66 | tags = {
67 | Name = var.tag
68 | }
69 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.instance
File: /labs/workspace/main.tf:20-27
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
20 | resource "aws_instance" "instance" {
21 | ami = var.ami
22 | instance_type = var.instance_type
23 |
24 | tags = {
25 | Name = local.tag
26 | }
27 | }
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.instance
File: /labs/workspace/main.tf:20-27
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
20 | resource "aws_instance" "instance" {
21 | ami = var.ami
22 | instance_type = var.instance_type
23 |
24 | tags = {
25 | Name = local.tag
26 | }
27 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.instance
File: /labs/workspace/main.tf:20-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-general-31.html
20 | resource "aws_instance" "instance" {
21 | ami = var.ami
22 | instance_type = var.instance_type
23 |
24 | tags = {
25 | Name = local.tag
26 | }
27 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.instance
File: /labs/workspace/main.tf:20-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-ec2-is-ebs-optimized.html
20 | resource "aws_instance" "instance" {
21 | ami = var.ami
22 | instance_type = var.instance_type
23 |
24 | tags = {
25 | Name = local.tag
26 | }
27 | }
Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
FAILED for resource: aws_lambda_function.main
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/main.tf:52-58
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
52 | resource "aws_lambda_function" "main" {
53 | function_name = "${var.env_namespace}_lambda"
54 | image_uri = "${var.ecr_repo_url}:latest"
55 | package_type = "Image"
56 | role = aws_iam_role.iam_for_lambda.arn
57 | source_code_hash = data.aws_ecr_image.lambda_image_latest.id
58 | }
Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
FAILED for resource: aws_lambda_function.main
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/main.tf:52-58
52 | resource "aws_lambda_function" "main" {
53 | function_name = "${var.env_namespace}_lambda"
54 | image_uri = "${var.ecr_repo_url}:latest"
55 | package_type = "Image"
56 | role = aws_iam_role.iam_for_lambda.arn
57 | source_code_hash = data.aws_ecr_image.lambda_image_latest.id
58 | }
Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
FAILED for resource: aws_lambda_function.main
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/main.tf:52-58
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
52 | resource "aws_lambda_function" "main" {
53 | function_name = "${var.env_namespace}_lambda"
54 | image_uri = "${var.ecr_repo_url}:latest"
55 | package_type = "Image"
56 | role = aws_iam_role.iam_for_lambda.arn
57 | source_code_hash = data.aws_ecr_image.lambda_image_latest.id
58 | }
Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
FAILED for resource: aws_lambda_function.main
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/main.tf:52-58
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
52 | resource "aws_lambda_function" "main" {
53 | function_name = "${var.env_namespace}_lambda"
54 | image_uri = "${var.ecr_repo_url}:latest"
55 | package_type = "Image"
56 | role = aws_iam_role.iam_for_lambda.arn
57 | source_code_hash = data.aws_ecr_image.lambda_image_latest.id
58 | }
Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
FAILED for resource: aws_lambda_function.main
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/main.tf:52-58
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
52 | resource "aws_lambda_function" "main" {
53 | function_name = "${var.env_namespace}_lambda"
54 | image_uri = "${var.ecr_repo_url}:latest"
55 | package_type = "Image"
56 | role = aws_iam_role.iam_for_lambda.arn
57 | source_code_hash = data.aws_ecr_image.lambda_image_latest.id
58 | }
Check: CKV_AWS_316: "Ensure CodeBuild project environments do not have privileged mode enabled"
FAILED for resource: module.codepipeline.aws_codebuild_project.project[0]
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:21-59
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
21 | resource "aws_codebuild_project" "project" {
22 | count = length(local.projects)
23 | name = "${var.env_namespace}_${local.projects[count.index]}"
24 | #name = "${var.org}_${var.name}_${var.attribute}_${var.env["dev"]}_codebuild_docker_build"
25 | build_timeout = "5" #The default is 60 minutes.
26 | service_role = aws_iam_role.lambda_codebuild_role.arn
27 | artifacts {
28 | type = "CODEPIPELINE"
29 | }
30 | environment {
31 | compute_type = var.codebuild_compute_type
32 | image = var.codebuild_image
33 | type = var.codebuild_type
34 | #compute_type = "BUILD_GENERAL1_MEDIUM"
35 | #image = "aws/codebuild/amazonlinux2-x86_64-standard:3.0"
36 | #type = "LINUX_CONTAINER"
37 | image_pull_credentials_type = "CODEBUILD"
38 | privileged_mode = true
39 |
40 | dynamic "environment_variable" {
41 | for_each = var.build_args
42 | content {
43 | name = environment_variable.value.name
44 | value = environment_variable.value.value
45 | }
46 | }
47 | }
48 | source {
49 | type = "CODEPIPELINE"
50 | buildspec = file("${path.module}/templates/buildspec_${local.projects[count.index]}.yml")
51 | #buildspec = file("${path.module}/stage1-buildspec.yml")
52 | }
53 |
54 | source_version = "master"
55 |
56 | tags = {
57 | env = var.env_namespace
58 | }
59 | }
Check: CKV_AWS_147: "Ensure that CodeBuild projects are encrypted using CMK"
FAILED for resource: module.codepipeline.aws_codebuild_project.project[0]
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:21-59
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
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-codebuild-projects-are-encrypted-1.html
21 | resource "aws_codebuild_project" "project" {
22 | count = length(local.projects)
23 | name = "${var.env_namespace}_${local.projects[count.index]}"
24 | #name = "${var.org}_${var.name}_${var.attribute}_${var.env["dev"]}_codebuild_docker_build"
25 | build_timeout = "5" #The default is 60 minutes.
26 | service_role = aws_iam_role.lambda_codebuild_role.arn
27 | artifacts {
28 | type = "CODEPIPELINE"
29 | }
30 | environment {
31 | compute_type = var.codebuild_compute_type
32 | image = var.codebuild_image
33 | type = var.codebuild_type
34 | #compute_type = "BUILD_GENERAL1_MEDIUM"
35 | #image = "aws/codebuild/amazonlinux2-x86_64-standard:3.0"
36 | #type = "LINUX_CONTAINER"
37 | image_pull_credentials_type = "CODEBUILD"
38 | privileged_mode = true
39 |
40 | dynamic "environment_variable" {
41 | for_each = var.build_args
42 | content {
43 | name = environment_variable.value.name
44 | value = environment_variable.value.value
45 | }
46 | }
47 | }
48 | source {
49 | type = "CODEPIPELINE"
50 | buildspec = file("${path.module}/templates/buildspec_${local.projects[count.index]}.yml")
51 | #buildspec = file("${path.module}/stage1-buildspec.yml")
52 | }
53 |
54 | source_version = "master"
55 |
56 | tags = {
57 | env = var.env_namespace
58 | }
59 | }
Check: CKV_AWS_314: "Ensure CodeBuild project environments have a logging configuration"
FAILED for resource: module.codepipeline.aws_codebuild_project.project[0]
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:21-59
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
21 | resource "aws_codebuild_project" "project" {
22 | count = length(local.projects)
23 | name = "${var.env_namespace}_${local.projects[count.index]}"
24 | #name = "${var.org}_${var.name}_${var.attribute}_${var.env["dev"]}_codebuild_docker_build"
25 | build_timeout = "5" #The default is 60 minutes.
26 | service_role = aws_iam_role.lambda_codebuild_role.arn
27 | artifacts {
28 | type = "CODEPIPELINE"
29 | }
30 | environment {
31 | compute_type = var.codebuild_compute_type
32 | image = var.codebuild_image
33 | type = var.codebuild_type
34 | #compute_type = "BUILD_GENERAL1_MEDIUM"
35 | #image = "aws/codebuild/amazonlinux2-x86_64-standard:3.0"
36 | #type = "LINUX_CONTAINER"
37 | image_pull_credentials_type = "CODEBUILD"
38 | privileged_mode = true
39 |
40 | dynamic "environment_variable" {
41 | for_each = var.build_args
42 | content {
43 | name = environment_variable.value.name
44 | value = environment_variable.value.value
45 | }
46 | }
47 | }
48 | source {
49 | type = "CODEPIPELINE"
50 | buildspec = file("${path.module}/templates/buildspec_${local.projects[count.index]}.yml")
51 | #buildspec = file("${path.module}/stage1-buildspec.yml")
52 | }
53 |
54 | source_version = "master"
55 |
56 | tags = {
57 | env = var.env_namespace
58 | }
59 | }
Check: CKV_AWS_219: "Ensure Code Pipeline Artifact store is using a KMS CMK"
FAILED for resource: module.codepipeline.aws_codepipeline.codepipeline
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:61-126
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
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-codepipeline-artifactstore-is-not-encrypted-by-key-management-service-kms-using-a-customer-managed-key-cmk.html
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_AWS_316: "Ensure CodeBuild project environments do not have privileged mode enabled"
FAILED for resource: module.codepipeline.aws_codebuild_project.project[1]
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:21-59
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
21 | resource "aws_codebuild_project" "project" {
22 | count = length(local.projects)
23 | name = "${var.env_namespace}_${local.projects[count.index]}"
24 | #name = "${var.org}_${var.name}_${var.attribute}_${var.env["dev"]}_codebuild_docker_build"
25 | build_timeout = "5" #The default is 60 minutes.
26 | service_role = aws_iam_role.lambda_codebuild_role.arn
27 | artifacts {
28 | type = "CODEPIPELINE"
29 | }
30 | environment {
31 | compute_type = var.codebuild_compute_type
32 | image = var.codebuild_image
33 | type = var.codebuild_type
34 | #compute_type = "BUILD_GENERAL1_MEDIUM"
35 | #image = "aws/codebuild/amazonlinux2-x86_64-standard:3.0"
36 | #type = "LINUX_CONTAINER"
37 | image_pull_credentials_type = "CODEBUILD"
38 | privileged_mode = true
39 |
40 | dynamic "environment_variable" {
41 | for_each = var.build_args
42 | content {
43 | name = environment_variable.value.name
44 | value = environment_variable.value.value
45 | }
46 | }
47 | }
48 | source {
49 | type = "CODEPIPELINE"
50 | buildspec = file("${path.module}/templates/buildspec_${local.projects[count.index]}.yml")
51 | #buildspec = file("${path.module}/stage1-buildspec.yml")
52 | }
53 |
54 | source_version = "master"
55 |
56 | tags = {
57 | env = var.env_namespace
58 | }
59 | }
Check: CKV_AWS_147: "Ensure that CodeBuild projects are encrypted using CMK"
FAILED for resource: module.codepipeline.aws_codebuild_project.project[1]
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:21-59
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
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-codebuild-projects-are-encrypted-1.html
21 | resource "aws_codebuild_project" "project" {
22 | count = length(local.projects)
23 | name = "${var.env_namespace}_${local.projects[count.index]}"
24 | #name = "${var.org}_${var.name}_${var.attribute}_${var.env["dev"]}_codebuild_docker_build"
25 | build_timeout = "5" #The default is 60 minutes.
26 | service_role = aws_iam_role.lambda_codebuild_role.arn
27 | artifacts {
28 | type = "CODEPIPELINE"
29 | }
30 | environment {
31 | compute_type = var.codebuild_compute_type
32 | image = var.codebuild_image
33 | type = var.codebuild_type
34 | #compute_type = "BUILD_GENERAL1_MEDIUM"
35 | #image = "aws/codebuild/amazonlinux2-x86_64-standard:3.0"
36 | #type = "LINUX_CONTAINER"
37 | image_pull_credentials_type = "CODEBUILD"
38 | privileged_mode = true
39 |
40 | dynamic "environment_variable" {
41 | for_each = var.build_args
42 | content {
43 | name = environment_variable.value.name
44 | value = environment_variable.value.value
45 | }
46 | }
47 | }
48 | source {
49 | type = "CODEPIPELINE"
50 | buildspec = file("${path.module}/templates/buildspec_${local.projects[count.index]}.yml")
51 | #buildspec = file("${path.module}/stage1-buildspec.yml")
52 | }
53 |
54 | source_version = "master"
55 |
56 | tags = {
57 | env = var.env_namespace
58 | }
59 | }
Check: CKV_AWS_314: "Ensure CodeBuild project environments have a logging configuration"
FAILED for resource: module.codepipeline.aws_codebuild_project.project[1]
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:21-59
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
21 | resource "aws_codebuild_project" "project" {
22 | count = length(local.projects)
23 | name = "${var.env_namespace}_${local.projects[count.index]}"
24 | #name = "${var.org}_${var.name}_${var.attribute}_${var.env["dev"]}_codebuild_docker_build"
25 | build_timeout = "5" #The default is 60 minutes.
26 | service_role = aws_iam_role.lambda_codebuild_role.arn
27 | artifacts {
28 | type = "CODEPIPELINE"
29 | }
30 | environment {
31 | compute_type = var.codebuild_compute_type
32 | image = var.codebuild_image
33 | type = var.codebuild_type
34 | #compute_type = "BUILD_GENERAL1_MEDIUM"
35 | #image = "aws/codebuild/amazonlinux2-x86_64-standard:3.0"
36 | #type = "LINUX_CONTAINER"
37 | image_pull_credentials_type = "CODEBUILD"
38 | privileged_mode = true
39 |
40 | dynamic "environment_variable" {
41 | for_each = var.build_args
42 | content {
43 | name = environment_variable.value.name
44 | value = environment_variable.value.value
45 | }
46 | }
47 | }
48 | source {
49 | type = "CODEPIPELINE"
50 | buildspec = file("${path.module}/templates/buildspec_${local.projects[count.index]}.yml")
51 | #buildspec = file("${path.module}/stage1-buildspec.yml")
52 | }
53 |
54 | source_version = "master"
55 |
56 | tags = {
57 | env = var.env_namespace
58 | }
59 | }
Check: CKV_AWS_289: "Ensure IAM policies does not allow permissions management / resource exposure without constraints"
FAILED for resource: module.codepipeline.aws_iam_role_policy.lambda_codepipeline_policy
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/roles.tf:20-52
Calling File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/main.tf:8-41
20 | resource "aws_iam_role_policy" "lambda_codepipeline_policy" {
21 | name = "${var.env_namespace}_codepipeline_policy"
22 | role = aws_iam_role.lambda_codepipeline_role.id
23 |
24 | policy = <Deployed via Terraform from $(hostname -f)" | sudo tee /var/www/html/index.html
111 | EOF
112 | tags = {
113 | Name = "Ubuntu 20.04"
114 | }
115 | }
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.ubuntu2004
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:97-115
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
97 | resource "aws_instance" "ubuntu2004" {
98 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
99 | instance_type = "t2.nano"
100 | key_name = "testkey"
101 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
102 | subnet_id = aws_subnet.public.id
103 | associate_public_ip_address = true
104 | user_data = <<-EOF
105 | #! /bin/bash
106 | sudo apt-get update
107 | sudo apt-get install -y apache2
108 | sudo systemctl start apache2
109 | sudo systemctl enable apache2
110 | echo "Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
111 | EOF
112 | tags = {
113 | Name = "Ubuntu 20.04"
114 | }
115 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.ubuntu2004
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:97-115
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
97 | resource "aws_instance" "ubuntu2004" {
98 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
99 | instance_type = "t2.nano"
100 | key_name = "testkey"
101 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
102 | subnet_id = aws_subnet.public.id
103 | associate_public_ip_address = true
104 | user_data = <<-EOF
105 | #! /bin/bash
106 | sudo apt-get update
107 | sudo apt-get install -y apache2
108 | sudo systemctl start apache2
109 | sudo systemctl enable apache2
110 | echo "Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
111 | EOF
112 | tags = {
113 | Name = "Ubuntu 20.04"
114 | }
115 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: aws_instance.ubuntu2004
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:97-115
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
97 | resource "aws_instance" "ubuntu2004" {
98 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
99 | instance_type = "t2.nano"
100 | key_name = "testkey"
101 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
102 | subnet_id = aws_subnet.public.id
103 | associate_public_ip_address = true
104 | user_data = <<-EOF
105 | #! /bin/bash
106 | sudo apt-get update
107 | sudo apt-get install -y apache2
108 | sudo systemctl start apache2
109 | sudo systemctl enable apache2
110 | echo "Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
111 | EOF
112 | tags = {
113 | Name = "Ubuntu 20.04"
114 | }
115 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.ubuntu2004
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:97-115
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
97 | resource "aws_instance" "ubuntu2004" {
98 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
99 | instance_type = "t2.nano"
100 | key_name = "testkey"
101 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
102 | subnet_id = aws_subnet.public.id
103 | associate_public_ip_address = true
104 | user_data = <<-EOF
105 | #! /bin/bash
106 | sudo apt-get update
107 | sudo apt-get install -y apache2
108 | sudo systemctl start apache2
109 | sudo systemctl enable apache2
110 | echo "Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
111 | EOF
112 | tags = {
113 | Name = "Ubuntu 20.04"
114 | }
115 | }
Check: CKV_AWS_126: "Ensure that detailed monitoring is enabled for EC2 instances"
FAILED for resource: aws_instance.win2019
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:117-127
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
117 | resource "aws_instance" "win2019" {
118 | ami = "ami-02c2da541ae36c6fc" # Windows 2019 Server eu-central-1 Frankfurt
119 | instance_type = "t2.micro"
120 | key_name = "testkey"
121 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
122 | subnet_id = aws_subnet.public.id
123 | associate_public_ip_address = true
124 | tags = {
125 | Name = "Win 2019 Server"
126 | }
127 | }
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.win2019
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:117-127
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
117 | resource "aws_instance" "win2019" {
118 | ami = "ami-02c2da541ae36c6fc" # Windows 2019 Server eu-central-1 Frankfurt
119 | instance_type = "t2.micro"
120 | key_name = "testkey"
121 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
122 | subnet_id = aws_subnet.public.id
123 | associate_public_ip_address = true
124 | tags = {
125 | Name = "Win 2019 Server"
126 | }
127 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.win2019
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:117-127
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
117 | resource "aws_instance" "win2019" {
118 | ami = "ami-02c2da541ae36c6fc" # Windows 2019 Server eu-central-1 Frankfurt
119 | instance_type = "t2.micro"
120 | key_name = "testkey"
121 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
122 | subnet_id = aws_subnet.public.id
123 | associate_public_ip_address = true
124 | tags = {
125 | Name = "Win 2019 Server"
126 | }
127 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: aws_instance.win2019
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:117-127
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
117 | resource "aws_instance" "win2019" {
118 | ami = "ami-02c2da541ae36c6fc" # Windows 2019 Server eu-central-1 Frankfurt
119 | instance_type = "t2.micro"
120 | key_name = "testkey"
121 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
122 | subnet_id = aws_subnet.public.id
123 | associate_public_ip_address = true
124 | tags = {
125 | Name = "Win 2019 Server"
126 | }
127 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.win2019
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:117-127
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
117 | resource "aws_instance" "win2019" {
118 | ami = "ami-02c2da541ae36c6fc" # Windows 2019 Server eu-central-1 Frankfurt
119 | instance_type = "t2.micro"
120 | key_name = "testkey"
121 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
122 | subnet_id = aws_subnet.public.id
123 | associate_public_ip_address = true
124 | tags = {
125 | Name = "Win 2019 Server"
126 | }
127 | }
Check: CKV_AWS_65: "Ensure container insights are enabled on ECS cluster"
FAILED for resource: aws_ecs_cluster.my_cluster
File: /samples/ecr-ecs-elb-vpc-ecsservice-container/2_ecs.tf:7-9
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-logging-policies/bc-aws-logging-11.html
7 | resource "aws_ecs_cluster" "my_cluster" {
8 | name = "my-cluster" # Naming the cluster
9 | }
Check: CKV_AWS_336: "Ensure ECS containers are limited to read-only access to root filesystems"
FAILED for resource: aws_ecs_task_definition.flask_app_task
File: /samples/ecr-ecs-elb-vpc-ecsservice-container/2_ecs.tf:12-36
12 | resource "aws_ecs_task_definition" "flask_app_task" {
13 | family = "flask-app-task"
14 | container_definitions = < /dev/null
129 | sudo apt-get update
130 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
131 | sudo docker run hello-world
132 | curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
133 | sudo apt-get install gitlab-runner
134 | EOF
135 | tags = {
136 | Name = "Ubuntu 20.04"
137 | }
138 | }
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.ubuntu2004
File: /samples/gitlabserver-on-premise-runner-on-EC2/main.tf:111-138
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
111 | resource "aws_instance" "ubuntu2004" {
112 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
113 | instance_type = "t2.micro"
114 | key_name = "testkey"
115 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
116 | subnet_id = aws_subnet.public.id
117 | associate_public_ip_address = true
118 | user_data = <<-EOF
119 | #! /bin/bash
120 | sudo apt-get update
121 | sudo apt-get install ca-certificates curl gnupg -y
122 | sudo install -m 0755 -d /etc/apt/keyrings
123 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
124 | sudo chmod a+r /etc/apt/keyrings/docker.gpg
125 | echo \
126 | "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
127 | "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
128 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
129 | sudo apt-get update
130 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
131 | sudo docker run hello-world
132 | curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
133 | sudo apt-get install gitlab-runner
134 | EOF
135 | tags = {
136 | Name = "Ubuntu 20.04"
137 | }
138 | }
Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
FAILED for resource: aws_instance.ubuntu2004
File: /samples/gitlabserver-on-premise-runner-on-EC2/main.tf:111-138
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
111 | resource "aws_instance" "ubuntu2004" {
112 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
113 | instance_type = "t2.micro"
114 | key_name = "testkey"
115 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
116 | subnet_id = aws_subnet.public.id
117 | associate_public_ip_address = true
118 | user_data = <<-EOF
119 | #! /bin/bash
120 | sudo apt-get update
121 | sudo apt-get install ca-certificates curl gnupg -y
122 | sudo install -m 0755 -d /etc/apt/keyrings
123 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
124 | sudo chmod a+r /etc/apt/keyrings/docker.gpg
125 | echo \
126 | "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
127 | "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
128 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
129 | sudo apt-get update
130 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
131 | sudo docker run hello-world
132 | curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
133 | sudo apt-get install gitlab-runner
134 | EOF
135 | tags = {
136 | Name = "Ubuntu 20.04"
137 | }
138 | }
Check: CKV_AWS_88: "EC2 instance should not have public IP."
FAILED for resource: aws_instance.ubuntu2004
File: /samples/gitlabserver-on-premise-runner-on-EC2/main.tf:111-138
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/public-policies/public-12.html
111 | resource "aws_instance" "ubuntu2004" {
112 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
113 | instance_type = "t2.micro"
114 | key_name = "testkey"
115 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
116 | subnet_id = aws_subnet.public.id
117 | associate_public_ip_address = true
118 | user_data = <<-EOF
119 | #! /bin/bash
120 | sudo apt-get update
121 | sudo apt-get install ca-certificates curl gnupg -y
122 | sudo install -m 0755 -d /etc/apt/keyrings
123 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
124 | sudo chmod a+r /etc/apt/keyrings/docker.gpg
125 | echo \
126 | "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
127 | "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
128 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
129 | sudo apt-get update
130 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
131 | sudo docker run hello-world
132 | curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
133 | sudo apt-get install gitlab-runner
134 | EOF
135 | tags = {
136 | Name = "Ubuntu 20.04"
137 | }
138 | }
Check: CKV_AWS_135: "Ensure that EC2 is EBS optimized"
FAILED for resource: aws_instance.ubuntu2004
File: /samples/gitlabserver-on-premise-runner-on-EC2/main.tf:111-138
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
111 | resource "aws_instance" "ubuntu2004" {
112 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
113 | instance_type = "t2.micro"
114 | key_name = "testkey"
115 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
116 | subnet_id = aws_subnet.public.id
117 | associate_public_ip_address = true
118 | user_data = <<-EOF
119 | #! /bin/bash
120 | sudo apt-get update
121 | sudo apt-get install ca-certificates curl gnupg -y
122 | sudo install -m 0755 -d /etc/apt/keyrings
123 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
124 | sudo chmod a+r /etc/apt/keyrings/docker.gpg
125 | echo \
126 | "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
127 | "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
128 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
129 | sudo apt-get update
130 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
131 | sudo docker run hello-world
132 | curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
133 | sudo apt-get install gitlab-runner
134 | EOF
135 | tags = {
136 | Name = "Ubuntu 20.04"
137 | }
138 | }
Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-container-apigateway-flaskapp/1_lambda.tf:67-74
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
67 | resource "aws_lambda_function" "lambda_function" {
68 | function_name = "Lambda-Function"
69 | role = aws_iam_role.lambda_role.arn
70 | # tag is required, "source image ... is not valid" error will pop up
71 | image_uri = "${data.aws_ecr_repository.flask_app_serverless.repository_url}:latest"
72 | package_type = "Image"
73 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
74 | }
Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-container-apigateway-flaskapp/1_lambda.tf:67-74
67 | resource "aws_lambda_function" "lambda_function" {
68 | function_name = "Lambda-Function"
69 | role = aws_iam_role.lambda_role.arn
70 | # tag is required, "source image ... is not valid" error will pop up
71 | image_uri = "${data.aws_ecr_repository.flask_app_serverless.repository_url}:latest"
72 | package_type = "Image"
73 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
74 | }
Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-container-apigateway-flaskapp/1_lambda.tf:67-74
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
67 | resource "aws_lambda_function" "lambda_function" {
68 | function_name = "Lambda-Function"
69 | role = aws_iam_role.lambda_role.arn
70 | # tag is required, "source image ... is not valid" error will pop up
71 | image_uri = "${data.aws_ecr_repository.flask_app_serverless.repository_url}:latest"
72 | package_type = "Image"
73 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
74 | }
Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-container-apigateway-flaskapp/1_lambda.tf:67-74
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
67 | resource "aws_lambda_function" "lambda_function" {
68 | function_name = "Lambda-Function"
69 | role = aws_iam_role.lambda_role.arn
70 | # tag is required, "source image ... is not valid" error will pop up
71 | image_uri = "${data.aws_ecr_repository.flask_app_serverless.repository_url}:latest"
72 | package_type = "Image"
73 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
74 | }
Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-container-apigateway-flaskapp/1_lambda.tf:67-74
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
67 | resource "aws_lambda_function" "lambda_function" {
68 | function_name = "Lambda-Function"
69 | role = aws_iam_role.lambda_role.arn
70 | # tag is required, "source image ... is not valid" error will pop up
71 | image_uri = "${data.aws_ecr_repository.flask_app_serverless.repository_url}:latest"
72 | package_type = "Image"
73 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
74 | }
Check: CKV_AWS_237: "Ensure Create before destroy for API GATEWAY"
FAILED for resource: aws_api_gateway_rest_api.example
File: /samples/lambda-container-apigateway-flaskapp/2_api_gateway.tf:2-5
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
2 | resource "aws_api_gateway_rest_api" "example" {
3 | name = "Serverless"
4 | description = "Serverless Application using Terraform"
5 | }
Check: CKV_AWS_59: "Ensure there is no open access to back-end resources through API"
FAILED for resource: aws_api_gateway_method.proxy
File: /samples/lambda-container-apigateway-flaskapp/2_api_gateway.tf:13-18
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
13 | resource "aws_api_gateway_method" "proxy" {
14 | rest_api_id = aws_api_gateway_rest_api.example.id
15 | resource_id = aws_api_gateway_resource.proxy.id
16 | http_method = "ANY" # with ANY, it allows any request method to be used, all incoming requests will match this resource
17 | authorization = "NONE"
18 | }
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: /samples/lambda-container-apigateway-flaskapp/2_api_gateway.tf:32-37
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
32 | resource "aws_api_gateway_method" "proxy_root" {
33 | rest_api_id = aws_api_gateway_rest_api.example.id
34 | resource_id = aws_api_gateway_rest_api.example.root_resource_id
35 | http_method = "ANY"
36 | authorization = "NONE"
37 | }
Check: CKV_AWS_217: "Ensure Create before destroy for API deployments"
FAILED for resource: aws_api_gateway_deployment.example
File: /samples/lambda-container-apigateway-flaskapp/2_api_gateway.tf:49-56
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
49 | resource "aws_api_gateway_deployment" "example" {
50 | depends_on = [
51 | aws_api_gateway_integration.lambda,
52 | aws_api_gateway_integration.lambda_root,
53 | ]
54 | rest_api_id = aws_api_gateway_rest_api.example.id
55 | stage_name = "test"
56 | }
Check: CKV_AWS_163: "Ensure ECR image scanning on push is enabled"
FAILED for resource: aws_ecr_repository.flask_app_serverless
File: /samples/lambda-container-apigateway-flaskapp/ecr/0_ecr.tf:12-14
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-general-policies/general-8.html
12 | resource "aws_ecr_repository" "flask_app_serverless" {
13 | name = "flask-app-serverless"
14 | }
Check: CKV_AWS_51: "Ensure ECR Image Tags are immutable"
FAILED for resource: aws_ecr_repository.flask_app_serverless
File: /samples/lambda-container-apigateway-flaskapp/ecr/0_ecr.tf:12-14
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-24.html
12 | resource "aws_ecr_repository" "flask_app_serverless" {
13 | name = "flask-app-serverless"
14 | }
Check: CKV_AWS_136: "Ensure that ECR repositories are encrypted using KMS"
FAILED for resource: aws_ecr_repository.flask_app_serverless
File: /samples/lambda-container-apigateway-flaskapp/ecr/0_ecr.tf:12-14
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-ecr-repositories-are-encrypted.html
12 | resource "aws_ecr_repository" "flask_app_serverless" {
13 | name = "flask-app-serverless"
14 | }
Check: CKV_AWS_237: "Ensure Create before destroy for API GATEWAY"
FAILED for resource: aws_api_gateway_rest_api.example
File: /samples/lambda-role-policy-apigateway-python/api-gateway.tf:2-5
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
2 | resource "aws_api_gateway_rest_api" "example" {
3 | name = "Serverless"
4 | description = "Serverless Application using Terraform"
5 | }
Check: CKV_AWS_59: "Ensure there is no open access to back-end resources through API"
FAILED for resource: aws_api_gateway_method.proxy
File: /samples/lambda-role-policy-apigateway-python/api-gateway.tf:13-18
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
13 | resource "aws_api_gateway_method" "proxy" {
14 | rest_api_id = aws_api_gateway_rest_api.example.id
15 | resource_id = aws_api_gateway_resource.proxy.id
16 | http_method = "ANY" # with ANY, it allows any request method to be used, all incoming requests will match this resource
17 | authorization = "NONE"
18 | }
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: /samples/lambda-role-policy-apigateway-python/api-gateway.tf:32-37
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
32 | resource "aws_api_gateway_method" "proxy_root" {
33 | rest_api_id = aws_api_gateway_rest_api.example.id
34 | resource_id = aws_api_gateway_rest_api.example.root_resource_id
35 | http_method = "ANY"
36 | authorization = "NONE"
37 | }
Check: CKV_AWS_217: "Ensure Create before destroy for API deployments"
FAILED for resource: aws_api_gateway_deployment.example
File: /samples/lambda-role-policy-apigateway-python/api-gateway.tf:49-56
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
49 | resource "aws_api_gateway_deployment" "example" {
50 | depends_on = [
51 | aws_api_gateway_integration.lambda,
52 | aws_api_gateway_integration.lambda_root,
53 | ]
54 | rest_api_id = aws_api_gateway_rest_api.example.id
55 | stage_name = "test"
56 | }
Check: CKV_AWS_50: "X-ray tracing is enabled for Lambda"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-role-policy-apigateway-python/lambda.tf:69-76
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
69 | resource "aws_lambda_function" "lambda_function" {
70 | filename = "${path.module}/code/main.zip"
71 | function_name = "Lambda-Function"
72 | role = aws_iam_role.lambda_role.arn
73 | handler = "main.lambda_handler"
74 | runtime = "python3.8"
75 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
76 | }
Check: CKV_AWS_272: "Ensure AWS Lambda function is configured to validate code-signing"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-role-policy-apigateway-python/lambda.tf:69-76
69 | resource "aws_lambda_function" "lambda_function" {
70 | filename = "${path.module}/code/main.zip"
71 | function_name = "Lambda-Function"
72 | role = aws_iam_role.lambda_role.arn
73 | handler = "main.lambda_handler"
74 | runtime = "python3.8"
75 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
76 | }
Check: CKV_AWS_115: "Ensure that AWS Lambda function is configured for function-level concurrent execution limit"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-role-policy-apigateway-python/lambda.tf:69-76
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
69 | resource "aws_lambda_function" "lambda_function" {
70 | filename = "${path.module}/code/main.zip"
71 | function_name = "Lambda-Function"
72 | role = aws_iam_role.lambda_role.arn
73 | handler = "main.lambda_handler"
74 | runtime = "python3.8"
75 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
76 | }
Check: CKV_AWS_116: "Ensure that AWS Lambda function is configured for a Dead Letter Queue(DLQ)"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-role-policy-apigateway-python/lambda.tf:69-76
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
69 | resource "aws_lambda_function" "lambda_function" {
70 | filename = "${path.module}/code/main.zip"
71 | function_name = "Lambda-Function"
72 | role = aws_iam_role.lambda_role.arn
73 | handler = "main.lambda_handler"
74 | runtime = "python3.8"
75 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
76 | }
Check: CKV_AWS_117: "Ensure that AWS Lambda function is configured inside a VPC"
FAILED for resource: aws_lambda_function.lambda_function
File: /samples/lambda-role-policy-apigateway-python/lambda.tf:69-76
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
69 | resource "aws_lambda_function" "lambda_function" {
70 | filename = "${path.module}/code/main.zip"
71 | function_name = "Lambda-Function"
72 | role = aws_iam_role.lambda_role.arn
73 | handler = "main.lambda_handler"
74 | runtime = "python3.8"
75 | depends_on = [aws_iam_role_policy_attachment.attach_iam_policy_to_iam_role]
76 | }
Check: CKV_AWS_289: "Ensure IAM policies does not allow permissions management / resource exposure without constraints"
FAILED for resource: aws_iam_policy.tf_mlops_policy
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/iam_roles.tf:35-307
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_AWS_355: "Ensure no IAM policies documents allow "*" as a statement's resource for restrictable actions"
FAILED for resource: aws_iam_policy.tf_mlops_policy
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/iam_roles.tf:35-307
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_AWS_290: "Ensure IAM policies does not allow write access without constraints"
FAILED for resource: aws_iam_policy.tf_mlops_policy
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/iam_roles.tf:35-307
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_AWS_219: "Ensure Code Pipeline Artifact store is using a KMS CMK"
FAILED for resource: aws_codepipeline.sm_ci_pipeline
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/modelbuild_ci_pipeline.tf:2-61
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-codepipeline-artifactstore-is-not-encrypted-by-key-management-service-kms-using-a-customer-managed-key-cmk.html
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_AWS_147: "Ensure that CodeBuild projects are encrypted using CMK"
FAILED for resource: aws_codebuild_project.tf_mlops_modelbuild
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/modelbuild_codebuild.tf:14-88
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-codebuild-projects-are-encrypted-1.html
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_GIT_2: "Ensure GitHub repository webhooks are using HTTPS"
FAILED for resource: github_repository_webhook.build_github_hook
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/modelbuild_hooks.tf:18-28
Guide: https://docs.bridgecrew.io/docs/ensure-github-organization-and-repository-webhooks-are-using-https
18 | resource "github_repository_webhook" "build_github_hook" {
19 | repository = var.build_repository_name
20 | events = ["push"]
21 |
22 | configuration {
23 | url = aws_codepipeline_webhook.buildpipeline_webhook.url
24 | insecure_ssl = "0"
25 | content_type = "json"
26 | secret = random_string.build_github_secret.result
27 | }
28 | }
Check: CKV_AWS_219: "Ensure Code Pipeline Artifact store is using a KMS CMK"
FAILED for resource: aws_codepipeline.sm_cd_pipeline
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/modeldeploy_cd_pipeline.tf:2-140
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-codepipeline-artifactstore-is-not-encrypted-by-key-management-service-kms-using-a-customer-managed-key-cmk.html
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_AWS_147: "Ensure that CodeBuild projects are encrypted using CMK"
FAILED for resource: aws_codebuild_project.tf_mlops_deploybuild
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/modeldeploy_codebuild.tf:18-112
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-codebuild-projects-are-encrypted-1.html
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_GIT_2: "Ensure GitHub repository webhooks are using HTTPS"
FAILED for resource: github_repository_webhook.deploy_hook
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/modeldeploy_hooks.tf:18-28
Guide: https://docs.bridgecrew.io/docs/ensure-github-organization-and-repository-webhooks-are-using-https
18 | resource "github_repository_webhook" "deploy_hook" {
19 | repository = var.deploy_repository_name
20 | events = ["push"]
21 |
22 | configuration {
23 | url = aws_codepipeline_webhook.deploy_webhook.url
24 | insecure_ssl = "0"
25 | content_type = "json"
26 | secret = random_string.deploy_github_secret.result
27 | }
28 | }
Check: CKV_AWS_147: "Ensure that CodeBuild projects are encrypted using CMK"
FAILED for resource: aws_codebuild_project.tf_mlops_testbuild
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/modeldeploy_testbuild.tf:1-75
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-codebuild-projects-are-encrypted-1.html
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.s3_distribution
File: /samples/s3-cloudfront-static-website/cloudfront.tf:9-115
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_34: "Ensure cloudfront distribution ViewerProtocolPolicy is set to HTTPS"
FAILED for resource: aws_cloudfront_distribution.s3_distribution
File: /samples/s3-cloudfront-static-website/cloudfront.tf:9-115
Guide: https://docs.paloaltonetworks.com/content/techdocs/en_US/prisma/prisma-cloud/prisma-cloud-code-security-policy-reference/aws-policies/aws-networking-policies/networking-32.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.s3_distribution
File: /samples/s3-cloudfront-static-website/cloudfront.tf:9-115
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.s3_distribution
File: /samples/s3-cloudfront-static-website/cloudfront.tf:9-115
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.s3_distribution
File: /samples/s3-cloudfront-static-website/cloudfront.tf:9-115
Code lines for this resource are too many. Please use IDE of your choice to review the file.
Check: CKV_AWS_186: "Ensure S3 bucket Object is encrypted by KMS using a customer managed Key (CMK)"
FAILED for resource: aws_s3_bucket_object.html
File: /samples/s3-cloudfront-static-website/s3.tf:50-58
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-106.html
50 | resource "aws_s3_bucket_object" "html" {
51 | for_each = fileset("${path.module}/website/", "*.html")
52 |
53 | bucket = aws_s3_bucket.mybucket.bucket
54 | key = each.value
55 | source = "${path.module}/website/${each.value}"
56 | etag = filemd5("${path.module}/website/${each.value}")
57 | content_type = "text/html"
58 | }
Check: CKV_AWS_186: "Ensure S3 bucket Object is encrypted by KMS using a customer managed Key (CMK)"
FAILED for resource: aws_s3_bucket_object.svg
File: /samples/s3-cloudfront-static-website/s3.tf:60-68
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-106.html
60 | resource "aws_s3_bucket_object" "svg" {
61 | for_each = fileset("${path.module}/website/", "**/*.svg")
62 |
63 | bucket = aws_s3_bucket.mybucket.bucket
64 | key = each.value
65 | source = "${path.module}/website/${each.value}"
66 | etag = filemd5("${path.module}/website/${each.value}")
67 | content_type = "image/svg+xml"
68 | }
Check: CKV_AWS_186: "Ensure S3 bucket Object is encrypted by KMS using a customer managed Key (CMK)"
FAILED for resource: aws_s3_bucket_object.css
File: /samples/s3-cloudfront-static-website/s3.tf:70-78
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-106.html
70 | resource "aws_s3_bucket_object" "css" {
71 | for_each = fileset("${path.module}/website/", "**/*.css")
72 |
73 | bucket = aws_s3_bucket.mybucket.bucket
74 | key = each.value
75 | source = "${path.module}/website/${each.value}"
76 | etag = filemd5("${path.module}/website/${each.value}")
77 | content_type = "text/css"
78 | }
Check: CKV_AWS_186: "Ensure S3 bucket Object is encrypted by KMS using a customer managed Key (CMK)"
FAILED for resource: aws_s3_bucket_object.js
File: /samples/s3-cloudfront-static-website/s3.tf:80-88
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-106.html
80 | resource "aws_s3_bucket_object" "js" {
81 | for_each = fileset("${path.module}/website/", "**/*.js")
82 |
83 | bucket = aws_s3_bucket.mybucket.bucket
84 | key = each.value
85 | source = "${path.module}/website/${each.value}"
86 | etag = filemd5("${path.module}/website/${each.value}")
87 | content_type = "application/javascript"
88 | }
Check: CKV_AWS_186: "Ensure S3 bucket Object is encrypted by KMS using a customer managed Key (CMK)"
FAILED for resource: aws_s3_bucket_object.images
File: /samples/s3-cloudfront-static-website/s3.tf:91-99
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-106.html
91 | resource "aws_s3_bucket_object" "images" {
92 | for_each = fileset("${path.module}/website/", "**/*.png")
93 |
94 | bucket = aws_s3_bucket.mybucket.bucket
95 | key = each.value
96 | source = "${path.module}/website/${each.value}"
97 | etag = filemd5("${path.module}/website/${each.value}")
98 | content_type = "image/png"
99 | }
Check: CKV_AWS_186: "Ensure S3 bucket Object is encrypted by KMS using a customer managed Key (CMK)"
FAILED for resource: aws_s3_bucket_object.json
File: /samples/s3-cloudfront-static-website/s3.tf:101-109
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-106.html
101 | resource "aws_s3_bucket_object" "json" {
102 | for_each = fileset("${path.module}/website/", "**/*.json")
103 |
104 | bucket = aws_s3_bucket.mybucket.bucket
105 | key = each.value
106 | source = "${path.module}/website/${each.value}"
107 | etag = filemd5("${path.module}/website/${each.value}")
108 | content_type = "application/json"
109 | }
Check: CKV_AWS_56: "Ensure S3 bucket has 'restrict_public_bucket' enabled"
FAILED for resource: aws_s3_bucket_public_access_block.mybucket
File: /samples/s3-cloudfront-static-website/s3.tf:136-143
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-22.html
136 | resource "aws_s3_bucket_public_access_block" "mybucket" {
137 | bucket = aws_s3_bucket.mybucket.id
138 |
139 | block_public_acls = true
140 | block_public_policy = true
141 | //ignore_public_acls = true
142 | //restrict_public_buckets = true
143 | }
Check: CKV_AWS_55: "Ensure S3 bucket has ignore public ACLs enabled"
FAILED for resource: aws_s3_bucket_public_access_block.mybucket
File: /samples/s3-cloudfront-static-website/s3.tf:136-143
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-21.html
136 | resource "aws_s3_bucket_public_access_block" "mybucket" {
137 | bucket = aws_s3_bucket.mybucket.id
138 |
139 | block_public_acls = true
140 | block_public_policy = true
141 | //ignore_public_acls = true
142 | //restrict_public_buckets = true
143 | }
Check: CKV_AWS_144: "Ensure that S3 bucket has cross-region replication enabled"
FAILED for resource: module.codepipeline.aws_s3_bucket.codepipeline_bucket
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/modules/codepipeline/main.tf:4-6
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
4 | resource "aws_s3_bucket" "codepipeline_bucket" {
5 | bucket = "${var.s3_bucket_namespace}-codepipeline-bucket"
6 | }
Check: CKV_AWS_144: "Ensure that S3 bucket has cross-region replication enabled"
FAILED for resource: aws_s3_bucket.artifacts_bucket
File: /samples/mlops-sagemaker-github-codepipeline-codebuild-codedeploy/terraform/s3.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-that-s3-bucket-has-cross-region-replication-enabled.html
1 | resource "aws_s3_bucket" "artifacts_bucket" {
2 | bucket = var.artifacts_bucket_name
3 | force_destroy = true
4 | }
Check: CKV_AWS_144: "Ensure that S3 bucket has cross-region replication enabled"
FAILED for resource: aws_s3_bucket.mybucket
File: /samples/s3-cloudfront-static-website/s3.tf:15-47
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
15 | resource "aws_s3_bucket" "mybucket" {
16 | bucket = "s3-mybucket-website2023"
17 | acl = "private"
18 | # Add specefic S3 policy in the s3-policy.json on the same directory
19 | # policy = file("s3-policy.json")
20 |
21 | versioning {
22 | enabled = false
23 | }
24 |
25 | website {
26 | index_document = "index.html"
27 | error_document = "error.html"
28 |
29 | # Add routing rules if required
30 | # routing_rules = <!! MODULE-1 !!: Deployed via Terraform from $(hostname -f)" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: module.webserver-2.aws_instance.ec2
File: /labs/modules/module2/main.tf:95-113
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
95 | resource "aws_instance" "ec2" {
96 | ami = var.ami
97 | instance_type = var.instance_type
98 | subnet_id = aws_subnet.public.id
99 | associate_public_ip_address = true
100 | vpc_security_group_ids = [aws_security_group.ssg.id]
101 | user_data = <<-EOF
102 | #! /bin/bash
103 | sudo apt-get update
104 | sudo apt-get install -y apache2
105 | sudo systemctl start apache2
106 | sudo systemctl enable apache2
107 | echo "** MODULE-2 **: Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
108 | EOF
109 | tags = {
110 | Name = var.tag
111 | }
112 |
113 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.ubuntu2204
File: /labs/provisioners-nullresources/main.tf:76-113
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
76 | resource "aws_instance" "ubuntu2204" {
77 |
78 | ami = "ami-0d1ddd83282187d18" # Ubuntu 22.04 eu-central-1 Frankfurt
79 | instance_type = "t2.nano"
80 | key_name = "testkey"
81 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
82 | subnet_id = aws_subnet.public.id
83 | associate_public_ip_address = true
84 |
85 | tags = {
86 | Name = "Ubuntu 22.04"
87 | }
88 |
89 | provisioner "file" {
90 | source = "test-file.txt"
91 | destination = "/home/ubuntu/test-file.txt"
92 | }
93 |
94 | provisioner "file" {
95 | content = "I want to copy this string to the destination file => server.txt (using provisioner file content)"
96 | destination = "/home/ubuntu/server.txt"
97 | }
98 |
99 | provisioner "remote-exec" {
100 | inline = [
101 | "touch hello.txt",
102 | "echo helloworld remote-exec provisioner >> hello.txt",
103 | ]
104 | }
105 |
106 | connection {
107 | type = "ssh"
108 | host = self.public_ip
109 | user = "ubuntu"
110 | private_key = file("testkey.pem")
111 | timeout = "4m"
112 | }
113 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.ec2_example
File: /labs/variables-locals-output/main.tf:59-69
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
59 | resource "aws_instance" "ec2_example" {
60 |
61 | ami = var.ami
62 | instance_type = var.instance_type
63 | subnet_id = aws_subnet.my_subnet.id
64 | associate_public_ip_address = true
65 |
66 | tags = {
67 | Name = var.tag
68 | }
69 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.instance
File: /labs/workspace/main.tf:20-27
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
20 | resource "aws_instance" "instance" {
21 | ami = var.ami
22 | instance_type = var.instance_type
23 |
24 | tags = {
25 | Name = local.tag
26 | }
27 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.ubuntu2004
File: /samples/ec2-ebs-efs/main.tf:104-114
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
104 | resource "aws_instance" "ubuntu2004" {
105 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
106 | instance_type = "t2.nano"
107 | key_name = "testkey"
108 | vpc_security_group_ids = [aws_security_group.sg_config.id]
109 | subnet_id = aws_subnet.public.id
110 | associate_public_ip_address = true
111 | tags = {
112 | Name = "Ubuntu 20.04"
113 | }
114 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.win2019
File: /samples/ec2-ebs-efs/main.tf:116-126
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
116 | resource "aws_instance" "win2019" {
117 | ami = "ami-02c2da541ae36c6fc" # Windows 2019 Server eu-central-1 Frankfurt
118 | instance_type = "t2.micro"
119 | key_name = "testkey"
120 | vpc_security_group_ids = [aws_security_group.sg_config.id]
121 | subnet_id = aws_subnet.public.id
122 | associate_public_ip_address = true
123 | tags = {
124 | Name = "Win 2019 Server"
125 | }
126 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.ubuntu2004
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:97-115
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
97 | resource "aws_instance" "ubuntu2004" {
98 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
99 | instance_type = "t2.nano"
100 | key_name = "testkey"
101 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
102 | subnet_id = aws_subnet.public.id
103 | associate_public_ip_address = true
104 | user_data = <<-EOF
105 | #! /bin/bash
106 | sudo apt-get update
107 | sudo apt-get install -y apache2
108 | sudo systemctl start apache2
109 | sudo systemctl enable apache2
110 | echo "Deployed via Terraform from $(hostname -f)
" | sudo tee /var/www/html/index.html
111 | EOF
112 | tags = {
113 | Name = "Ubuntu 20.04"
114 | }
115 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.win2019
File: /samples/ec2-vpc-ubuntu-win-ssh-rdp/main.tf:117-127
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
117 | resource "aws_instance" "win2019" {
118 | ami = "ami-02c2da541ae36c6fc" # Windows 2019 Server eu-central-1 Frankfurt
119 | instance_type = "t2.micro"
120 | key_name = "testkey"
121 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
122 | subnet_id = aws_subnet.public.id
123 | associate_public_ip_address = true
124 | tags = {
125 | Name = "Win 2019 Server"
126 | }
127 | }
Check: CKV2_AWS_41: "Ensure an IAM role is attached to EC2 instance"
FAILED for resource: aws_instance.ubuntu2004
File: /samples/gitlabserver-on-premise-runner-on-EC2/main.tf:111-138
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
111 | resource "aws_instance" "ubuntu2004" {
112 | ami = "ami-0e067cc8a2b58de59" # Ubuntu 20.04 eu-central-1 Frankfurt
113 | instance_type = "t2.micro"
114 | key_name = "testkey"
115 | vpc_security_group_ids = [aws_security_group.allow_ssh.id]
116 | subnet_id = aws_subnet.public.id
117 | associate_public_ip_address = true
118 | user_data = <<-EOF
119 | #! /bin/bash
120 | sudo apt-get update
121 | sudo apt-get install ca-certificates curl gnupg -y
122 | sudo install -m 0755 -d /etc/apt/keyrings
123 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
124 | sudo chmod a+r /etc/apt/keyrings/docker.gpg
125 | echo \
126 | "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
127 | "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
128 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
129 | sudo apt-get update
130 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
131 | sudo docker run hello-world
132 | curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
133 | sudo apt-get install gitlab-runner
134 | EOF
135 | tags = {
136 | Name = "Ubuntu 20.04"
137 | }
138 | }
Check: CKV2_AWS_40: "Ensure AWS IAM policy does not allow full IAM privileges"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/count/main.tf:53-59
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
Check: CKV2_AWS_40: "Ensure AWS IAM policy does not allow full IAM privileges"
FAILED for resource: aws_iam_policy_document.admin_policy
File: /labs/iamuser-metaargs-count-for-foreach-map/for_each/main.tf:53-59
53 | data "aws_iam_policy_document" "admin_policy" {
54 | statement {
55 | effect = "Allow"
56 | actions = ["*"]
57 | resources = ["*"]
58 | }
59 | }
dockerfile scan results:
Passed checks: 176, Failed checks: 8, Skipped checks: 0
Check: CKV_DOCKER_3: "Ensure that a user for the container has been created"
FAILED for resource: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/lambda/Dockerfile.
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/lambda/Dockerfile:1-6
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 public.ecr.aws/lambda/python:3.8
2 | COPY requirements.txt ${LAMBDA_TASK_ROOT}
3 | RUN pip3 install --no-cache-dir -r requirements.txt
4 | COPY aws-lambda-url.py ${LAMBDA_TASK_ROOT}
5 |
6 | CMD ["aws-lambda-url.lambda_handler"]
Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
FAILED for resource: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/lambda/Dockerfile.
File: /samples/codecommit-codepipeline-codebuild-codedeploy-lambda-container/lambda_bootstrap/lambda/Dockerfile:1-6
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 public.ecr.aws/lambda/python:3.8
2 | COPY requirements.txt ${LAMBDA_TASK_ROOT}
3 | RUN pip3 install --no-cache-dir -r requirements.txt
4 | COPY aws-lambda-url.py ${LAMBDA_TASK_ROOT}
5 |
6 | CMD ["aws-lambda-url.lambda_handler"]
Check: CKV_DOCKER_3: "Ensure that a user for the container has been created"
FAILED for resource: /samples/lambda-container-apigateway-flaskapp/flask-app-serverless/Dockerfile.
File: /samples/lambda-container-apigateway-flaskapp/flask-app-serverless/Dockerfile:1-19
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 public.ecr.aws/lambda/python:3.7
2 |
3 | WORKDIR ${LAMBDA_TASK_ROOT}
4 |
5 | COPY app ${LAMBDA_TASK_ROOT}
6 |
7 | COPY requirements.txt requirements.txt
8 |
9 | RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
10 |
11 | ENV FLASK_APP=app
12 |
13 | ENV FLASK_ENV=development
14 |
15 | EXPOSE 5000
16 |
17 | RUN python init_db.py
18 |
19 | CMD ["app.handler"]
Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
FAILED for resource: /samples/lambda-container-apigateway-flaskapp/flask-app-serverless/Dockerfile.
File: /samples/lambda-container-apigateway-flaskapp/flask-app-serverless/Dockerfile:1-19
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 public.ecr.aws/lambda/python:3.7
2 |
3 | WORKDIR ${LAMBDA_TASK_ROOT}
4 |
5 | COPY app ${LAMBDA_TASK_ROOT}
6 |
7 | COPY requirements.txt requirements.txt
8 |
9 | RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
10 |
11 | ENV FLASK_APP=app
12 |
13 | ENV FLASK_ENV=development
14 |
15 | EXPOSE 5000
16 |
17 | RUN python init_db.py
18 |
19 | CMD ["app.handler"]
Check: CKV_DOCKER_3: "Ensure that a user for the container has been created"
FAILED for resource: /samples/gitlabserver-on-premise-runner-on-EC2/test-gitlab-runner/docker-windows/Dockerfile.
File: /samples/gitlabserver-on-premise-runner-on-EC2/test-gitlab-runner/docker-windows/Dockerfile:1-17
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 | # escape=`
2 |
3 | FROM mcr.microsoft.com/windows/servercore:1809
4 |
5 | # Restore the default Windows shell for correct batch processing.
6 | SHELL ["cmd", "/S", "/C"]
7 |
8 | # install choco (win package manager like apt-get)
9 | RUN @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
10 |
11 | # install python3.7
12 | RUN choco install -y python --version=3.7.2 `
13 | && set PATH=%PATH%;C:\Python37\
14 |
15 | RUN choco install pwsh --version=7.3.3 -y
16 |
17 | CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
FAILED for resource: /samples/gitlabserver-on-premise-runner-on-EC2/test-gitlab-runner/docker-windows/Dockerfile.
File: /samples/gitlabserver-on-premise-runner-on-EC2/test-gitlab-runner/docker-windows/Dockerfile:1-17
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 | # escape=`
2 |
3 | FROM mcr.microsoft.com/windows/servercore:1809
4 |
5 | # Restore the default Windows shell for correct batch processing.
6 | SHELL ["cmd", "/S", "/C"]
7 |
8 | # install choco (win package manager like apt-get)
9 | RUN @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
10 |
11 | # install python3.7
12 | RUN choco install -y python --version=3.7.2 `
13 | && set PATH=%PATH%;C:\Python37\
14 |
15 | RUN choco install pwsh --version=7.3.3 -y
16 |
17 | CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
Check: CKV_DOCKER_3: "Ensure that a user for the container has been created"
FAILED for resource: /samples/ecr-ecs-elb-vpc-ecsservice-container/flask-app/Dockerfile.
File: /samples/ecr-ecs-elb-vpc-ecsservice-container/flask-app/Dockerfile:1-19
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 python:3.8-slim-buster
2 |
3 | WORKDIR /app
4 |
5 | COPY requirements.txt requirements.txt
6 |
7 | RUN pip3 install -r requirements.txt
8 |
9 | COPY app .
10 |
11 | ENV FLASK_APP=app
12 |
13 | ENV FLASK_ENV=development
14 |
15 | EXPOSE 5000
16 |
17 | RUN python init_db.py
18 |
19 | CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0","--port","5000"]
Check: CKV_DOCKER_2: "Ensure that HEALTHCHECK instructions have been added to container images"
FAILED for resource: /samples/ecr-ecs-elb-vpc-ecsservice-container/flask-app/Dockerfile.
File: /samples/ecr-ecs-elb-vpc-ecsservice-container/flask-app/Dockerfile:1-19
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 python:3.8-slim-buster
2 |
3 | WORKDIR /app
4 |
5 | COPY requirements.txt requirements.txt
6 |
7 | RUN pip3 install -r requirements.txt
8 |
9 | COPY app .
10 |
11 | ENV FLASK_APP=app
12 |
13 | ENV FLASK_ENV=development
14 |
15 | EXPOSE 5000
16 |
17 | RUN python init_db.py
18 |
19 | CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0","--port","5000"]
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:
- Remediate the findings identified by one of the recommended Terraform linting tools