Migrace na Azure Firewall Premium

Můžete migrovat Azure Firewall Standard do Azure Firewall Premium, abyste mohli využívat nové funkce Premium. Další informace o funkcích Azure Firewall Premium najdete v tématu funkce Azure Firewall Premium.

Tento článek vás provede požadovanými kroky pro ruční migraci standardní brány firewall a zásad na premium.

Tip

Nejjednodušší způsob, jak změnit skladovou položku Azure Firewall bez výpadků, je použít funkci Změnit skladovou položku. Další informace najdete v tématu Azure Firewall snadný upgrade nebo downgrade.

Než začnete s migrací, seznamte se s aspekty výkonu a naplánujte si předem požadované časové období údržby. Očekává se typická doba výpadku 20 až 30 minut.

Pro úspěšnou migraci jsou vyžadovány následující obecné kroky:

  1. Vytvořte nové zásady Premium na základě vašich stávajících zásad Standard nebo klasických pravidel. Na konci tohoto kroku budou vaše nové prémiové zásady zahrnovat všechna vaše stávající pravidla a nastavení zásad.
  2. Migrace Azure Firewall ze standardu na premium pomocí funkce stop/start
  3. Připojte nově vytvořenou zásadu Premium k bráně firewall úrovně Premium.

Důležité

Upgrade standardní brány firewall nasazené v jihovýchodní Asii pomocí Zóny dostupnosti se v současné době nepodporuje.

Pokud k nasazení Azure Firewall použijete Terraform, můžete ho použít k migraci na Azure Firewall Premium. Další informace najdete v tématu Migrace Azure Firewall Standard na verzi Premium pomocí Terraformu.

Otázky výkonu

Při migraci ze standardní skladové položky je potřeba vzít v úvahu výkon. Kontrola IDPS a TLS jsou 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 skladovou položkou Standard. Další informace o výkonu Azure Firewall najdete v tématu Výkon Azure Firewall.

Microsoft doporučuje zákazníkům provádět v nasazení Azure úplné testování, aby se zajistilo, že výkon služby firewall splňuje vaše očekávání.

Výpadek

Během plánované údržby migrujte bránu firewall, protože při migraci Azure Firewall ze standardu na premium pomocí funkce stop/start dojde k určitému výpadku.

Migrace klasických pravidel na zásady Standard

Během procesu migrace může být potřeba migrovat klasická pravidla brány firewall na zásady Standard. Můžete to udělat pomocí Azure Portal:

  1. V Azure Portal vyberte standardní bránu firewall. Na stránce Přehled vyberte Migrovat na zásady brány firewall.

    Migrace na zásady brány firewall

  2. Na stránce Migrovat na zásady brány firewall vyberte Zkontrolovat a vytvořit.

  3. Vyberte Vytvořit.

    Dokončení nasazení trvá několik minut.

Můžete také migrovat stávající klasická pravidla z Azure Firewall pomocí Azure PowerShell a vytvářet zásady. Další informace najdete v tématu Migrace konfigurací Azure Firewall do zásad Azure Firewall pomocí PowerShellu.

Migrace existujících zásad pomocí Azure PowerShell

Transform-Policy.ps1je Azure PowerShell skript, který vytvoří novou zásadu Premium z existujících zásad úrovně Standard.

Vzhledem ke standardnímu ID zásad brány firewall ho skript transformuje na zásady služby Azure Firewall ú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ých zásad, odkaz na nadřazenou zásadu zůstane.

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, budete si muset 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 příkazu Get-Module -ListAvailable Az zjistíte, které verze jsou nainstalované. Pokud potřebujete instalaci, přečtěte si téma Instalace modulu Azure PowerShell.

<#
    .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 Azure Firewall pomocí funkce stop/start

Pokud používáte skladovou položku Azure Firewall Standard se zásadami brány firewall, můžete k migraci skladové položky brány firewall na Premium použít metodu Allocate/Deallocate. Tento přístup k migraci se podporuje ve službě VNet Hub i v bránách firewall zabezpečeného centra. Při migraci nasazení služby Secure Hub se zachová veřejná IP adresa brány firewall.

Minimální Azure PowerShell požadavek na verzi 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 (několik 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

Zásady Premium můžete k nové bráně Premium Firewall připojit pomocí Azure Portal:

Snímek obrazovky zobrazující zásady brány firewall

Další kroky