Migrieren zu Azure Firewall Premium

Sie können Azure Firewall Standard zu Azure Firewall Premium migrieren, um von den neuen Premium-Funktionen zu profitieren. Weitere Informationen zu Azure Firewall Premium-Features finden Sie unter Features von Azure Firewall Premium.

In diesem Artikel werden die erforderlichen Schritte zum manuellen Migrieren Ihrer Firewall und Richtlinie von „Standard“ zu „Premium“ beschrieben.

Tipp

Die einfachste Möglichkeit, Ihre Azure Firewall-SKU ohne Ausfallzeit zu ändern, ist die Verwendung des Features SKU ändern. Weitere Informationen finden Sie unter Einfaches Upgraden/Downgraden von Azure Firewall.

Machen Sie sich vor der Migration mit den Leistungsaspekten vertraut, und planen Sie das erforderliche Wartungsfenster. In der Regel wird eine Downtime von 20 bis 30 Minuten erwartet.

Für eine erfolgreiche Migration sind die folgenden allgemeinen Schritte erforderlich:

  1. Erstellen Sie neue Premium-Richtlinie basierend auf Ihrer vorhandenen Standard-Richtlinie oder den klassischen Regeln. Am Ende dieses Schritts enthält Ihre neue Premium-Richtlinie alle vorhandenen Regeln und Richtlinieneinstellungen.
  2. Migrieren von Azure Firewall von Standard zu Premium mithilfe von Beenden/Starten
  3. Anfügen der neu erstellten Premium-Richtlinie an eine Premium-Firewall

Wichtig

Das Upgraden einer Standardfirewall, die in „Asien, Südosten“ mit Verfügbarkeitszonen bereitgestellt wurde, wird derzeit nicht unterstützt.

Wenn Sie Terraform für die Bereitstellung der Azure Firewall verwenden, können Sie Terraform für die Migration zu Azure Firewall Premium nutzen. Weitere Informationen finden Sie unter „Migrieren Sie Azure Firewall Standard zu Premium mit Terraform“.

Überlegungen zur Leistung

Die Leistung ist ein Aspekt bei der Migration von der Standard-SKU. IDPS und TLS-Inspektion sind rechenintensive Vorgänge. Die Premium-SKU verwendet eine leistungsfähigere VM-SKU, die auf einen höheren Durchsatz als bei der Standard-SKU skaliert wird. Weitere Informationen zur Azure Firewall-Leistung finden Sie unter Azure Firewall-Leistung.

Microsoft empfiehlt seiner Kundschaft, vollständige Skalierungstests in ihrer Azure-Bereitstellung durchzuführen, um sicherzustellen, dass die Leistung des Firewalldiensts den Erwartungen entspricht.

Ausfallzeit

Migrieren Sie Ihre Firewall während einer geplanten Wartungszeit, da es bei der Migrieren von Azure Firewall von Standard zu Premium mithilfe von Beenden/Starten zu Ausfallzeiten kommen wird.

Migrieren klassischer Regeln zur Standardrichtlinie

Während des Migrationsprozesses müssen möglicherweise die klassischen Firewallregeln zu einer Standardrichtlinie migriert werden. Sie können hierfür das Azure-Portal verwenden:

  1. Wählen Sie im Azure-Portal Ihre Standardfirewall aus. Wählen Sie auf der Seite Übersicht die Option zum Migrieren zur Firewallrichtlinie aus.

    Migrieren zur Firewallrichtlinie

  2. Wählen Sie auf der Seite Migrieren zur Firewallrichtlinie die Option Überprüfen und erstellen aus.

  3. Klicken Sie auf Erstellen.

    Die Bereitstellung dauert einige Minuten.

Darüber hinaus können bereits vorhandene klassische Regeln mithilfe von Azure PowerShell aus Azure Firewall migriert werden, um Richtlinien zu erstellen. Weitere Informationen finden Sie unter Migrieren von Azure Firewall-Konfigurationen zu einer Azure Firewall-Richtlinie mithilfe von Azure PowerShell

Migrieren einer vorhandenen Richtlinie mithilfe von Azure PowerShell

Transform-Policy.ps1 ist ein Azure PowerShell-Skript, das eine neue Premiumrichtlinie aus einer vorhandenen Standardrichtlinie erstellt.

Angesichts einer Standard-Firewallrichtlinien-ID wandelt das Skript diese in eine Premium-Richtlinie für Azure Firewall um. Das Skript stellt zunächst eine Verbindung mit Ihrem Azure-Konto her, pullt die Richtlinie, transformiert verschiedene Parameter oder fügt diese hinzu und lädt dann eine neue Premiumrichtlinie hoch. Die neue Premiumrichtlinie hat den Namen <previous_policy_name>_premium. Wenn es sich um eine untergeordnete Richtlinientransformation handelt, bleibt ein Link zur übergeordneten Richtlinie erhalten.

Verwendungsbeispiel:

Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name

Wichtig

Das Skript migriert keine Einstellungen für Threat Intelligence und private SNAT-Bereiche. Sie müssen sich diese Einstellungen notieren, bevor Sie fortfahren und sie manuell migrieren. Andernfalls kann es bei der neuen aktualisierten Firewall zu inkonsistenter Datenverkehrsfilterung kommen.

Dieses Skript erfordert die aktuelle Azure PowerShell-Version. Führen Sie Get-Module -ListAvailable Az aus, um die installierten Versionen zu ermitteln. Wenn Sie die Installation ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu.

<#
    .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

Migrieren von Azure Firewall mithilfe von Beenden/Starten

Wenn Sie eine Standard-SKU von Azure Firewall mit Firewallrichtlinie verwenden, können Sie die Methode Zuordnen/Zuordnung aufheben verwenden, um Ihre Firewall-SKU zu Premium zu migrieren. Dieser Migrationsansatz wird sowohl für VNET Hub-Firewalls als auch für Secure Hub-Firewalls unterstützt. Beim Migrieren einer Secure Hub-Bereitstellung, wird die öffentliche IP-Adresse der Firewall beibehalten.

Mindestanforderung ist Azure PowerShell Version 6.5.0. Weitere Informationen finden Sie unter Az 6.5.0.

Migrieren einer VNET Hub-Firewall

  • Heben Sie die Zuordnung der Standardfirewall auf

    $azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
    $azfw.Deallocate()
    Set-AzFirewall -AzureFirewall $azfw
    
  • Zuordnen von Firewall Premium (einzelne öffentliche IP-Adresse)

    $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
    
  • Zuordnen von Firewall Premium (mehrere öffentliche IP-Adressen)

    $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
    
  • Zuordnen von Firewall Premium im Modus „Tunnelerzwingung“

    $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
    

Migrieren einer Secure Hub-Firewall

  • Heben Sie die Zuordnung der Standardfirewall auf

    $azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
    $azfw.Deallocate()
    Set-AzFirewall -AzureFirewall $azfw
    
  • Ordnen Sie Firewall Premium zu

    $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
    

Anfügen einer Premium-Richtlinie an eine Premium-Firewall

Sie können über das Azure-Portal eine Premium-Richtlinie an die neue Premium-Firewall anfügen:

Screenshot: Firewallrichtlinie

Nächste Schritte