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 term mudah untuk mengubah SKU Azure Firewall Anda tanpa waktu henti adalah dengan menggunakan fitur Ubah SKU . Untuk informasi selengkapnya, lihat Peningkatan/penurunan tingkat mudah Azure Firewall.
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:
- 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.
- Memigrasikan Azure Firewall dari Standar ke Premium menggunakan berhenti/mulai.
- 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 menskalakan 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:
Dari portal Microsoft Azure, pilih firewall standar Anda. Pada halaman Ikhtisar, pilih Migrasi ke kebijakan firewall.
Pada halaman Migrasi ke kebijakan firewall, pilih Tinjau + buat.
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: