Eseguire la migrazione a Firewall di Azure Premium

È possibile eseguire la Firewall di Azure Standard Firewall di Azure Premium per sfruttare le nuove funzionalità Premium standard. Per altre informazioni sulle funzionalità Firewall di Azure Premium, vedere Firewall di Azure Premium funzionalità .

I due esempi seguenti illustrano come:

  • Eseguire la migrazione di criteri standard esistenti usando Azure PowerShell
  • Eseguire la migrazione di un firewall standard esistente (con regole classiche) Firewall di Azure Premium con un Premium criteri.

Se si usa Terraform per distribuire il Firewall di Azure, è possibile usare Terraform per eseguire la migrazione a Firewall di Azure Premium. Per altre informazioni, vedere Migrate Firewall di Azure Standard to Premium using Terraform.

Considerazioni sulle prestazioni

Le prestazioni sono una considerazione per la migrazione dallo SKU standard. L'ispezione IDPS e TLS sono operazioni a elevato utilizzo di calcolo. Lo SKU Premium usa uno SKU di vm più potente che si ridimensiona a una velocità effettiva massima di 30 Gbps paragonabile a quello standard. La velocità effettiva di 30 Gbps è supportata se configurata con IDPS in modalità avviso. L'uso di IDPS in modalità di rifiuto e di ispezione TLS aumenta l'utilizzo della CPU. Potrebbe verificarsi una riduzione della velocità effettiva massima.

La velocità effettiva del firewall potrebbe essere inferiore a 30 Gbps quando una o più firme sono impostate su Avviso e Nega o sulle regole dell'applicazione con l'ispezione TLS abilitata. Microsoft consiglia ai clienti di eseguire test su larga scala nella distribuzione di Azure per garantire che le prestazioni del servizio firewall soddisfino le aspettative.

Tempo di inattività

Eseguire la migrazione del firewall durante un periodo di manutenzione pianificato, in quanto si verifica un tempo di inattività durante la migrazione.

Eseguire la migrazione di un criterio esistente usando Azure PowerShell

Transform-Policy.ps1è uno script Azure PowerShell che crea un nuovo Premium criteri da un criterio Standard esistente.

Dato un ID criteri del firewall standard, lo script lo trasforma in un Premium Firewall di Azure criteri. Lo script si connette prima all'account Azure, esegue il pull dei criteri, trasforma/aggiunge vari parametri e quindi carica un nuovo Premium criteri. Il nuovo criterio Premium è denominato <previous_policy_name>_premium .

Esempio d'uso:

Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name

Importante

Lo script non esegue la migrazione delle impostazioni di Threat Intelligence. È necessario prendere nota di queste impostazioni prima di procedere ed eseguirne la migrazione manualmente.

<#
    .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 "Recived null policy"
        exit(1)
    }
    if ($Policy.GetType().Name -ne "PSAzureFirewallPolicy") {
        Write-Host "Resource must be of type Microsoft.Network/firewallPolicies" -ForegroundColor Red
        exit(1)
    }

    if ($Policy.Sku.Tier -eq "Premium") {
        Write-Host "Policy is already premium"
        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 
                        ThreatIntelMode = $Policy.ThreatIntelMode 
                        BasePolicy = $Policy.BasePolicy.Id
                        DnsSetting = $Policy.DnsSettings 
                        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" -ErrorAction SilentlyContinue
    if (($null -eq $networkModule) -or ($networkModule.Version -lt 4.5)){
        Write-Host "Please install Az.Network module version 4.5.0 or higher, see instructions: https://github.com/Azure/azure-powershell#installation"
        exit(1)
    }
    Import-Module Az.Network -MinimumVersion 4.5.0
}

ValidateAzNetworkModuleExists
$policy = Get-AzFirewallPolicy -ResourceId $script:PolicyId
ValidatePolicy -Policy $policy
TransformPolicyToPremium -Policy $policy

Eseguire la migrazione di un firewall standard esistente usando il portale di Azure

Questo esempio illustra come usare il portale di Azure per eseguire la migrazione di un firewall standard (regole classiche) a Firewall di Azure Premium con un Premium criteri.

  1. Nell'portale di Azure selezionare il firewall standard. Nella pagina Panoramica selezionare Esegui la migrazione ai criteri del firewall.

    Eseguire la migrazione ai criteri del firewall

  2. Nella pagina Migrate to firewall policy (Esegui migrazione a criteri firewall) selezionare Review + create (Rivedi e crea).

  3. Selezionare Crea.

    Il completamento della distribuzione richiede alcuni minuti.

  4. Usare lo Transform-Policy.ps1 script Azure PowerShell per trasformare questo nuovo criterio standard in un Premium criteri.

  5. Nel portale selezionare la risorsa firewall standard.

  6. In Automazione selezionare Esporta modello. Mantenere aperta questa scheda del browser. Si tornerà a questo in un secondo momento.

    Suggerimento

    Per assicurarsi di non perdere il modello, scaricarlo e salvarlo nel caso in cui la scheda del browser venga chiusa o aggiornata.

  7. Aprire una nuova scheda del browser, passare alla portale di Azure e aprire il gruppo di risorse che contiene il firewall.

  8. Eliminare l'istanza del firewall standard esistente.

    Per il completamento dell'operazione sono richiesti alcuni minuti.

  9. Tornare alla scheda del browser con il modello esportato.

  10. Selezionare Distribuisci, quindi nella pagina Distribuzione personalizzata selezionare Modifica modello.

  11. Modificare il testo del modello:

    1. Nella Microsoft.Network/azureFirewalls risorsa, in Properties sku , modificare da tier "Standard" a "Premium".

    2. Nel modello Parameters modificare defaultValue per firewallPolicies_FirewallPolicy_,<your policy name>_externalid da:

      "/subscriptions/<subscription id>/resourceGroups/<your resource group>/providers/Microsoft.Network/firewallPolicies/FirewallPolicy_<your policy name>"

      in:

      "/subscriptions/<subscription id>/resourceGroups/<your resource group>/providers/Microsoft.Network/firewallPolicies/FirewallPolicy_<your policy name>_premium"

  12. Selezionare Save (Salva).

  13. Selezionare Rivedi e crea.

  14. Selezionare Crea.

Al termine della distribuzione, è ora possibile configurare tutte le nuove Firewall di Azure Premium funzionalità.

Passaggi successivi