Skip to content

Commit

Permalink
Merge pull request #6678 from Checkmarx/kics-767-pulumi
Browse files Browse the repository at this point in the history
feat(query): pulumi ECS Cluster with Container Insights Disabled
  • Loading branch information
asofsilva authored Feb 9, 2024
2 parents f45f686 + a121270 commit 065c132
Show file tree
Hide file tree
Showing 7 changed files with 112 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"id": "abcefee4-a0c1-4245-9f82-a473f79a9e2f",
"queryName": "ECS Cluster with Container Insights Disabled",
"severity": "LOW",
"category": "Observability",
"descriptionText": "ECS Cluster should enable container insights",
"descriptionUrl": "https://www.pulumi.com/registry/packages/aws/api-docs/ecs/cluster/#settings_yaml",
"platform": "Pulumi",
"descriptionID": "6fd99865",
"cloudProvider": "aws"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package Cx

import data.generic.common as common_lib
import data.generic.pulumi as plm_lib

CxPolicy[result] {
resource := input.document[i].resources[name]
resource.type == "aws:ecs:Cluster"

not common_lib.valid_key(resource.properties, "settings")

result := {
"documentId": input.document[i].id,
"resourceType": resource.type,
"resourceName": plm_lib.getResourceName(resource, name),
"searchKey": sprintf("resources[%s].properties", [name]),
"issueType": "MissingAttribute",
"keyExpectedValue": "Attribute 'settings' should be defined and have a ClusterSetting named 'containerInsights' which value is 'enabled'",
"keyActualValue": "Attribute 'settings' is not defined",
"searchLine": common_lib.build_search_line(["resources", name, "properties"], []),
}
}

CxPolicy[result] {
resource := input.document[i].resources[name]
resource.type == "aws:ecs:Cluster"

not containerInsights(resource.properties.settings)

result := {
"documentId": input.document[i].id,
"resourceType": resource.type,
"resourceName": plm_lib.getResourceName(resource, name),
"searchKey": sprintf("resources[%s].properties.settings", [name]),
"issueType": "IncorrectValue",
"keyExpectedValue": "Attribute 'settings' should have a ClusterSetting named 'containerInsights' which value is 'enabled'",
"keyActualValue": "Attribute 'settings' doesn't have a ClusterSetting named 'containerInsights' which value is 'enabled'",
"searchLine": common_lib.build_search_line(["resources", name, "properties","settings"], []),
}
}

containerInsights(settings){
settings[0].name == "containerInsights"
settings[0].value == "enabled"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: aws-eks
runtime: yaml
description: An EKS cluster
resources:
foo:
type: aws:ecs:Cluster
properties:
settings:
- name: containerInsights
value: enabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: aws-eks
runtime: yaml
description: An EKS cluster
resources:
foo:
type: aws:ecs:Cluster
properties:
settings:
- name: containerInsights
value: disabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: aws-eks
runtime: yaml
description: An EKS cluster
resources:
foo:
type: aws:ecs:Cluster
properties:
settings: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: aws-eks
runtime: yaml
description: An EKS cluster
resources:
foo:
type: aws:ecs:Cluster
properties:
description: example
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[
{
"queryName": "ECS Cluster with Container Insights Disabled",
"severity": "LOW",
"line": 8,
"fileName": "positive1.yaml"
},
{
"queryName": "ECS Cluster with Container Insights Disabled",
"severity": "LOW",
"line": 8,
"fileName": "positive2.yaml"
},
{
"queryName": "ECS Cluster with Container Insights Disabled",
"severity": "LOW",
"line": 7,
"fileName": "positive3.yaml"
}
]

0 comments on commit 065c132

Please sign in to comment.