Sdílet prostřednictvím


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:

  1. 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.
  2. Migrace služby Azure Firewall ze standardu na Premium s využitím zastavení a spuštění
  3. 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:

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

    Snímek obrazovky znázorňující migraci na zásady brány firewall

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

  3. 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:

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

Další kroky