Terraform module to create a standard GuardDuty configuration in a single AWS account. These include a GuardDuty detector, filter, ipset, threatintelset, and publshing destination. GuardDuty configurations that require multiple AWS accounts are not included in this module, and the terraform code for those configurations has been implemented in seperate submodeles (see the modules section of this project).
- Creates a GuardDuty detector for this account
- Creates zero or more GuardDuty filters for this account if the filter var is not null.
- Creates zero or more GuardDuty ipsets for this account if the ipset var is not null.
- Creates zero or more GuardDuty threatintelsets for this account if the threatintelset var is not null.
- Creates a GuardDuty publishing_destination for this account if the publishing_destination var is not null.
Prerequisites: This publishing_destination resource assumes the S3 bucket associated with the destination arn exists and the required policies have been created to allow GuardDuty to access the bucket. It also assumes the kms key associated with the kms key arn exists and has a policy that allows GuardDuty to to use it.
You can find example implementations of this module in the tests folder (create_all_guardduty_standard_resources).
Name | Version |
---|---|
aws | >= 3.0 |
Name | Version |
---|---|
aws | >= 3.0 |
Name | Type |
---|
Name | Description | Type | Default | Required |
---|---|---|---|---|
enable | (Optional) Enable GuardDuty monitoring and feedback reporting. Setting to false is equivalent to 'suspending'GuardDuty. Defaults to true. | bool |
true |
no |
enable_s3_protection | (Required) If true, enables S3 Protection. Defaults to true. | bool |
true |
no |
filters | GuardDuty filter configuration list | list(object({ |
[] |
no |
finding_publishing_frequency | (Optional) Specifies the frequency of notifications sent for subsequent finding occurrences. If the detector is a GuardDuty member account, the value is determined by the GuardDuty primary account and cannot be modified, otherwise defaults to SIX_HOURS. For standalone and GuardDuty primary accounts, it must be configured in Terraform to enable drift detection. Valid values for standalone and primary accounts: FIFTEEN_MINUTES, ONE_HOUR, SIX_HOURS. | string |
"SIX_HOURS" |
no |
ipsets | GuardDuty ipset list | list(object({ |
STIX | OTX_CSV |
publishing_destination | GuardDuty publishing destination | object({ |
null |
no |
threatintelsets | GuardDuty threatintelset list | list(object({ |
STIX | OTX_CSV |
Name | Description |
---|---|
detector | GuardDuty filter |
filter | GuardDuty filter |
ipset | GuardDuty ipset |
publishing_destination | GuardDuty publishing destination |
threatintelset | GuardDuty threatintelset |