terraform-aws-clickops-notifier

Get notified when users are taking actions in the AWS Console. More here

?️ Module Usage

Requirements

It is not strictly a requirement, that you use this with AWS ControlTower. The module has only been tested in the Log Archive account that ships with AWS ControTower.

Providers

Name Version
aws n/a
archive n/a

Inputs

Name Description Type Default Required
cloudtrail_bucket_name Bucket containing the Cloudtrail logs that you want to process. ControlTower bucket name follows this naming convention aws-controltower-logs-{{account_id}}-{{region}} string n/a yes
webhook The webhook URL for notifications. https://api.slack.com/messaging/webhooks string n/a yes
region Region where this will be deployed. Used for [getting the correct lambda layer] string n/a yes
message_format Where do you want to send this message? Only slack, for now. string "slack" no
excluded_accounts List of accounts that be excluded for scans on manual actions. These take precidence over included_accounts list(string) [] no
included_accounts List of accounts that be scanned to manual actions. If empty will scan all accounts. list(string) [] no
excluded_users List of email addresses will not be reported on when practicing ClickOps. list(string) [] no
included_users List of emails that be scanned to manual actions. If empty will scan all emails. list(string) [] no
naming_prefix Resources will be prefixed with this string "clickops-notifier" no
tags Tags to add to resources in addition to the default_tags for the provider map(string) {} no
event_processing_timeout Maximum number of seconds the lambda is allowed to run and number of seconds events should be hidden in SQS after being picked up my Lambda. number 60 no
event_batch_size Batch events into chunks of event_batch_size number 10 no
event_maximum_batching_window Maximum batching window in seconds. number 300 no
log_retention_in_days Number of days to keep CloudWatch logs number 14 no

? Test Drive

Setup your AWS credentails such that aws sts get-caller-identity | grep Account gives you your ControlTower Log Archive account id.

cd sample

terraform init
terraform plan -out=plan

# var.cloudtrail_bucket_name
#   Enter a value: aws-controltower-logs-123456789012-eu-west-1

# var.region
#   Enter a value: eu-west-1

# var.webhook
#   Enter a value: https://hooks.slack.com/services/xxx/xxx/xxx

terraform apply plan

GitHub

View Github