forked from USSBA/terraform-aws-inspector
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
76 lines (68 loc) · 2.34 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
locals {
scheduled_count = var.enable_scheduled_event ? 1 : 0
assessment_ruleset = compact([
var.ruleset_cis ? "arn:aws:inspector:us-east-1:316112463485:rulespackage/0-rExsr2X8" : "",
var.ruleset_cve ? "arn:aws:inspector:us-east-1:316112463485:rulespackage/0-gEjTy7T7" : "",
var.ruleset_network_reachability ? "arn:aws:inspector:us-east-1:316112463485:rulespackage/0-PmNV0Tcd" : "",
var.ruleset_security_best_practices ? "arn:aws:inspector:us-east-1:316112463485:rulespackage/0-R01qwB5Q" : "",
]
)
}
data "aws_iam_policy_document" "inspector_event_role_policy" {
count = local.scheduled_count
statement {
sid = "StartAssessment"
actions = [
"inspector:StartAssessmentRun",
]
resources = [
"*"
]
}
}
resource "aws_inspector_assessment_target" "assessment" {
name = "${var.name_prefix}-assessment-target"
}
resource "aws_inspector_assessment_template" "assessment" {
name = "${var.name_prefix}-assessment-template"
target_arn = aws_inspector_assessment_target.assessment.arn
duration = var.assessment_duration
rules_package_arns = local.assessment_ruleset
}
resource "aws_iam_role" "inspector_event_role" {
count = local.scheduled_count
name = "${var.name_prefix}-inspector-event-role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "events.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
resource "aws_iam_role_policy" "inspector_event" {
count = local.scheduled_count
name = "${var.name_prefix}-inspector-event-policy"
role = aws_iam_role.inspector_event_role[0].id
policy = data.aws_iam_policy_document.inspector_event_role_policy[0].json
}
resource "aws_cloudwatch_event_rule" "inspector_event_schedule" {
count = local.scheduled_count
name = "${var.name_prefix}-inspector-schedule"
description = "Trigger an Inspector Assessment"
schedule_expression = var.schedule_expression
}
resource "aws_cloudwatch_event_target" "inspector_event_target" {
count = local.scheduled_count
rule = aws_cloudwatch_event_rule.inspector_event_schedule[0].name
arn = aws_inspector_assessment_template.assessment.arn
role_arn = aws_iam_role.inspector_event_role[0].arn
}