Module version | Terraform version | AzureRM version |
---|---|---|
>= 1.x.x | >= 1.9.x | >= 3.112.0 |
resource "azurerm_resource_group" "rg" {
name = "resource-group"
location = "Spain Central"
}
module "application_gateway_firewall_policy" {
source = "aztfm/application-gateway-firewall-policy/azurerm"
version = ">=1.0.0"
name = "application-gateway-firewall-policy"
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
tags = azurerm_resource_group.rg.tags
managed_rule_sets = [{
type = "OWASP"
version = "3.2"
}, {
type = "Microsoft_BotManagerRuleSet"
version = "1.0"
}]
}
Reference to more examples.
The following parameters are supported:
Name | Description | Type | Default | Required |
---|---|---|---|---|
name | The name of the Application Gateway Firewall Policy. | string |
n/a | yes |
resource_group_name | The name of the resource group in which to create the Application Gateway Firewall Policy. | string |
n/a | yes |
location | The location/region where the Application Gateway Firewall Policy is created. | string |
n/a | yes |
tags | A mapping of tags to assign to the resource. | map(string) |
{} |
no |
enabled | Describes if the policy is in enabled state or disabled state. | bool |
true |
no |
mode | Describes if it is in detection mode or prevention mode at the policy level. Valid values are Detection and Prevention . |
string |
"Prevention" |
no |
request_body_inspect_limit_in_kb | The maximum request body inspection size in KB for the policy. | number |
128 |
no |
max_request_body_size_in_kb | The maximum request body size in KB for the policy. | number |
128 |
no |
file_upload_limit_in_mb | The maximum file upload size in MB for the policy. | number |
100 |
no |
managed_rule_sets | A mapping of managed rule set types and versions to associate with the policy. | list(object({})) |
n/a | yes |
managed_rule_exclusions | A mapping of managed rule exclusions to associate with the policy. | list(object({})) |
[] |
no |
The managed_rule_sets
supports the following:
Name | Description | Type | Default | Required |
---|---|---|---|---|
type | The rule set type. Possible values: Microsoft_BotManagerRuleSet , Microsoft_DefaultRuleSet and OWASP . |
string |
n/a | yes |
version | The rule set version. Possible values: 0.1 , 1.0 , 2.1 , 3.0 , 3.1 and 3.2 . |
string |
n/a | yes |
The managed_rule_exclusions
supports the following:
Name | Description | Type | Default | Required |
---|---|---|---|---|
match_variable | The name of the Match Variable. Possible values: RequestArgKeys , RequestArgNames , RequestArgValues , RequestCookieKeys , RequestCookieNames , RequestCookieValues , RequestHeaderKeys , RequestHeaderNames and RequestHeaderValues . |
string |
n/a | yes |
selector_match_operator | Describes operator to be matched. Possible values: Contains , EndsWith , Equals , EqualsAny and StartsWith . |
string |
n/a | yes |
selector | Describes field of the matchVariable collection. | string |
n/a | yes |
rule_set | The rule set to be excluded. | object({}) |
null |
no |
The managed_rule_exclusions.rule_set
supports the following:
Name | Description | Type | Default | Required |
---|---|---|---|---|
type | The rule set type. The only possible value include Microsoft_DefaultRuleSet and OWASP . |
string |
n/a | yes |
rule_groups | The rule groups to exclude from the rule set. | list(object({}) |
[] |
no |
The managed_rule_exclusions.rule_set.rule_groups
supports the following:
Name | Description | Type | Default | Required |
---|---|---|---|---|
rule_group_name | The name of the Rule Group. Possible values are BadBots , crs_20_protocol_violations , crs_21_protocol_anomalies , crs_23_request_limits , crs_30_http_policy , crs_35_bad_robots , crs_40_generic_attacks , crs_41_sql_injection_attacks , crs_41_xss_attacks , crs_42_tight_security , crs_45_trojans , crs_49_inbound_blocking , General , GoodBots , KnownBadBots , Known-CVEs , REQUEST-911-METHOD-ENFORCEMENT , REQUEST-913-SCANNER-DETECTION , REQUEST-920-PROTOCOL-ENFORCEMENT , REQUEST-921-PROTOCOL-ATTACK , REQUEST-930-APPLICATION-ATTACK-LFI , REQUEST-931-APPLICATION-ATTACK-RFI , REQUEST-932-APPLICATION-ATTACK-RCE , REQUEST-933-APPLICATION-ATTACK-PHP , REQUEST-941-APPLICATION-ATTACK-XSS , REQUEST-942-APPLICATION-ATTACK-SQLI , REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION , REQUEST-944-APPLICATION-ATTACK-JAVA , UnknownBots , METHOD-ENFORCEMENT , PROTOCOL-ENFORCEMENT , PROTOCOL-ATTACK , LFI , RFI , RCE , PHP , NODEJS , XSS , SQLI , FIX , JAVA , MS-ThreatIntel-WebShells , MS-ThreatIntel-AppSec , MS-ThreatIntel-SQLI , MS-ThreatIntel-CVEs , MS-ThreatIntel-AppSec , MS-ThreatIntel-SQLI and MS-ThreatIntel-CVEs . |
string |
n/a | yes |
excluded_rules | One or more Rule IDs for exclusion. | list(number) |
[] |
no |
The following outputs are exported:
Name | Description | Sensitive |
---|---|---|
id | The ID of Application Gateway Firewall Policy. | no |