Migrowanie do usługi Azure Firewall — wersja Premium

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

Ten artykuł zawiera instrukcje wymagane do ręcznej migracji zapory w warstwie Standardowa i zasad do warstwy Premium.

Napiwek

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

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 usługi 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 wdrażania usługi Azure Firewall, możesz użyć narzędzia Terraform do migracji do usługi Azure Firewall Premium. Aby uzyskać więcej informacji, zobacz Migrowanie usługi Azure Firewall w warstwie Standardowa 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 idPS i TLS to operacje intensywnie korzystające z obliczeń. Jednostka SKU w warstwie Premium używa 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 usługi Azure Firewall, zobacz Wydajność usługi Azure Firewall

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

Przestój

Przeprowadź migrację zapory w zaplanowanym czasie konserwacji, ponieważ podczas migrowania usługi Azure Firewall z warstwy Standardowa do warstwy Premium nastąpi 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żesz to zrobić za pomocą witryny Azure Portal:

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

    Zrzut ekranu przedstawiający migrację do zasad zapory.

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

  3. Wybierz pozycję Utwórz.

    Ukończenie wdrożenia trwa kilka minut.

Istniejące reguły klasyczne można również migrować z usługi Azure Firewall przy użyciu programu Azure PowerShell w celu utworzenia zasad. Aby uzyskać więcej informacji, zobacz Migrowanie konfiguracji usługi Azure Firewall do zasad usługi Azure Firewall przy użyciu programu PowerShell

Migrowanie istniejących zasad przy użyciu programu Azure PowerShell

Transform-Policy.ps1 to skrypt programu Azure PowerShell, który tworzy nowe zasady Premium na podstawie 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 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 zanotować te ustawienia 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 wersji programu Azure PowerShell. Uruchom polecenie Get-Module -ListAvailable Az , aby zobaczyć, które wersje są zainstalowane. Jeśli musisz zainstalować, zobacz Instalowanie modułu programu 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 usługi Azure Firewall przy użyciu zatrzymywania/uruchamiania

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

Minimalne wymaganie dotyczące wersji programu 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
    
  • Przydzielanie zapory 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 centrum

  • 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 witryny Azure Portal:

Zrzut ekranu przedstawiający zasady zapory

Następne kroki