Migrace na Azure Firewall Premium
Azure Firewall Úrovně Standard můžete migrovat na Azure Firewall Premium, abyste mohli využívat nové funkce Premium. Další informace o funkcích služby Azure Firewall Premium najdete v tématu Funkce služby Azure Firewall Premium.
Tento článek vás provede požadovanými kroky ruční migrace standardní brány firewall a zásad na Premium.
Tip
Nejjednodušší způsob, jak změnit skladovou položku služby Azure Firewall bez výpadků, je použít funkci Změnit skladovou položku. Další informace najdete v tématu Snadné upgrade nebo downgrade služby Azure Firewall.
Než začnete s migrací, seznamte se s aspekty výkonu a naplánujte předem požadované časové období údržby . Očekává se typická doba výpadku 20 až 30 minut.
Pro úspěšnou migraci se vyžadují následující obecné kroky:
- Vytvořte nové zásady Premium na základě stávajících standardních zásad nebo klasických pravidel. Na konci tohoto kroku budou vaše nové zásady Premium zahrnovat všechna vaše stávající pravidla a nastavení zásad.
- Migrace služby Azure Firewall ze standardu na Premium s využitím zastavení a spuštění
- Připojte nově vytvořené zásady Premium k bráně Firewall úrovně Premium.
Důležité
Upgrade standardní brány firewall nasazené v jihovýchodní Asii s Zóny dostupnosti se v současné době nepodporuje.
Pokud k nasazení služby Azure Firewall použijete Terraform, můžete k migraci na Azure Firewall Premium použít Terraform. Další informace najdete v tématu Migrace služby Azure Firewall Standard na Premium pomocí Terraformu.
Důležité informace o výkonu
Při migraci ze standardní skladové položky je potřeba zvážit výkon. Kontrola ZPS a TLS jsou výpočetní operace náročné na výpočetní výkon. Skladová položka Premium používá výkonnější skladovou položku virtuálního počítače, která se škáluje na vyšší propustnost srovnatelnou se standardní skladovou jednotkou. Další informace o výkonu služby Azure Firewall najdete v tématu Výkon služby Azure Firewall.
Microsoft doporučuje zákazníkům provádět kompletní testování v nasazení Azure, aby zajistil, že výkon služby firewall splňuje vaše očekávání.
Odstávka
Migrujte bránu firewall během plánované doby údržby, protože při migraci služby Azure Firewall ze standardu na Premium dojde k výpadku pomocí zastavení a spuštění.
Migrace klasických pravidel na zásady Standard
Během procesu migrace možná budete muset migrovat pravidla klasické brány firewall na standardní zásady. Můžete to udělat pomocí webu Azure Portal:
Na webu Azure Portal vyberte standardní bránu firewall. Na stránce Přehled vyberte Možnost Migrovat na zásady brány firewall.
Na stránce Migrovat na zásadu brány firewall vyberte Zkontrolovat a vytvořit.
Vyberte Vytvořit.
Dokončení nasazení trvá několik minut.
K vytvoření zásad můžete také migrovat existující klasická pravidla ze služby Azure Firewall pomocí Azure PowerShellu. Další informace najdete v tématu Migrace konfigurací služby Azure Firewall do zásad služby Azure Firewall pomocí PowerShellu.
Migrace existujících zásad pomocí Azure PowerShellu
Transform-Policy.ps1
je skript Azure PowerShellu, který vytvoří novou zásadu Premium z existující zásady Standard.
Vzhledem ke standardnímu ID zásad brány firewall ho skript transformuje na zásady brány firewall Azure Úrovně Premium. Skript se nejprve připojí k vašemu účtu Azure, načte zásady, transformuje nebo přidá různé parametry a pak nahraje novou zásadu Premium. Nová zásada Premium má název <previous_policy_name>_premium
. Pokud se jedná o transformaci podřízené zásady, zůstane odkaz na nadřazenou zásadu.
Příklad použití:
Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name
Důležité
Skript nemigruje nastavení analýzy hrozeb a privátních rozsahů SNAT. Než budete pokračovat, musíte si tato nastavení poznamenat a migrovat je ručně. V opačném případě může dojít k nekonzistentnímu filtrování provozu s novou upgradovanou bránou firewall.
Tento skript vyžaduje nejnovější Azure PowerShell. Spuštěním zjistíte Get-Module -ListAvailable Az
, které verze jsou nainstalované. Pokud potřebujete nainstalovat, přečtěte si téma Instalace modulu Azure PowerShellu.
<#
.SYNOPSIS
Given an Azure firewall policy id the script will transform it to a Premium Azure firewall policy.
The script will first pull the policy, transform/add various parameters and then upload a new premium policy.
The created policy will be named <previous_policy_name>_premium if no new name provided else new policy will be named as the parameter passed.
.Example
Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name -NewPolicyName <optional param for the new policy name>
#>
param (
#Resource id of the azure firewall policy.
[Parameter(Mandatory=$true)]
[string]
$PolicyId,
#new filewallpolicy name, if not specified will be the previous name with the '_premium' suffix
[Parameter(Mandatory=$false)]
[string]
$NewPolicyName = ""
)
$ErrorActionPreference = "Stop"
$script:PolicyId = $PolicyId
$script:PolicyName = $NewPolicyName
function ValidatePolicy {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[Object]
$Policy
)
Write-Host "Validating resource is as expected"
if ($null -eq $Policy) {
Write-Error "Received null policy"
exit(1)
}
if ($Policy.GetType().Name -ne "PSAzureFirewallPolicy") {
Write-Error "Resource must be of type Microsoft.Network/firewallPolicies"
exit(1)
}
if ($Policy.Sku.Tier -eq "Premium") {
Write-Host "Policy is already premium" -ForegroundColor Green
exit(1)
}
}
function GetPolicyNewName {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[Microsoft.Azure.Commands.Network.Models.PSAzureFirewallPolicy]
$Policy
)
if (-not [string]::IsNullOrEmpty($script:PolicyName)) {
return $script:PolicyName
}
return $Policy.Name + "_premium"
}
function TransformPolicyToPremium {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[Microsoft.Azure.Commands.Network.Models.PSAzureFirewallPolicy]
$Policy
)
$NewPolicyParameters = @{
Name = (GetPolicyNewName -Policy $Policy)
ResourceGroupName = $Policy.ResourceGroupName
Location = $Policy.Location
BasePolicy = $Policy.BasePolicy.Id
ThreatIntelMode = $Policy.ThreatIntelMode
ThreatIntelWhitelist = $Policy.ThreatIntelWhitelist
PrivateRange = $Policy.PrivateRange
DnsSetting = $Policy.DnsSettings
SqlSetting = $Policy.SqlSetting
ExplicitProxy = $Policy.ExplicitProxy
DefaultProfile = $Policy.DefaultProfile
Tag = $Policy.Tag
SkuTier = "Premium"
}
Write-Host "Creating new policy"
$premiumPolicy = New-AzFirewallPolicy @NewPolicyParameters
Write-Host "Populating rules in new policy"
foreach ($ruleCollectionGroup in $Policy.RuleCollectionGroups) {
$ruleResource = Get-AzResource -ResourceId $ruleCollectionGroup.Id
$ruleToTransfom = Get-AzFirewallPolicyRuleCollectionGroup -AzureFirewallPolicy $Policy -Name $ruleResource.Name
$ruleCollectionGroup = @{
FirewallPolicyObject = $premiumPolicy
Priority = $ruleToTransfom.Properties.Priority
Name = $ruleToTransfom.Name
}
if ($ruleToTransfom.Properties.RuleCollection.Count) {
$ruleCollectionGroup["RuleCollection"] = $ruleToTransfom.Properties.RuleCollection
}
Set-AzFirewallPolicyRuleCollectionGroup @ruleCollectionGroup
}
}
function ValidateAzNetworkModuleExists {
Write-Host "Validating needed module exists"
$networkModule = Get-InstalledModule -Name "Az.Network" -MinimumVersion 4.5 -ErrorAction SilentlyContinue
if ($null -eq $networkModule) {
Write-Host "Please install Az.Network module version 4.5.0 or higher, see instructions: https://github.com/Azure/azure-powershell#installation"
exit(1)
}
$resourceModule = Get-InstalledModule -Name "Az.Resources" -MinimumVersion 4.2 -ErrorAction SilentlyContinue
if ($null -eq $resourceModule) {
Write-Host "Please install Az.Resources module version 4.2.0 or higher, see instructions: https://github.com/Azure/azure-powershell#installation"
exit(1)
}
Import-Module Az.Network -MinimumVersion 4.5.0
Import-Module Az.Resources -MinimumVersion 4.2.0
}
ValidateAzNetworkModuleExists
$policy = Get-AzFirewallPolicy -ResourceId $script:PolicyId
ValidatePolicy -Policy $policy
TransformPolicyToPremium -Policy $policy
Migrace služby Azure Firewall pomocí zastavení/spuštění
Pokud používáte skladovou položku Azure Firewall Standard se zásadami brány firewall, můžete pomocí metody Přidělení nebo zrušení přidělení migrovat skladovou položku brány firewall na úroveň Premium. Tento přístup k migraci se podporuje v bráně firewall virtuální sítě i brány firewall zabezpečeného centra. Při migraci nasazení zabezpečeného centra se zachová veřejná IP adresa brány firewall.
Minimální požadavek na verzi Azure PowerShellu je 6.5.0. Další informace najdete v tématu Az 6.5.0.
Migrace brány firewall centra virtuální sítě
Zrušení přidělení standardní brány firewall
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Přidělení brány firewall Premium (jedna veřejná IP adresa)
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Sku.Tier="Premium" $vnet = Get-AzVirtualNetwork -ResourceGroupName "<resource-group-name>" -Name "<Virtual-Network-Name>" $publicip = Get-AzPublicIpAddress -Name "<Firewall-PublicIP-name>" -ResourceGroupName "<resource-group-name>" $azfw.Allocate($vnet,$publicip) Set-AzFirewall -AzureFirewall $azfw
Přidělení brány firewall Premium (více veřejných IP adres)
$azfw = Get-AzFirewall -Name "FW Name" -ResourceGroupName "RG Name" $azfw.Sku.Tier="Premium" $vnet = Get-AzVirtualNetwork -ResourceGroupName "RG Name" -Name "VNet Name" $publicip1 = Get-AzPublicIpAddress -Name "Public IP1 Name" -ResourceGroupName "RG Name" $publicip2 = Get-AzPublicIpAddress -Name "Public IP2 Name" -ResourceGroupName "RG Name" $azfw.Allocate($vnet,@($publicip1,$publicip2)) Set-AzFirewall -AzureFirewall $azfw
Přidělení brány firewall Premium v režimu vynucených tunelů
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Sku.Tier="Premium" $vnet = Get-AzVirtualNetwork -ResourceGroupName "<resource-group-name>" -Name "<Virtual-Network-Name>" $publicip = Get-AzPublicIpAddress -Name "<Firewall-PublicIP-name>" -ResourceGroupName "<resource-group-name>" $mgmtPip = Get-AzPublicIpAddress -ResourceGroupName "<resource-group-name>"-Name "<Management-PublicIP-name>" $azfw.Allocate($vnet,$publicip,$mgmtPip) Set-AzFirewall -AzureFirewall $azfw
Migrace brány firewall zabezpečeného centra
Zrušení přidělení standardní brány firewall
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Přidělení brány firewall Premium
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $hub = get-azvirtualhub -ResourceGroupName "<resource-group-name>" -name "<vWANhub-name>" $azfw.Sku.Tier="Premium" $azfw.Allocate($hub.id) Set-AzFirewall -AzureFirewall $azfw
Připojení zásad Premium k bráně Firewall úrovně Premium
K nové bráně Firewall úrovně Premium můžete připojit zásadu Premium pomocí webu Azure Portal: