locals { domain = "hoge" environment = "fuga" prefix = "${local.domain}-${local.environment}" } module "waf_alb" { source = "../../modules/waf_alb" prefix = local.prefix name = "waf-alb" metric_name = "waf-alb" alb_ipsets_v4 = module.waf_ipsets.waf_ipsets_alb_ipv4_arn alb_ipsets_v6 = module.waf_ipsets.waf_ipsets_alb_ipv6_arn bucket = "aws-waf-logs-api-server-prd-blah-blah" } module "waf_ipsets" { source = "../../modules/waf_ipsets" prefix = local.prefix name = "ip" } module "waf_cf" { source = "../../modules/waf_cf" prefix = local.prefix name = "waf-teacher" metric_name = "waf-teacher" cf_ipsets_v4 = module.waf_ipsets.waf_ipsets_cf_ipv4_arn cf_ipsets_v6 = module.waf_ipsets.waf_ipsets_cf_ipv6_arn bucket = "aws-waf-logs-teacher-prd-blah-blah" } resource "aws_wafv2_web_acl_association" "api_server_waf" { resource_arn = module.hoge_hoge_alb.alb_arn web_acl_arn = module.waf_alb.waf_arn } # CloudFront associated with WAF(※Module is not listed here) module "cloudfront_waf" { source = "../../modules/cloudfront_spa_cdn" prefix = local.prefix name = "spa-frontend" cloudfront_fqdn = local.hoge_teacher_web_frontend_fqdn zone_id = module.route53_zone.zone_id web_acl_id = module.waf_teacher.waf_arn } # ALB associated with WAF(※Module is not listed here) module "hoge_hoge_alb" { source = "../../modules/alb" prefix = local.prefix name = "api-alb" vpc_id = module.main_vpc.vpc_id zone_id = module.route53_zone.zone_id alb_subnets = module.main_vpc.public_subnets alb_fqdn = local.hoge_study_api_alb_fqdn target_group_port = local.hoge_study_api_server_container_port target_group_health_check_path = local.hoge_study_api_server_health_check_path }