Migración a Azure Firewall Prémium
Puede migrar Azure Firewall Estándar a Azure Firewall Premium para aprovechar las ventajas de las nuevas funcionalidades premium. Para obtener más información sobre las características de Azure Firewall Premium, consulte Características de Azure Firewall Premium.
Este artículo le guía con los pasos necesarios para migrar manualmente el firewall y la directiva Estándar a Premium.
Sugerencia
La manera más fácil de cambiar la SKU de Azure Firewall sin tiempo de inactividad consiste en usar la característica Cambiar de SKU. Para más información, consulte Actualización o cambio a una versión anterior de Azure Firewall.
Antes de iniciar la migración, comprenda las consideraciones de rendimiento y planee con antelación la ventana de mantenimiento necesaria. Se espera un tiempo de fuera de servicio típico de 20 a 30 minutos.
Los siguientes pasos generales son necesarios para una migración correcta:
- Cree una directiva Premium basada en la directiva estándar existente o en las reglas clásicas. Al final de este paso, la nueva directiva Premium incluirá todas las reglas y la configuración de directiva existentes.
- Migrar Azure Firewall de Estándar a Premium mediante stop/start.
- Adjuntar la directiva de Premium recién creada al firewall de Premium.
Importante
Actualmente no se admite la actualización de un firewall estándar implementado en el Sudeste Asiático con Availability Zones.
Si usa Terraform para implementar Azure Firewall, puede usar Terraform para migrar a Azure Firewall Prémium. Para más información, consulte Migración de Azure Firewall estándar a prémium con Terraform.
Consideraciones de rendimiento
El rendimiento es un aspecto que se debe tener en cuenta al migrar desde la SKU estándar. La inspección de IDPS y TLS son operaciones que consumen numerosos recursos informáticos. La SKU premium usa una SKU de máquina virtual más potente que se escala a un rendimiento superior comparable a la SKU estándar. Para obtener más información sobre el rendimiento de Azure Firewall, consulte rendimiento de Azure Firewall.
Microsoft recomienda a sus clientes realizar pruebas a escala completa en sus implementaciones de Azure para asegurarse de que el rendimiento del servicio de firewall cumple sus expectativas.
Tiempo de inactividad
Migre el firewall durante el mantenimiento planeado, ya que se producirá algún tiempo de inactividad al migrar Azure Firewall de Estándar a Premium mediante Start/Stop.
Migración de reglas clásicas a una directiva estándar
Durante el proceso de migración, es posible que tenga que migrar las reglas de firewall clásicas a una directiva estándar. Puede hacerlo mediante Azure Portal:
En Azure Portal, seleccione el firewall estándar. En la página Información general, seleccione Migrate to firewall policy (Migrar a la directiva de firewall).
En la página Migrate to firewall policy (Migrar a la directiva de firewall), seleccione Revisar y crear.
Seleccione Crear.
La implementación tarda unos minutos en completarse.
También puede migrar las reglas clásicas existentes de Azure Firewall mediante Azure PowerShell para crear directivas. Para más información, consulte Migración de configuraciones de Azure Firewall a directivas de Azure Firewall con PowerShell.
Migrar una directiva existente con Azure PowerShell
Transform-Policy.ps1
es un script de Azure PowerShell que crea una directiva prémium a partir de una directiva estándar existente.
A partir de un identificador de directiva de firewall estándar, el script la transforma en una directiva de firewall prémium de Azure. El script se conecta primero a su cuenta de Azure, extrae la directiva, transforma o agrega varios parámetros y, luego, carga una nueva directiva prémium. La nueva directiva prémium se denomina <previous_policy_name>_premium
. Si se trata de la transformación de una directiva secundaria, se mantendrá un vínculo a la directiva principal.
Ejemplo de uso:
Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name
Importante
El script no migra la configuración de los intervalos privados de Inteligencia sobre amenazas y SNAT. Esos valores deberá anotarlos antes de continuar y migrarlos manualmente. De lo contrario, podría encontrar un filtrado de tráfico incoherente con el nuevo firewall actualizado.
El uso de este script requiere la última versión de Azure PowerShell. Ejecute Get-Module -ListAvailable Az
para ver qué versiones están instaladas. Si necesita instalarlo, consulte Instalación del módulo de 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
Migración de Azure Firewall mediante Start/Stop
Si usa la SKU de Azure Firewall Estándar con la directiva de firewall, puede utilizar el método Allocate/Deallocate para migrar dicha SKU a Azure Firewall Prémium. Este enfoque de migración se admite en los firewalls tanto de centro de conectividad de red virtual como de centro de conectividad seguro. Al migrar la implementación de un centro de conectividad seguro, conservará la dirección IP pública del firewall.
El requisito mínimo de la versión de Azure PowerShell es 6.5.0. Para más información, consulte Az 6.5.0.
Migración de un firewall de centro de conectividad de red virtual
Desasignar el firewall estándar
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Asignar el firewall prémium (una sola dirección IP pública)
$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
Asignar el firewall prémium (varias direcciones IP públicas)
$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
Asignar el firewall prémium en modo de túnel forzado
$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
Migración de un firewall de centro de conectividad seguro
Desasignar el firewall estándar
$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>" $azfw.Deallocate() Set-AzFirewall -AzureFirewall $azfw
Asignar el firewall prémium
$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
Asociación de una directiva prémium a un firewall prémium
Puede asociar una directiva prémium al nuevo firewall prémium mediante Azure Portal: