# GuardDuty Detector Configuration ============================================ # Run in the delegated administrator (security) account after the # governance/organization module registers delegated_administrators # ["guardduty.amazonaws.com"]. # GuardDuty Detector ---------------------------------------------------------- resource "aws_guardduty_detector" "this" { enable = var.enable finding_publishing_frequency = var.finding_publishing_frequency tags = local.tags } # Detector Features ------------------------------------------------------------ resource "aws_guardduty_detector_feature" "this" { for_each = var.detector_features detector_id = aws_guardduty_detector.this.id name = each.key status = each.value.status dynamic "additional_configuration" { for_each = each.value.additional_configuration content { name = additional_configuration.key status = additional_configuration.value.status } } } # Organization Configuration --------------------------------------------------- resource "aws_guardduty_organization_configuration" "this" { count = var.detector_organization_configuration != null ? 1 : 0 auto_enable_organization_members = var.detector_organization_configuration.auto_enable_org_members detector_id = aws_guardduty_detector.this.id depends_on = [aws_guardduty_detector.this] } # Organization Features -------------------------------------------------------- resource "aws_guardduty_organization_configuration_feature" "this" { for_each = local.organization_features detector_id = aws_guardduty_detector.this.id name = each.key auto_enable = each.value.auto_enable dynamic "additional_configuration" { for_each = each.value.additional_configuration content { name = additional_configuration.key auto_enable = additional_configuration.value.auto_enable } } depends_on = [aws_guardduty_organization_configuration.this] }