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 :
- 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.
- Migrer le Pare-feu Azure du niveau Standard vers le niveau Premium en utilisant une approche arrêter/démarrer.
- 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 :
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.
Sur la page Migrer vers une stratégie de pare-feu, sélectionnez Vérifier + créer.
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 :