Migrar para o Azure Firewall Premium

Pode migrar Azure Firewall Standard para Azure Firewall Premium para tirar partido das novas capacidades Premium. Para obter mais informações sobre as funcionalidades Azure Firewall Premium, veja funcionalidades do Azure Firewall Premium.

Este artigo orienta-o com os passos necessários para migrar manualmente a firewall e a política Standard para Premium.

Dica

A forma mais fácil de alterar o SKU Azure Firewall sem tempo de inatividade é utilizar a funcionalidade Alterar SKU. Para obter mais informações, veja Azure Firewall atualização/mudança fácil para uma versão anterior.

Antes de iniciar a migração, compreenda as considerações de desempenho e planeie antecipadamente a janela de manutenção necessária. É esperado um tempo de inatividade típico de 20 a 30 minutos.

São necessários os seguintes passos gerais para uma migração bem-sucedida:

  1. Crie uma nova política Premium com base na política Standard existente ou nas regras clássicas. No final deste passo, a nova política premium incluirá todas as regras e definições de política existentes.
  2. Migre Azure Firewall de Standard para Premium com stop/start.
  3. Anexe a política Premium recentemente criada à Firewall Premium.

Importante

A atualização de uma Firewall Standard implementada no Sudeste Asiático com Zonas de Disponibilidade não é atualmente suportada.

Se utilizar o Terraform para implementar o Azure Firewall, pode utilizar o Terraform para migrar para o Azure Firewall Premium. Para obter mais informações, veja Migrar Azure Firewall Standard para Premium com o Terraform.

Considerações de desempenho

O desempenho é uma consideração ao migrar do SKU padrão. A inspeção do IDPS e do TLS são operações de computação intensiva. O SKU premium utiliza um SKU de VM mais potente, que dimensiona para um débito mais elevado comparável ao SKU padrão. Para obter mais informações sobre o Desempenho do Azure Firewall, veja Desempenho do Azure Firewall

A Microsoft recomenda que os clientes realizem testes em larga escala na implementação do Azure para garantir que o desempenho do serviço de firewall satisfaz as suas expectativas.

Tempo de inatividade

Migre a firewall durante um período de manutenção planeado, uma vez que haverá algum tempo de inatividade quando migrar Azure Firewall de Standard para Premium com stop/start.

Migrar regras clássicas para a política Standard

Durante o processo de migração, poderá ter de migrar as regras de firewall clássicas para uma política Standard. Pode fazê-lo com o portal do Azure:

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

    Migrar para a política de firewall

  2. Na página Migrar para a política de firewall, selecioneRever + criar.

  3. Selecione Criar.

    A implementação demora alguns minutos a ser concluída.

Também pode migrar regras clássicas existentes de Azure Firewall através de Azure PowerShell para criar políticas. Para obter mais informações, veja Migrate Azure Firewall configurations to Azure Firewall policy using PowerShell (Migrar configurações de Azure Firewall para Azure Firewall política com o PowerShell)

Migrar uma política existente com Azure PowerShell

Transform-Policy.ps1é um script Azure PowerShell que cria uma nova política Premium a partir de uma política Standard existente.

Tendo em conta um ID de política de firewall padrão, o script transforma-o numa política de firewall do Azure Premium. O script liga-se primeiro à 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 política premium chama-se <previous_policy_name>_premium. Se for uma transformação de política subordinada, permanecerá uma ligação para a política principal.

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 definições de intervalos privados de Informações sobre Ameaças e SNAT. Terá de anotar essas definições antes de continuar e migrá-las manualmente. Caso contrário, poderá encontrar uma filtragem de tráfego inconsistente com a nova firewall atualizada.

Este script requer a Azure PowerShell mais recente. Execute Get-Module -ListAvailable Az para ver que versões estão instaladas. Se precisar de instalar, veja Instalar Azure PowerShell módulo.

<#
    .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 Azure Firewall com parar/iniciar

Se utilizar Azure Firewall SKU Standard com a política de firewall, pode utilizar o método Allocate/Deallocate para migrar o SKU da Firewall para Premium. Esta abordagem de migração é suportada no Hub VNet e nas Firewalls do Hub Seguro. Ao migrar uma implementação do Hub Seguro, esta irá preservar o endereço IP público da firewall.

O requisito mínimo Azure PowerShell versão é 6.5.0. Para obter mais informações, consulte Az 6.5.0.

Migrar uma Firewall do Hub VNET

  • Desalocar a Firewall Standard

    $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 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 uma Firewall do Hub Seguro

  • Desalocar a Firewall Standard

    $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 uma Firewall Premium

Pode anexar uma política Premium à nova Firewall Premium com o portal do Azure:

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

Passos seguintes