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:

  1. 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.
  2. Migre o Firewall do Azure do Standard para o Premium usando stop/start.
  3. 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:

  1. No portal do Azure, selecione seu firewall padrão. Na página Visão geral, selecione Migrar para a política de firewall.

    Captura de ecrã a mostrar a política de migração para firewall.

  2. Na página Política de migração para firewall, selecione Rever + criar.

  3. 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>_premiumde . 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:

Captura de ecrã a mostrar a política de firewall

Próximos passos