demo_solution/modules/repo_terraform.azurerm.azure_firewall/variables.tf (144 lines of code) (raw):
variable "name" {
description = "Specifies the name of the Firewall."
type = string
}
variable "location" {
description = <<EOF
Specifies the supported Azure location where the resource exists.
If not specified - RG location will be used.
EOF
type = string
default = null
}
variable "resource_group_name" {
description = "The name of the resource group in which to create the resource."
type = string
}
variable "public_ip_address" {
description = <<EOF
The map which contains the name and resource group of the public ip which will
be assigned to the firewall.
EOF
type = map(string)
}
variable "firewall_policy_name" {
description = "Name of the firewall policy which will be assigned to the firewall."
type = string
default = null
}
variable "firewall_policy_rg_name" {
description = <<EOF
Name of the resource group of the firewall policy which will be assigned to the
firewall.
EOF
type = string
default = null
}
variable "sku_tier" {
description = "Sku tier of the Firewall. Possible values are Premium and Standard."
type = string
default = "Standard"
}
variable "sku_name" {
description = "Sku name of the Firewall. Possible values are AZFW_Hub and AZFW_VNet."
type = string
default = "AZFW_VNet"
}
variable "subnet_associate" {
description = <<EOF
The map which contains the names of the vnet and the subnet and resource group name
where the firewall will be created.
EOF
type = map(string)
}
variable "zones" {
description = "Specifies the availability zones in which the Azure Firewall should be created."
type = list(string)
default = null
}
variable "management_ip_configuration" {
description = <<EOF
Allows force-tunnelling of traffic to be performed by the firewall. Adding or removing this
block or changing the subnet_id in an existing block forces a new resource to be created.
EOF
type = list(map(string))
default = []
}
variable "netw_rule_collections" {
description = <<EOF
Collection contains priority, action, source addresses, destination addresses,
destination ports, protocols.
EOF
type = list(object({
name = string
priority = number
action = string
rule = list(object({
name = string
description = string
source_addresses = list(string)
source_ip_groups = list(string)
destination_addresses = list(string)
destination_ip_groups = list(string)
destination_fqdns = list(string)
destination_ports = list(string)
protocols = list(string)
}))
}))
default = []
}
variable "diagnostic_setting" {
description = <<EOF
The description of parameters for Diagnostic Setting:
`name` - specifies the name of the Diagnostic Setting;
`log_analytics_workspace_id` - ID of the Log Analytics Workspace;
`eventhub_name` - Specifies the name of the Event Hub where Diagnostics Data should be sent;
`eventhub_authorization_rule_id` - Specifies the ID of an Event Hub Namespace Authorization Rule used to send Diagnostics Data;
`storage_account_id` - the ID of the Storage Account where logs should be sent;
`log_category` - The list of Diagnostic Log Category's names for this Resource. list of available logs:
_AzureFirewallApplicationRule_ - each new connection that matches one of your configured application
rules results in a log for the accepted/denied connection;
_AzureFirewallNetworkRule_ - each new connection that matches one of your configured network rules
results in a log for the accepted/denied connection;
_AzureFirewallDnsProxy_ - this log tracks DNS messages to a DNS server configured using DNS proxy;
_AZFWNetworkRule_ - contains all Network Rule log data. Each match between data plane and network rule creates
a log entry with the data plane packet and the matched rule's attributes;
_AZFWApplicationRule_ - Contains all Application rule log data. Each match between data plane and Application
rule creates a log entry with the data plane packet and the matched rule's attributes;
_AZFWNatRule_ - contains all DNAT (Destination Network Address Translation) events log data. Each match
between data plane and DNAT rule creates a log entry with the data plane packet and the matched rule's attributes;
_AZFWThreatIntel_ - contains all Threat Intelligence events;
_AZFWIdpsSignature_ - contains all data plane packets that were matched with one or more IDPS signatures;
_AZFWDnsQuery_ - contains all DNS Proxy events log data;
_AZFWFqdnResolveFailure_ - contains all internal Firewall FQDN resolution requests that resulted in failure;
_AZFWFatFlow_ - this query returns the top flows across Azure Firewall instances. Log contains flow
information, date transmission rate (in Megabits per second units) and the time period when the flows were recorded;
_AZFWFlowTrace_ - flow logs across Azure Firewall instances. Log contains flow information, flags and the time
period when the flows were recorded;
_AZFWApplicationRuleAggregation_ - contains aggregated Application rule log data for Policy Analytics;
_AZFWNetworkRuleAggregation_ - contains aggregated Network rule log data for Policy Analytics;
_AZFWNatRuleAggregation_ - contains aggregated NAT Rule log data for Policy Analytics.
`log_category_group` - The list of Diagnostic Log Category's Group for this Resource. list of available logs: `audit`, `allLogs`;
`metric` - The list of Diagnostic Metric Category's names for this Resource. List of available Metrics: `AllMetrics`;
EOF
type = object({
name = string
log_analytics_workspace_id = optional(string)
storage_account_id = optional(string)
eventhub_name = optional(string)
eventhub_authorization_rule_id = optional(string)
log_category = optional(list(string))
log_category_group = optional(list(string))
metric = optional(list(string))
})
validation {
condition = try(var.diagnostic_setting.log_category, null) == null || try(var.diagnostic_setting.log_category_group, null) == null
error_message = "Diagnostic setting does not support mix of log category and log category group."
}
default = null
}
variable "tags" {
description = "A mapping of tags to assign to the resource."
type = map(string)
default = {}
}