Skip to content

Commit 1b58045

Browse files
committed
CCM-8574: remove custom event
1 parent c4ee3e8 commit 1b58045

File tree

39 files changed

+1461
-2039
lines changed

39 files changed

+1461
-2039
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
resource "aws_cloudwatch_event_rule" "quarantine_guardduty_scan_failed" {
2+
name = "${local.csi}-quarantine-scan-failed"
3+
description = "Matches quarantine 'GuardDuty Malware Protection Object Scan Result' events where the scan result is not NO_THREATS_FOUND"
4+
5+
event_pattern = jsonencode({
6+
source = ["aws.guardduty"]
7+
detail-type = ["GuardDuty Malware Protection Object Scan Result"]
8+
resources = [aws_guardduty_malware_protection_plan.quarantine.arn]
9+
detail = {
10+
s3ObjectDetails = {
11+
bucketName = [module.s3bucket_quarantine.id]
12+
objectKey = [{ prefix = "pdf-template/" }, { prefix = "test-data/" }]
13+
}
14+
scanResultDetails = {
15+
scanResultStatus = [{ anything-but = "NO_THREATS_FOUND" }]
16+
}
17+
}
18+
})
19+
}
20+
21+
resource "aws_cloudwatch_event_target" "quarantine_scan_failed_set_file_status" {
22+
rule = aws_cloudwatch_event_rule.quarantine_guardduty_scan_failed.name
23+
arn = module.lambda_set_file_virus_scan_status.function_arn
24+
role_arn = aws_iam_role.quarantine_scan_failed.arn
25+
}
26+
27+
resource "aws_cloudwatch_event_target" "quarantine_scan_failed_delete_object" {
28+
rule = aws_cloudwatch_event_rule.quarantine_guardduty_scan_failed.name
29+
arn = module.lambda_delete_failed_scanned_object.function_arn
30+
role_arn = aws_iam_role.quarantine_scan_failed.arn
31+
}
32+
33+
resource "aws_iam_role" "quarantine_scan_failed" {
34+
name = "${local.csi}-quarantine-scan-failed"
35+
assume_role_policy = data.aws_iam_policy_document.events_assume_role.json
36+
}
37+
38+
resource "aws_iam_role_policy" "quarantine_scan_failed" {
39+
name = "${local.csi}-quarantine-scan-failed"
40+
role = aws_iam_role.quarantine_scan_failed.id
41+
policy = data.aws_iam_policy_document.quarantine_scan_failed.json
42+
}
43+
44+
data "aws_iam_policy_document" "quarantine_scan_failed" {
45+
version = "2012-10-17"
46+
47+
statement {
48+
sid = "AllowLambdaInvoke"
49+
effect = "Allow"
50+
actions = ["lambda:InvokeFunction"]
51+
resources = [
52+
module.lambda_set_file_virus_scan_status.function_arn,
53+
module.lambda_delete_failed_scanned_object.function_arn
54+
]
55+
}
56+
}

infrastructure/terraform/modules/backend-api/cloudwatch_event_rule_guardduty_quarantine_scan_no_threats.tf

