Udostępnij za pośrednictwem


Migrowanie do usługi Azure Firewall Premium

Możesz przeprowadzić migrację Azure Firewall w warstwie Standardowa do Azure Firewall Premium, aby skorzystać z nowych funkcji Premium. Aby uzyskać więcej informacji na temat funkcji Azure Firewall Premium, zobacz funkcje Azure Firewall Premium.

W tym artykule opisano kroki wymagane do ręcznego migrowania standardowej zapory i zasad do warstwy Premium.

Porada

Najprostszym sposobem zmiany jednostki SKU Azure Firewall bez przestoju jest użycie funkcji Zmień jednostkę SKU. Aby uzyskać więcej informacji, zobacz Azure Firewall łatwe uaktualnianie/obniżanie poziomu.

Przed rozpoczęciem migracji zapoznaj się z zagadnieniami dotyczącymi wydajności i planowaniem przed wymaganym oknem obsługi. Oczekiwany jest typowy czas przestoju 20–30 minut.

Następujące ogólne kroki są wymagane do pomyślnej migracji:

  1. Utwórz nowe zasady Premium na podstawie istniejących zasad standardowych lub reguł klasycznych. Po zakończeniu tego kroku nowe zasady w warstwie Premium będą zawierać wszystkie istniejące reguły i ustawienia zasad.
  2. Migrowanie Azure Firewall z warstwy Standardowa do warstwy Premium przy użyciu zatrzymywania/uruchamiania.
  3. Dołącz nowo utworzone zasady Premium do zapory Premium.

Ważne

Uaktualnianie standardowej zapory wdrożonej w Azji Południowo-Wschodniej z Strefy dostępności nie jest obecnie obsługiwane.

Jeśli używasz narzędzia Terraform do wdrożenia Azure Firewall, możesz użyć narzędzia Terraform do migracji do usługi Azure Firewall Premium. Aby uzyskać więcej informacji, zobacz Migrowanie Azure Firewall Standard do warstwy Premium przy użyciu narzędzia Terraform.

Zagadnienia dotyczące wydajności

Wydajność jest brana pod uwagę podczas migracji ze standardowej jednostki SKU. Inspekcja protokołu IDPS i TLS to operacje intensywnie korzystające z obliczeń. Jednostka SKU w warstwie Premium korzysta z bardziej wydajnej jednostki SKU maszyny wirtualnej, która jest skalowana do wyższej przepływności porównywalnej ze standardową jednostkę SKU. Aby uzyskać więcej informacji na temat wydajności Azure Firewall, zobacz Azure Firewall Wydajność

Firma Microsoft zaleca klientom wykonywanie testów na pełną skalę we wdrożeniu platformy Azure w celu zapewnienia, że wydajność usługi zapory spełnia Twoje oczekiwania.

Downtime (Przestoje)

Przeprowadź migrację zapory podczas planowanej konserwacji, ponieważ podczas migracji Azure Firewall z warstwy Standardowa do warstwy Premium nastąpi pewien przestój przy użyciu zatrzymania/uruchomienia.

Migrowanie reguł klasycznych do zasad standardowych

Podczas procesu migracji może być konieczne przeprowadzenie migracji klasycznych reguł zapory do zasad standardowych. Można to zrobić za pomocą Azure Portal:

  1. W Azure Portal wybierz standardową zaporę. Na stronie Przegląd wybierz pozycję Migrowanie do zasad zapory.

    Migrowanie do zasad zapory

  2. Na stronie Zasady migracji do zapory wybierz pozycję Przejrzyj i utwórz.

  3. Wybierz przycisk Utwórz.

    Ukończenie wdrożenia trwa kilka minut.

Możesz również migrować istniejące reguły klasyczne z Azure Firewall przy użyciu Azure PowerShell do tworzenia zasad. Aby uzyskać więcej informacji, zobacz Migrowanie konfiguracji Azure Firewall do zasad Azure Firewall przy użyciu programu PowerShell

Migrowanie istniejących zasad przy użyciu Azure PowerShell

Transform-Policy.ps1to skrypt Azure PowerShell, który tworzy nowe zasady Premium z istniejących zasad w warstwie Standardowa.

Biorąc pod uwagę standardowy identyfikator zasad zapory, skrypt przekształca go w zasady zapory Platformy Azure w warstwie Premium. Skrypt najpierw łączy się z kontem platformy Azure, ściąga zasady, przekształca/dodaje różne parametry, a następnie przekazuje nowe zasady w warstwie Premium. Nowe zasady w warstwie Premium nosi nazwę <previous_policy_name>_premium. Jeśli jest to przekształcenie zasad podrzędnych, pozostanie link do zasad nadrzędnych.

Przykład użycia:

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

Ważne

Skrypt nie migruje ustawień analizy zagrożeń i prywatnych zakresów SNAT. Przed kontynuowaniem należy pamiętać o tych ustawieniach i przeprowadzić ich migrację ręcznie. W przeciwnym razie może wystąpić niespójne filtrowanie ruchu przy użyciu nowej uaktualnionej zapory.

Ten skrypt wymaga najnowszej Azure PowerShell. Uruchom polecenie , Get-Module -ListAvailable Az aby zobaczyć, które wersje są zainstalowane. Jeśli chcesz zainstalować, zobacz Instalowanie modułu 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

Migrowanie Azure Firewall przy użyciu zatrzymywania/uruchamiania

Jeśli używasz Azure Firewall standardowej jednostki SKU z zasadami zapory, możesz użyć metody Przydziel/Cofnij przydział, aby przeprowadzić migrację jednostki SKU zapory do warstwy Premium. Ta metoda migracji jest obsługiwana zarówno w zaporach centrum sieci wirtualnej, jak i w zaporach bezpiecznego koncentratora. Podczas migracji wdrożenia usługi Secure Hub zachowa publiczny adres IP zapory.

Minimalne wymagania dotyczące wersji Azure PowerShell to 6.5.0. Aby uzyskać więcej informacji, zobacz Az 6.5.0.

Migrowanie zapory koncentratora sieci wirtualnej

  • Cofanie przydziału zapory standardowej

    $azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
    $azfw.Deallocate()
    Set-AzFirewall -AzureFirewall $azfw
    
  • Przydziel zaporę Premium (pojedynczy publiczny adres IP)

    $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
    
  • Przydzielanie zapory Premium (wiele publicznych adresów IP)

    $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
    
  • Przydzielanie zapory Premium w trybie wymuszonego tunelu

    $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
    

Migrowanie zapory bezpiecznego koncentratora

  • Cofanie przydziału zapory standardowej

    $azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
    $azfw.Deallocate()
    Set-AzFirewall -AzureFirewall $azfw
    
  • Przydzielanie zapory 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
    

Dołączanie zasad Premium do zapory Premium

Zasady Premium można dołączyć do nowej zapory Premium przy użyciu Azure Portal:

Zrzut ekranu przedstawiający zasady zapory

Następne kroki