Skip to content

Commit 6d37ea0

Browse files
committed
feat: ecs cloud connector based on binary scanner
1 parent ed9aca5 commit 6d37ea0

File tree

4 files changed

+54
-36
lines changed

4 files changed

+54
-36
lines changed

examples/single-account-ecs/main.tf

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
locals {
2+
deploy_image_scanning = var.deploy_image_scanning_ecr || var.deploy_image_scanning_ecs
3+
deploy_scanning_infra = local.deploy_image_scanning && !var.use_standalone_scanner
4+
5+
}
16
#-------------------------------------
27
# general resources
38
#-------------------------------------
@@ -21,13 +26,13 @@ module "ssm" {
2126
#
2227

2328
module "codebuild" {
24-
count = var.deploy_image_scanning_ecr || var.deploy_image_scanning_ecs ? 1 : 0
29+
count = local.deploy_scanning_infra ? 1 : 0
2530

2631
source = "../../modules/infrastructure/codebuild"
2732
name = "${var.name}-codebuild"
2833
secure_api_token_secret_name = module.ssm.secure_api_token_secret_name
2934

30-
tags = var.tags
35+
tags = var.tags
3136
# note. this is required to avoid racing conditions
3237
depends_on = [module.ssm]
3338
}
@@ -45,6 +50,7 @@ module "cloud_connector" {
4550

4651
deploy_image_scanning_ecr = var.deploy_image_scanning_ecr
4752
deploy_image_scanning_ecs = var.deploy_image_scanning_ecs
53+
use_standalone_scanner = var.use_standalone_scanner
4854

4955
is_organizational = false
5056

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,50 @@
11
locals {
22
default_config = yamlencode(merge({
3-
logging = "info"
4-
rules = []
3+
logging = "info"
4+
rules = []
55
ingestors = [
66
{
77
cloudtrail-sns-sqs = merge(
8-
{
9-
queueURL = module.cloud_connector_sqs.cloudtrail_sns_subscribed_sqs_url
10-
},
11-
var.is_organizational ? {
12-
assumeRole = var.organizational_config.sysdig_secure_for_cloud_role_arn
13-
} : {}
8+
{
9+
queueURL = module.cloud_connector_sqs.cloudtrail_sns_subscribed_sqs_url
10+
},
11+
var.is_organizational ? {
12+
assumeRole = var.organizational_config.sysdig_secure_for_cloud_role_arn
13+
} : {}
1414
)
1515
}
1616
]
17-
},
18-
{
19-
scanners = local.deploy_image_scanning ? [
20-
merge(var.deploy_image_scanning_ecr ? {
21-
aws-ecr = merge({
22-
codeBuildProject = var.build_project_name
23-
secureAPITokenSecretName = var.secure_api_token_secret_name
24-
},
25-
var.is_organizational ? {
26-
masterOrganizationRole = var.organizational_config.sysdig_secure_for_cloud_role_arn
27-
organizationalRolePerAccount = var.organizational_config.organizational_role_per_account
28-
} : {})
29-
} : {},
30-
var.deploy_image_scanning_ecs ? {
31-
aws-ecs = merge({
32-
codeBuildProject = var.build_project_name
33-
secureAPITokenSecretName = var.secure_api_token_secret_name
34-
},
35-
var.is_organizational ? {
36-
masterOrganizationRole = var.organizational_config.sysdig_secure_for_cloud_role_arn
37-
organizationalRolePerAccount = var.organizational_config.organizational_role_per_account
38-
} : {})
17+
},
18+
{
19+
scanners = local.deploy_image_scanning ? [
20+
merge(
21+
local.ecs_scanning_with_infra ? {
22+
aws-ecr = merge({
23+
codeBuildProject = var.build_project_name
24+
secureAPITokenSecretName = var.secure_api_token_secret_name
25+
},
26+
var.is_organizational ? {
27+
masterOrganizationRole = var.organizational_config.sysdig_secure_for_cloud_role_arn
28+
organizationalRolePerAccount = var.organizational_config.organizational_role_per_account
3929
} : {})
40-
] : []
41-
}
30+
} : {},
31+
local.ecs_scanning_with_infra ? {
32+
aws-ecs = merge({
33+
codeBuildProject = var.build_project_name
34+
secureAPITokenSecretName = var.secure_api_token_secret_name
35+
},
36+
var.is_organizational ? {
37+
masterOrganizationRole = var.organizational_config.sysdig_secure_for_cloud_role_arn
38+
organizationalRolePerAccount = var.organizational_config.organizational_role_per_account
39+
} : {})
40+
} : {}),
41+
local.ecr_scanning_with_infra ? {
42+
aws-ecr-inline = {},
43+
} : {},
44+
local.ecs_standalone_scanning ? {
45+
aws-ecs-inline = {},
46+
} : {}
47+
] : []
48+
}
4249
))
4350
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
locals {
22
deploy_image_scanning = var.deploy_image_scanning_ecs || var.deploy_image_scanning_ecr
3+
deploy_scanning_infra = local.deploy_image_scanning && !var.use_standalone_scanner
4+
ecr_standalone_scanning = var.deploy_image_scanning_ecr && var.use_standalone_scanner
5+
ecs_standalone_scanning = var.deploy_image_scanning_ecs && var.use_standalone_scanner
6+
ecr_scanning_with_infra = var.deploy_image_scanning_ecr && !var.use_standalone_scanner
7+
ecs_scanning_with_infra = var.deploy_image_scanning_ecs && !var.use_standalone_scanner
38
}

modules/services/cloud-connector-ecs/permissions.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,13 @@ data "aws_iam_policy_document" "iam_role_task_policy" {
7878
# scan images
7979
#
8080
resource "aws_iam_role_policy" "trigger_scan" {
81-
count = local.deploy_image_scanning ? 1 : 0
81+
count = local.deploy_scanning_infra ? 1 : 0
8282
name = "${var.name}-TriggerScan"
8383
role = local.ecs_task_role_id
8484
policy = data.aws_iam_policy_document.trigger_scan[0].json
8585
}
8686
data "aws_iam_policy_document" "trigger_scan" {
87-
count = local.deploy_image_scanning ? 1 : 0
87+
count = local.deploy_scanning_infra ? 1 : 0
8888
statement {
8989
effect = "Allow"
9090
actions = [

0 commit comments

Comments
 (0)