Lines changed: 0 additions & 47 deletions
This file was deleted.
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
resource "aws_cloudwatch_event_rule" "guardduty_quarantine_scan_passed" {
2+
name = "${local.csi}-quarantine-scan-passed"
3+
description = "Matches quarantine 'GuardDuty Malware Protection Object Scan Result' events where the scan result is NO_THREATS_FOUND"
4+
5+
event_pattern = jsonencode({
6+
source = ["aws.guardduty"]
7+
detail-type = ["GuardDuty Malware Protection Object Scan Result"]
8+
resources = [aws_guardduty_malware_protection_plan.quarantine.arn]
9+
detail = {
10+
s3ObjectDetails = {
11+
bucketName = [module.s3bucket_quarantine.id]
12+
objectKey = [{ prefix = "pdf-template/" }, { prefix = "test-data/" }]
13+
}
14+
scanResultDetails = {
15+
scanResultStatus = ["NO_THREATS_FOUND"]
16+
}
17+
}
18+
})
19+
}
20+
21+
resource "aws_cloudwatch_event_target" "guardduty_quarantine_scan_passed_copy_object" {
22+
rule = aws_cloudwatch_event_rule.guardduty_quarantine_scan_passed.name
23+
arn = module.lambda_copy_scanned_object_to_internal.function_arn
24+
role_arn = aws_iam_role.guardduty_quarantine_scan_passed.arn
25+
}
26+
27+
resource "aws_cloudwatch_event_target" "guardduty_quarantine_scan_passed_set_file_status" {
28+
rule = aws_cloudwatch_event_rule.guardduty_quarantine_scan_passed.name
29+
arn = module.lambda_set_file_virus_scan_status.function_arn
30+
role_arn = aws_iam_role.guardduty_quarantine_scan_passed.arn
31+
}
32+
33+
resource "aws_cloudwatch_event_target" "guardduty_quarantine_scan_passed_validate_files" {
34+
rule = aws_cloudwatch_event_rule.guardduty_quarantine_scan_passed.name
35+
arn = module.sqs_validate_letter_template_files.sqs_queue_arn
36+
role_arn = aws_iam_role.guardduty_quarantine_scan_passed.arn
37+
}
38+
39+
resource "aws_iam_role" "guardduty_quarantine_scan_passed" {
40+
name = "${local.csi}-quarantine-scan-passed"
41+
assume_role_policy = data.aws_iam_policy_document.events_assume_role.json
42+
}
43+
44+
resource "aws_iam_role_policy" "guardduty_quarantine_scan_passed" {
45+
name = "${local.csi}-quarantine-scan-passed"
46+
role = aws_iam_role.guardduty_quarantine_scan_passed.id
47+
policy = data.aws_iam_policy_document.guardduty_quarantine_scan_passed.json
48+
}
49+
50+
data "aws_iam_policy_document" "guardduty_quarantine_scan_passed" {
51+
version = "2012-10-17"
52+
53+
statement {
54+
sid = "AllowLambdaInvoke"
55+
effect = "Allow"
56+
actions = ["lambda:InvokeFunction"]
57+
resources = [
58+
module.lambda_copy_scanned_object_to_internal.function_arn,
59+
module.lambda_set_file_virus_scan_status.function_arn,
60+
]
61+
}
62+
63+
statement {
64+
sid = "AllowSQSSendMessage"
65+
effect = "Allow"
66+
actions = ["sqs:SendMessage"]
67+
resources = [module.sqs_validate_letter_template_files.sqs_queue_arn]
68+
}
69+
70+
statement {
71+
sid = "AllowKMS"
72+
effect = "Allow"
73+
actions = [
74+
"kms:Decrypt",
75+
"kms:GenerateDataKey"
76+
]
77+
resources = [var.kms_key_arn]
78+
}
79+
}

infrastructure/terraform/modules/backend-api/cloudwatch_event_rule_guardduty_quarantine_scan_result.tf

Lines changed: 0 additions & 44 deletions
This file was deleted.

infrastructure/terraform/modules/backend-api/cloudwatch_event_rule_virus_scan_failed.tf

Lines changed: 0 additions & 42 deletions
This file was deleted.

infrastructure/terraform/modules/backend-api/cloudwatch_event_rule_virus_scan_passed.tf

Lines changed: 0 additions & 42 deletions
This file was deleted.

infrastructure/terraform/modules/backend-api/locals.tf

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,8 @@ locals {
3535
NODE_OPTIONS = "--enable-source-maps"
3636
TEMPLATES_QUARANTINE_BUCKET_NAME = module.s3bucket_quarantine.id
3737
TEMPLATES_INTERNAL_BUCKET_NAME = module.s3bucket_internal.id
38-
TEMPLATES_EVENT_BUS_NAME = data.aws_cloudwatch_event_bus.default.name
39-
TEMPLATES_EVENT_SOURCE = local.event_source
4038
TEMPLATES_TABLE_NAME = aws_dynamodb_table.templates.name
4139
}
4240

4341
dynamodb_kms_key_arn = var.dynamodb_kms_key_arn == "" ? aws_kms_key.dynamo[0].arn : var.dynamodb_kms_key_arn
44-
45-
event_source = "templates.${var.environment}.${var.project}"
4642
}

infrastructure/terraform/modules/backend-api/module_lambda_delete_failed_scanned_object.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ data "aws_iam_policy_document" "delete_failed_scanned_object" {
1919

2020
actions = [
2121
"s3:DeleteObject",
22+
"s3:DeleteObjectVersion",
2223
]
2324

2425
resources = ["${module.s3bucket_quarantine.arn}/*"]

infrastructure/terraform/modules/backend-api/module_lambda_set_letter_file_virus_scan_status.tf

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,6 @@ module "lambda_set_file_virus_scan_status" {
1414
}
1515

1616
data "aws_iam_policy_document" "set_file_virus_scan_status" {
17-
statement {
18-
sid = "AllowS3Read"
19-
effect = "Allow"
20-
21-
actions = [
22-
"s3:GetObject",
23-
"s3:GetObjectVersion",
24-
]
25-
26-
resources = ["${module.s3bucket_quarantine.arn}/*"]
27-
}
28-
2917
statement {
3018
sid = "AllowDynamoAccess"
3119
effect = "Allow"
@@ -82,16 +70,4 @@ data "aws_iam_policy_document" "set_file_virus_scan_status" {
8270
var.kms_key_arn,
8371
]
8472
}
85-
86-
statement {
87-
sid = "AllowEventBridge"
88-
effect = "Allow"
89-
actions = [
90-
"events:PutEvents"
91-
]
92-
93-
resources = [
94-
data.aws_cloudwatch_event_bus.default.arn
95-
]
96-
}
9773
}

0 commit comments

Comments
 (0)