diff --git a/terraform/README.md b/terraform/README.md index baa8be5b1..74022e5f8 100644 --- a/terraform/README.md +++ b/terraform/README.md @@ -164,6 +164,7 @@ No resources. | [cdn\_frontdoor\_origin\_host\_header\_override](#input\_cdn\_frontdoor\_origin\_host\_header\_override) | Manually specify the host header that the CDN sends to the target. Defaults to the recieved host header. Set to null to set it to the host\_name (`cdn_frontdoor_origin_fqdn_override`) | `string` | `""` | no | | [cdn\_frontdoor\_rate\_limiting\_duration\_in\_minutes](#input\_cdn\_frontdoor\_rate\_limiting\_duration\_in\_minutes) | CDN Front Door rate limiting duration in minutes | `number` | `5` | no | | [cdn\_frontdoor\_rate\_limiting\_threshold](#input\_cdn\_frontdoor\_rate\_limiting\_threshold) | Maximum number of concurrent requests per minute threshold before rate limiting is applied | `number` | n/a | yes | +| [cdn\_frontdoor\_waf\_custom\_rules](#input\_cdn\_frontdoor\_waf\_custom\_rules) | Map of all Custom rules you want to apply to the CDN WAF |
map(object({
priority : number,
action : string
match_conditions : map(object({
match_variable : string,
match_values : optional(list(string), []),
operator : optional(string, "Any"),
selector : optional(string, null),
negation_condition : optional(bool, false),
}))
}))
| `{}` | no | | [container\_app\_file\_share\_mount\_path](#input\_container\_app\_file\_share\_mount\_path) | A path inside your container where the File Share will be mounted to | `string` | `"/srv/app/storage"` | no | | [container\_apps\_allow\_ips\_inbound](#input\_container\_apps\_allow\_ips\_inbound) | Restricts access to the Container Apps by creating a network security group rule that only allow inbound traffic from the provided list of IPs | `list(string)` | `[]` | no | | [container\_command](#input\_container\_command) | Container command | `list(any)` | n/a | yes | diff --git a/terraform/container-apps-hosting.tf b/terraform/container-apps-hosting.tf index 9ff633903..82031f5d5 100644 --- a/terraform/container-apps-hosting.tf +++ b/terraform/container-apps-hosting.tf @@ -37,6 +37,7 @@ module "azure_container_apps_hosting" { enable_cdn_frontdoor = local.enable_cdn_frontdoor cdn_frontdoor_forwarding_protocol = local.cdn_frontdoor_forwarding_protocol cdn_frontdoor_enable_rate_limiting = local.cdn_frontdoor_enable_rate_limiting + cdn_frontdoor_waf_custom_rules = local.cdn_frontdoor_waf_custom_rules cdn_frontdoor_rate_limiting_threshold = local.cdn_frontdoor_rate_limiting_threshold cdn_frontdoor_rate_limiting_duration_in_minutes = local.cdn_frontdoor_rate_limiting_duration_in_minutes cdn_frontdoor_host_add_response_headers = local.cdn_frontdoor_host_add_response_headers diff --git a/terraform/locals.tf b/terraform/locals.tf index a42c078cb..51b950d4a 100644 --- a/terraform/locals.tf +++ b/terraform/locals.tf @@ -28,6 +28,7 @@ locals { container_apps_allow_ips_inbound = var.container_apps_allow_ips_inbound cdn_frontdoor_enable_rate_limiting = var.cdn_frontdoor_enable_rate_limiting cdn_frontdoor_rate_limiting_threshold = var.cdn_frontdoor_rate_limiting_threshold + cdn_frontdoor_waf_custom_rules = var.cdn_frontdoor_waf_custom_rules cdn_frontdoor_rate_limiting_duration_in_minutes = var.cdn_frontdoor_rate_limiting_duration_in_minutes cdn_frontdoor_host_add_response_headers = var.cdn_frontdoor_host_add_response_headers cdn_frontdoor_custom_domains = var.cdn_frontdoor_custom_domains diff --git a/terraform/variables.tf b/terraform/variables.tf index a30656886..8f848bb21 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -138,6 +138,22 @@ variable "cdn_frontdoor_rate_limiting_threshold" { type = number } +variable "cdn_frontdoor_waf_custom_rules" { + description = "Map of all Custom rules you want to apply to the CDN WAF" + type = map(object({ + priority : number, + action : string + match_conditions : map(object({ + match_variable : string, + match_values : optional(list(string), []), + operator : optional(string, "Any"), + selector : optional(string, null), + negation_condition : optional(bool, false), + })) + })) + default = {} +} + variable "cdn_frontdoor_host_add_response_headers" { description = "List of response headers to add at the CDN Front Door `[{ \"Name\" = \"Strict-Transport-Security\", \"value\" = \"max-age=31536000\" }]`" type = list(map(string))