Migrar para o Firewall Premium do Azure
Você pode migrar o Firewall do Azure Standard para o Firewall Premium do Azure para aproveitar os novos recursos Premium. Para obter mais informações sobre os recursos do Firewall do Azure Premium, consulte Recursos do Firewall do Azure Premium.
Este artigo orienta você com as etapas necessárias para migrar manualmente o firewall e a política padrão para o Premium.
Gorjeta
A maneira mais fácil de alterar sua SKU do Firewall do Azure sem tempo de inatividade é usar o recurso Alterar SKU . Para obter mais informações, consulte Upgrade/downgrade fácil do Firewall do Azure.
Antes de iniciar a migração, entenda as considerações de desempenho e planeje com antecedência a janela de manutenção necessária. Espera-se um tempo de inatividade típico de 20-30 minutos.
As seguintes etapas gerais são necessárias para uma migração bem-sucedida:
- Crie uma nova apólice Premium com base na sua apólice Standard ou regras clássicas existentes. No final deste passo, a sua nova apólice premium incluirá todas as suas regras e definições de política existentes.
- Migre o Firewall do Azure do Standard para o Premium usando stop/start.
- Anexe a política Premium recém-criada ao seu Firewall Premium.
Importante
Atualmente, não há suporte para a atualização de um Firewall padrão implantado no Sudeste Asiático com zonas de disponibilidade.
Se você usar o Terraform para implantar o Firewall do Azure, poderá usar o Terraform para migrar para o Azure Firewall Premium. Para obter mais informações, consulte Migrar o Firewall do Azure Standard para Premium usando o Terraform.
Considerações de desempenho
O desempenho é uma consideração ao migrar do SKU padrão. A inspeção IDPS e TLS são operações de computação intensiva. O SKU premium usa um SKU de VM mais poderoso, que pode ser dimensionado para uma taxa de transferência mais alta comparável com o SKU padrão. Para obter mais informações sobre o Desempenho do Firewall do Azure, consulte Desempenho do Firewall do Azure
A Microsoft recomenda que os clientes realizem testes completos em sua implantação do Azure para garantir que o desempenho do serviço de firewall atenda às suas expectativas.
Inatividade
Migre seu firewall durante um tempo de manutenção planejado, pois haverá algum tempo de inatividade quando você migrar o Firewall do Azure do Standard para o Premium usando stop/start.
Migrar regras clássicas para a política padrão
Durante o processo de migração, talvez seja necessário migrar as regras de firewall clássicas para uma política padrão. Você pode fazer isso usando o portal do Azure:
No portal do Azure, selecione seu firewall padrão. Na página Visão geral, selecione Migrar para a política de firewall.
Na página Política de migração para firewall, selecione Rever + criar.
Selecione Criar.
A implantação leva alguns minutos para ser concluída.
Você também pode migrar regras Clássicas existentes do Firewall do Azure usando o Azure PowerShell para criar políticas. Para obter mais informações, consulte Migrar configurações do Firewall do Azure para a política do Firewall do Azure usando o PowerShell
Migrar uma política existente usando o Azure PowerShell
Transform-Policy.ps1
é um script do Azure PowerShell que cria uma nova política Premium a partir de uma política Standard existente.
Dada uma ID de política de firewall padrão, o script a transforma em uma política de firewall do Azure Premium. O script primeiro se conecta à sua conta do Azure, extrai a política, transforma/adiciona vários parâmetros e, em seguida, carrega uma nova política Premium. A nova apólice premium tem o nome <previous_policy_name>_premium
de . Se for uma transformação de política filha, um link para a política pai permanecerá.
Exemplo de utilização:
Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name
Importante
O script não migra as configurações de Threat Intelligence e SNAT private ranges. Você precisará anotar essas configurações antes de prosseguir e migrá-las manualmente. Caso contrário, você pode encontrar filtragem de tráfego inconsistente com seu novo firewall atualizado.
Este script requer o Azure PowerShell mais recente. Execute Get-Module -ListAvailable Az
para ver quais versões estão instaladas. Se você precisar instalar, consulte Instalar o módulo do 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
Migrar o Firewall do Azure usando parar/iniciar
Se você usar o SKU do Firewall do Azure Standard com a política de firewall, poderá usar o método Allocate/Deallocate para migrar seu SKU do Firewall para o Premium. Essa abordagem de migração é suportada no VNet Hub e nos Firewalls Secure Hub. Quando você migra uma implantação do Secure Hub, ela preserva o endereço IP público do firewall.
O requisito mínimo de versão do Azure PowerShell é 6.5.0. Para obter mais informações, consulte Az 6.5.0.
Migrar um firewall de hub VNET
Desalocar o firewall padrão
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Alocar Firewall Premium (endereço IP público único)
$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
Alocar Firewall Premium (vários endereços IP públicos)
$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
Alocar o Firewall Premium no modo de túnel forçado
$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
Migrar um firewall de hub seguro
Desalocar o firewall padrão
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Alocar 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
Anexar uma política Premium a um Firewall Premium
Você pode anexar uma política Premium ao novo Firewall Premium usando o portal do Azure: