Partager via


Migrer vers le Pare-feu Azure Premium

Vous pouvez migrer du Pare-feu Azure Standard vers le Pare-feu Azure Premium pour tirer parti des nouvelles fonctionnalités Premium. Pour plus d’informations sur les fonctionnalités du Pare-feu Azure Premium, consultez Fonctionnalités du Pare-feu Azure Premium.

Cet article vous guide tout au long des étapes nécessaires pour migrer manuellement votre pare-feu et votre stratégie Standard vers le niveau Premium.

Conseil

Le moyen le plus simple de modifier la référence SKU de votre Pare-feu Azure sans temps d’arrêt consiste à utiliser la fonctionnalité Modifier la référence SKU. Pour plus d’informations, consultez Mise à niveau/rétrogradation facile du Pare-feu Azure.

Avant de commencer la migration, vous devez comprendre les considérations relatives aux performances et planifier à l’avance la fenêtre de maintenance requise. Le temps d’arrêt est généralement compris entre 20 et 30 minutes.

Pour réussir la migration, vous devez effectuer les étapes générales suivantes :

  1. Créez une stratégie Premium basée sur votre stratégie Standard existante ou des règles classiques. À la fin de cette étape, votre nouvelle stratégie Premium inclura toutes vos règles et paramètres de stratégie existants.
  2. Migrer le Pare-feu Azure du niveau Standard vers le niveau Premium en utilisant une approche arrêter/démarrer.
  3. Attacher la stratégie Premium créée à votre Pare-feu Premium.

Important

La mise à niveau d’un pare-feu standard déployé en Asie du Sud-Est avec des zones de disponibilité n’est pas prise en charge actuellement.

Si vous utilisez Terraform pour déployer le Pare-feu Azure, vous pouvez utiliser Terraform pour migrer vers le Pare-feu Azure Premium. Pour plus d'informations, consultez Migrer le Pare-feu Azure Standard vers la version Premium à l'aide de Terraform.

Considérations relatives aux performances

Les performances sont un facteur à prendre en compte lors de la migration à partir de la référence SKU standard. L’inspection IDPS et TLS sont des opérations gourmandes en ressources de calcul. La référence SKU Premium utilise une référence SKU de machine virtuelle plus puissante qui s’adapte à un plus haut débit comparable à la référence SKU Standard. Pour plus d’informations sur les performances du Pare-feu Azure, consultez Performances du Pare-feu Azure.

Microsoft recommande aux clients d’effectuer des tests à grande échelle lors de leur déploiement Azure pour s’assurer que les performances du service de pare-feu répondent aux attentes.

Temps d’arrêt

Migrez votre pare-feu pendant une période de maintenance planifiée, car il y aura un temps d’arrêt lors de la Migration du pare-feu Azure de Standard vers Premium par arrêt/démarrage.

Migrer les règles classiques vers une stratégie standard

Pendant votre processus de migration, vous devrez peut-être migrer vos règles de pare-feu classiques vers une stratégie standard. Vous pouvez réaliser cette opération à l’aide du Portail Azure :

  1. Dans le portail Azure, sélectionnez votre pare-feu standard. Sur la page Vue d’ensemble, sélectionnez Migrer vers une stratégie de pare-feu.

    Capture d’écran montrant la stratégie de migration vers le pare-feu.

  2. Sur la page Migrer vers une stratégie de pare-feu, sélectionnez Vérifier + créer.

  3. Sélectionnez Create (Créer).

    Le déploiement prend quelques minutes.

Vous pouvez également créer des stratégies en migrant des règles classiques existantes du Pare-feu Azure àl’aide d’Azure PowerShell. Pour plus d’informations, consultez Migrer des configurations Pare-feu Azure vers une stratégie Pare-feu Azure à l’aide de PowerShell.

Migrer une stratégie existante à l’aide d’Azure PowerShell

Transform-Policy.ps1 est un script Azure PowerShell qui crée une stratégie Premium à partir d’une stratégie standard existante.

En fonction d’un ID de stratégie de pare-feu standard, le script le transforme en stratégie de Pare-feu Azure Premium. Le script se connecte d’abord à votre compte Azure, extrait la stratégie, transforme/ajoute différents paramètres, puis charge une nouvelle stratégie Premium. La nouvelle stratégie Premium est appelée <previous_policy_name>_premium. S’il s’agit d’une transformation de stratégie enfant, un lien vers la stratégie parente est conservé.

Exemple d’utilisation :

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

Important

Le script ne migre pas les paramètres des plages privées de l’intelligence des menaces et de SNAT. Vous devez noter ces paramètres avant de continuer et les migrer manuellement. Dans le cas contraire, vous risquez de rencontrer un filtrage incohérent du trafic avec votre nouveau pare-feu mis à niveau.

Ce script nécessite la dernière version d’Azure PowerShell. Exécutez Get-Module -ListAvailable Az pour voir quelles versions sont installées. Si vous devez l’installer, consultez Installer le module 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

Migrer le pare-feu Azure à l’aide d’une opération d’arrêt/démarrage

Si vous utilisez la référence SKU standard du Pare-feu Azure avec la stratégie de pare-feu, vous pouvez utiliser la méthode Allouer/Libérer pour migrer votre référence SKU de pare-feu vers Premium. Cette approche de migration est prise en charge sur les pare-feu de hub sécurisé et de hub de réseau virtuel. Lorsque vous migrez un déploiement de hub sécurisé, l’adresse IP publique du pare-feu est conservée.

La version minimale requise de Azure PowerShell est 6.5.0. Pour plus d’informations, consultez Az 6.5.0.

Migrer un pare-feu de hub de réseau virtuel

  • Libérer le pare-feu standard

    $azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
    $azfw.Deallocate()
    Set-AzFirewall -AzureFirewall $azfw
    
  • Allouer le pare-feu Premium (adresse IP publique unique)

    $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
    
  • Allouer le pare-feu Premium (plusieurs adresses IP publiques)

    $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
    
  • Allouer le pare-feu Premium en mode de tunnel forcé

    $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
    

Migrer un pare-feu de hub sécurisé

  • Libérer le pare-feu standard

    $azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
    $azfw.Deallocate()
    Set-AzFirewall -AzureFirewall $azfw
    
  • Allouer le pare-feu 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
    

Joindre une stratégie Premium à un pare-feu Premium

Vous pouvez joindre une stratégie Premium au nouveau pare-feu Premium à l’aide du portail Azure :

Capture d’écran montrant la stratégie de pare-feu

Étapes suivantes