waf.tf 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. locals {
  2. fqdns_all = concat(module.public_dns_record.forward, var.subject_alternative_names, var.fqdns)
  3. fqdns = [for fqdn in local.fqdns_all : fqdn if substr(fqdn, 0, 1) != "*"]
  4. }
  5. data "aws_vpc" "local_vpc" {
  6. id = var.vpc_id
  7. }
  8. module "waf" {
  9. count = var.waf_enabled ? 1 : 0
  10. source = "../../../submodules/wafv2"
  11. # Custom to resource
  12. allowed_ips = concat(var.allowed_ips, [data.aws_vpc.local_vpc.cidr_block]) # Always allow the local vpc access for health checks
  13. additional_blocked_ips = var.additional_blocked_ips
  14. admin_ips = var.admin_ips #concat(var.zscalar_ips, var.admin_ips)
  15. resource_arn = aws_lb.external.arn
  16. fqdns = local.fqdns
  17. # Passthrough Excluded Rules
  18. excluded_rules_AWSManagedRulesCommonRuleSet = var.excluded_rules_AWSManagedRulesCommonRuleSet
  19. excluded_rules_AWSManagedRulesAmazonIpReputationList = var.excluded_rules_AWSManagedRulesAmazonIpReputationList
  20. excluded_rules_AWSManagedRulesKnownBadInputsRuleSet = var.excluded_rules_AWSManagedRulesKnownBadInputsRuleSet
  21. excluded_rules_AWSManagedRulesSQLiRuleSet = var.excluded_rules_AWSManagedRulesSQLiRuleSet
  22. excluded_rules_AWSManagedRulesLinuxRuleSet = var.excluded_rules_AWSManagedRulesLinuxRuleSet
  23. excluded_rules_AWSManagedRulesUnixRuleSet = var.excluded_rules_AWSManagedRulesUnixRuleSet
  24. # Passthrough Excluded Rule Sets
  25. excluded_set_AWSManagedRulesCommonRuleSet = var.excluded_set_AWSManagedRulesCommonRuleSet
  26. excluded_set_AWSManagedRulesAmazonIpReputationList = var.excluded_set_AWSManagedRulesAmazonIpReputationList
  27. excluded_set_AWSManagedRulesKnownBadInputsRuleSet = var.excluded_set_AWSManagedRulesKnownBadInputsRuleSet
  28. excluded_set_AWSManagedRulesSQLiRuleSet = var.excluded_set_AWSManagedRulesSQLiRuleSet
  29. excluded_set_AWSManagedRulesLinuxRuleSet = var.excluded_set_AWSManagedRulesLinuxRuleSet
  30. excluded_set_AWSManagedRulesUnixRuleSet = var.excluded_set_AWSManagedRulesUnixRuleSet
  31. block_settings = var.block_settings
  32. # These are passed through and should be the same for module
  33. aws_partition = var.aws_partition
  34. aws_region = var.aws_region
  35. aws_account_id = var.aws_account_id
  36. tags = merge(var.tags, { Name = "${var.name}-lb-external-${var.environment}" })
  37. }