workload/terraform/modules/network/firewallrules/fwpolicy.tf (162 lines of code) (raw):
data "azurerm_firewall_policy" "fw_policy" {
name = var.fw_policy
resource_group_name = var.hub_connectivity_rg
provider = azurerm.hub
}
resource "azurerm_firewall_policy_rule_collection_group" "fw_policy_rule_collection_group" {
name = "fwpol-avd-${var.prefix}-rcg"
firewall_policy_id = data.azurerm_firewall_policy.fw_policy.id
priority = 100
provider = azurerm.hub
depends_on = [
data.azurerm_firewall_policy.fw_policy
]
### Required Network Rules for AVD
network_rule_collection {
name = "AVD-Network-Rule-Collection"
priority = 100
action = "Allow"
rule {
name = "Service Traffic"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["WindowsVirtualDesktop"]
destination_ports = ["443"]
}
rule {
name = "Agent Traffic"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["AzureMonitor"]
destination_ports = ["443"]
}
rule {
name = "Azure Marketplace"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["AzureFrontDoor.Frontend"]
destination_ports = ["443"]
}
rule {
name = "Windows Activation"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["kms.core.windows.net"]
destination_ports = ["1688"]
}
rule {
name = "Auth to Msft Online Services"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["login.microsoftonline.com "]
destination_ports = ["443"]
}
rule {
name = "Azure Windows Activation"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["azkms.core.windows.net"]
destination_ports = ["1688"]
}
rule {
name = "Agent and SxS Stack Updates"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["mrsglobalsteus2prod.blob.core.windows.net"]
destination_ports = ["443"]
}
rule {
name = "Azure Portal Support"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["wvdportalstorageblob.blob.core.windows.net"]
destination_ports = ["443"]
}
rule {
name = "Azure Instance Metadata Service Endpoint"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["169.254.169.254"]
destination_ports = ["80"]
}
rule {
name = "Session Host Health Monitoring"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["168.63.129.16"]
destination_ports = ["80"]
}
rule {
name = "Cert CRL OneOCSP"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["oneocsp.microsoft.com"]
destination_ports = ["80"]
}
rule {
name = "Cert CRL MicrosoftDotCom"
protocols = ["TCP"]
source_addresses = ["*"]
destination_addresses = ["www.microsoft.com"]
destination_ports = ["80"]
}
}
### Required Application Rules for AVD
application_rule_collection {
name = "AVD-Application-Rule-Collection"
priority = 200
action = "Allow"
rule {
name = "TelemetryService"
protocols {
type = "Https"
port = 443
}
source_addresses = ["*"]
destination_fqdns = ["*.events.data.microsoft.com"]
}
rule {
name = "Windows Update"
protocols {
type = "Https"
port = 443
}
source_addresses = ["*"]
destination_fqdns = ["*.sfx.ms"]
}
rule {
name = "UpdatesforOneDrive"
protocols {
type = "Https"
port = 443
}
source_addresses = ["*"]
destination_fqdn_tags = ["WindowsUpdate"]
}
rule {
name = "DigitcertCRL"
protocols {
type = "Https"
port = 443
}
source_addresses = ["*"]
destination_fqdns = ["*.digicert.com"]
}
rule {
name = "AzureDNSResolution"
protocols {
type = "Https"
port = 443
}
source_addresses = ["*"]
destination_fqdns = ["*.azure-dns.com"]
}
rule {
name = "AzureDNSresolution2"
protocols {
type = "Https"
port = 443
}
source_addresses = ["*"]
destination_fqdns = ["*.azure-dns.net"]
}
}
}