Migrera till Azure Firewall Premium
Du kan migrera Azure Firewall Standard till Azure Firewall Premium för att dra nytta av de nya Premium-funktionerna. Mer information om Azure Firewall Premium-funktioner finns i Azure Firewall Premium-funktioner.
Den här artikeln vägleder dig med de steg som krävs för att migrera standardbrandväggen och principen till Premium manuellt.
Dricks
Det enklaste sättet att ändra din Azure Firewall SKU utan avbrott är att använda funktionen Ändra SKU . Mer information finns i Enkel uppgradering/nedgradering av Azure Firewall.
Innan du påbörjar migreringen bör du förstå prestandaövervägandena och planera framåt för det nödvändiga underhållsfönstret. Typisk stilleståndstid på 20–30 minuter förväntas.
Följande allmänna steg krävs för en lyckad migrering:
- Skapa en ny Premium-princip baserat på din befintliga standardprincip eller klassiska regler. I slutet av det här steget kommer din nya Premium-princip att innehålla alla befintliga regler och principinställningar.
- Migrera Azure Firewall från Standard till Premium med stopp/start.
- Koppla den nyligen skapade Premium-principen till premiumbrandväggen.
Viktigt!
Uppgradering av en standardbrandvägg som distribuerats i Sydostasien med tillgänglighetszoner stöds inte för närvarande.
Om du använder Terraform för att distribuera Azure Firewall kan du använda Terraform för att migrera till Azure Firewall Premium. Mer information finns i Migrera Azure Firewall Standard till Premium med Terraform.
Prestandaöverväganden
Prestanda är ett övervägande när du migrerar från standard-SKU:n. IDPS- och TLS-inspektion är beräkningsintensiva åtgärder. Premium-SKU:n använder en kraftfullare SKU för virtuella datorer, som skalar till ett högre dataflöde som är jämförbart med standard-SKU:n. Mer information om Azure Firewall-prestanda finns i Prestanda för Azure Firewall
Microsoft rekommenderar att kunderna utför fullskalig testning i sin Azure-distribution för att säkerställa att brandväggstjänstens prestanda uppfyller dina förväntningar.
Driftstopp
Migrera brandväggen under en planerad underhållstid eftersom det blir en viss stilleståndstid när du migrerar Azure Firewall från Standard till Premium med stopp/start.
Migrera klassiska regler till standardprincip
Under migreringsprocessen kan du behöva migrera dina klassiska brandväggsregler till en standardprincip. Du kan göra detta med hjälp av Azure-portalen:
Från Azure-portalen väljer du din standardbrandvägg. På sidan Översikt väljer du Migrera till brandväggsprincip.
På sidan Migrera till brandväggsprincip väljer du Granska + skapa.
Välj Skapa.
Distributionen tar några minuter att slutföra.
Du kan också migrera befintliga klassiska regler från Azure Firewall med hjälp av Azure PowerShell för att skapa principer. Mer information finns i Migrera Azure Firewall-konfigurationer till Azure Firewall-princip med hjälp av PowerShell
Migrera en befintlig princip med Hjälp av Azure PowerShell
Transform-Policy.ps1
är ett Azure PowerShell-skript som skapar en ny Premium-princip från en befintlig Standard-princip.
Med ett standard-brandväggsprincip-ID omvandlar skriptet det till en Premium Azure-brandväggsprincip. Skriptet ansluter först till ditt Azure-konto, hämtar principen, transformerar/lägger till olika parametrar och laddar sedan upp en ny Premium-princip. Den nya Premium-principen heter <previous_policy_name>_premium
. Om det är en underordnad principtransformering finns en länk till den överordnade principen kvar.
Användningsexempel:
Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name
Viktigt!
Skriptet migrerar inte inställningar för hotinformation och privata SNAT-intervall. Du måste anteckna inställningarna innan du fortsätter och migrerar dem manuellt. Annars kan det uppstå inkonsekvent trafikfiltrering med din nya uppgraderade brandvägg.
Det här skriptet kräver det senaste Azure PowerShell. Kör Get-Module -ListAvailable Az
för att se vilka versioner som är installerade. Om du behöver installera kan du läsa Installera Azure PowerShell-modulen.
<#
.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
Migrera Azure Firewall med stop/start
Om du använder Azure Firewall Standard SKU med brandväggsprincip kan du använda metoden Allokera/frigör för att migrera din brandväggs-SKU till Premium. Den här migreringsmetoden stöds på både VNet Hub och Secure Hub Firewalls. När du migrerar en säker hubbdistribution bevaras brandväggens offentliga IP-adress.
Minimikravet för Azure PowerShell-versionen är 6.5.0. Mer information finns i Az 6.5.0.
Migrera en VNET Hub-brandvägg
Frigör standardbrandväggen
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Allokera Firewall Premium (enskild offentlig IP-adress)
$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
Allokera Firewall Premium (flera offentliga IP-adresser)
$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
Allokera Firewall Premium i tvingad tunnelläge
$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
Migrera en brandvägg för säker hubb
Frigör standardbrandväggen
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Allokera 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
Koppla en Premium-princip till en Premium-brandvägg
Du kan koppla en Premium-princip till den nya Premium-brandväggen med hjälp av Azure-portalen: