Migrasi ke Azure Firewall Premium

Anda dapat memigrasikan Azure Firewall Standard ke Azure Firewall Premium Preview untuk memanfaatkan kemampuan Premium yang baru. Untuk mempelajari fitur Azure Firewall Premium, lihat Fitur Azure Firewall Premium.

Artikel ini memandu Anda dengan langkah-langkah yang diperlukan untuk memigrasikan firewall dan kebijakan Standar secara manual ke Premium.

Tip

Cara termudah untuk mengubah SKU Azure Firewall Anda tanpa waktu henti adalah dengan menggunakan fitur Ubah SKU. Untuk informasi selengkapnya, lihat Azure Firewall peningkatan/penurunan tingkat yang mudah.

Sebelum Anda memulai migrasi, pahami pertimbangan performa dan rencanakan ke depan untuk jendela perawatan yang diperlukan. Waktu henti biasanya 20-30 menit.

Langkah-langkah umum berikut diperlukan untuk migrasi yang berhasil:

  1. Buat kebijakan Premium baru berdasarkan kebijakan Standar atau aturan klasik yang ada. Pada akhir langkah ini kebijakan premium baru Anda akan mencakup semua aturan dan pengaturan kebijakan yang ada.
  2. Memigrasikan Azure Firewall dari Standar ke Premium menggunakan berhenti/mulai.
  3. Melampirkan kebijakan Premium yang baru dibuat ke Firewall Premium Anda.

Penting

Memperbarui Firewall Standar yang diterapkan di Asia Tenggara dengan Zona Ketersediaan saat ini tidak didukung.

Jika Anda menggunakan Terraform untuk menyebarkan Azure Firewall, Anda dapat menggunakan Terraform untuk memigrasikan ke Azure Firewall Premium. Untuk informasi selengkapnya, lihat Memigrasikan Azure Firewall Standard ke Premium menggunakan Terraform.

Pertimbangan performa

Performa menjadi pertimbangan saat bermigrasi dari SKU standar. Pemeriksaan IDPS dan TLS adalah operasi intensif komputasi. SKU premium menggunakan SKU VM yang lebih kuat, yang diskalakan ke throughput yang lebih tinggi sebanding dengan SKU standar. Untuk informasi selengkapnya tentang Performa Azure Firewall, lihat Performa Azure Firewall

Microsoft merekomendasikan pelanggan melakukan pengujian skala penuh dalam penyebaran Azure mereka untuk memastikan performa layanan firewall memenuhi harapan Anda.

Waktu henti

Migrasikan firewall Anda selama waktu pemeliharaan terencana, karena akan ada beberapa waktu henti saat Anda Melakukan migrasi Azure Firewall dari Standar ke Premium menggunakan berhenti/mulai.

Migrasikan aturan Klasik ke Kebijakan Standar

Selama proses migrasi Anda, Anda mungkin perlu memigrasikan aturan firewall Klasik Anda ke kebijakan Standar. Anda dapat melakukan ini menggunakan portal Microsoft Azure:

  1. Dari portal Microsoft Azure, pilih firewall standar Anda. Pada halaman Ikhtisar, pilih Migrasi ke kebijakan firewall.

    Migrasi ke kebijakan firewall

  2. Pada halaman Migrasi ke kebijakan firewall, pilih Tinjau + buat.

  3. Pilih Buat.

    Penyebaran ini membutuhkan waktu beberapa menit untuk diselesaikan.

Anda dapat memigrasikan aturan yang sudah ada dari Azure Firewall menggunakan portal atau Azure PowerShell untuk membuat kebijakan. Untuk informasi selengkapnya, lihat Migrasikan konfigurasi Azure Firewall ke kebijakan Azure Firewall menggunakan Powershell

Melakukan migrasi kebijakan yang sudah ada menggunakan Azure PowerShell

Transform-Policy.ps1 adalah skrip Azure PowerShell yang membuat kebijakan Premium baru dari kebijakan Standar yang sudah ada.

Memberikan ID kebijakan firewall standar, skrip mengubahnya menjadi kebijakan firewall Premium Azure. Skrip pertama kali terhubung ke akun Azure Anda, menarik kebijakan, mengubah/menambahkan berbagai parameter, lalu mengunggah kebijakan Premium baru. Kebijakan premi baru dinamai <previous_policy_name>_premium. Jika ini adalah transformasi kebijakan turunan, link ke kebijakan induk akan tetap ada.

Contoh penggunaan:

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

Penting

Skrip tidak memigrasikan pengaturan Inteligensi Ancaman serta rentang privat SNAT. Anda harus mencatat pengaturan tersebut sebelum melanjutkan dan memigrasikannya secara manual. Jika tidak, Anda mungkin mengalami pemfilteran lalu lintas yang tidak konsisten dengan firewall baru yang ditingkatkan.

Skrip ini memerlukan Azure PowerShell terbaru. Jalankan Get-Module -ListAvailable Az untuk melihat versi mana yang dipasang. Jika Anda perlu memasang, lihat Pasang modul 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

Migrasi Azure Firewall menggunakan stop/start

Jika Anda menggunakan Azure Firewall Standard SKU dengan kebijakan firewall, Anda dapat menggunakan metode Alokasi/Deallocate untuk memigrasi Firewall SKU ke Premium. Pendekatan migrasi ini didukung pada VNet Hub maupun Hub Firewall Aman. Saat Anda memigrasikan penyebaran Hub Aman, langkah ini akan mempertahankan alamat IP publik firewall.

Persyaratan versi Azure PowerShell minimum adalah 6.5.0. Untuk informasi selengkapnya, lihat Az 6.5.0.

Memigrasikan Firewall Hub VNET

  • Lepaskan Firewall Standar

    $azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
    $azfw.Deallocate()
    Set-AzFirewall -AzureFirewall $azfw
    
  • Alokasikan Premium Firewall (alamat IP publik tunggal)

    $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
    
  • Alokasikan Firewall Premium (beberapa alamat IP publik)

    $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
    
  • Alokasikan Firewall Premium dalam Mode Terowongan Paksa

    $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
    

Memigrasikan Firewall Hub Aman

  • Lepaskan Firewall Standar

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

Melampirkan kebijakan Premium ke Firewall Premium

Anda dapat melampirkan kebijakan Premium ke Firewall Premium baru menggunakan portal Azure:

Cuplikan layar memperlihatkan kebijakan firewall

Langkah berikutnya