-
Notifications
You must be signed in to change notification settings - Fork 0
/
user-group-mod-notification.tf
54 lines (46 loc) · 1.91 KB
/
user-group-mod-notification.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
# ------------------------------------------------------------------------------
# Create the SNS topic that allows email to be sent whenever a new IAM or SSO
# user is created or deleted, a user is added or removed from a group, or a
# group is created or deleted. Subscribe the account email to the new SNS
# topic.
# ------------------------------------------------------------------------------
data "aws_iam_policy_document" "sns_topic_access_policy_doc" {
# Allow EventBridge to publish to the SNS topic.
statement {
actions = [
"sns:Publish",
]
resources = [
# We can't use module.user_group_mod_sns.sns_topic.arn here because it
# creates a cycle; fortunately, we can create the SNS topic ARN manually.
"arn:aws:sns:${var.aws_region}:${local.cyhy_account_id}:user-or-group-modified",
]
principals {
identifiers = ["events.amazonaws.com"]
type = "Service"
}
}
}
module "user_group_mod_sns" {
providers = {
aws = aws
aws.organizations_read_only = aws.organizationsreadonly
}
source = "github.com/cisagov/sns-send-to-account-email-tf-module"
topic_access_policy = data.aws_iam_policy_document.sns_topic_access_policy_doc.json
topic_display_name = "IAM or SSO user or group modified"
topic_name = "user-or-group-modified"
}
# ------------------------------------------------------------------------------
# Create the EventBridge event rule that is triggered whenever a new IAM or SSO
# user is created or deleted, a user is added or removed from a group, or a
# group is created or deleted. Connect this rule to the SNS topic created
# above.
# ------------------------------------------------------------------------------
module "user_group_mod_event" {
providers = {
aws = aws
}
source = "github.com/cisagov/user-group-mod-alert-tf-module"
target_arn = module.user_group_mod_sns.sns_topic.arn
}