Вы можете перейти с Брандмауэра Azure уровня "Стандартный" на Брандмауэр Azure уровня "Премиум", чтобы получить доступ к новым возможностям. Дополнительные сведения см. в статье Функции Брандмауэра Azure уровня "Премиум".
В этой статье описываются действия, необходимые для ручной миграции c брандмауэра и политики уровня "Стандартный" на уровень "Премиум".
Совет
Самый простой способ изменить номер SKU Брандмауэр Azure без простоя — использовать функцию "Изменить номер SKU". Дополнительные сведения см. в разделе Брандмауэр Azure простое обновление и понижение уровня.
Прежде чем начать миграцию, изучите рекомендации по повышению производительности и запланируйте предварительный план для требуемого периода обслуживания. Как правило, время простоя составляет 20–30 минут.
Для успешной миграции нужно выполнить следующие шаги:
Создать новую политику "Премиум" на основе существующей политики "Стандартный" или классических правил. К концу этого шага новая политика "Премиум" будет включать все существующие правила и параметры политики.
При переходе с SKU "Стандартный" нужно учитывать аспект производительности. IDPS и проверка TLS — это операции с ресурсоемкими вычислениями. Номер SKU уровня "Премиум" использует более мощный номер SKU виртуальной машины, который масштабируется до более высокой пропускной способности, сравнимой со стандартным номером SKU. Дополнительные сведения о производительности Брандмауэр Azure см. в разделе Брандмауэр Azure Производительность
Майкрософт рекомендует клиентам выполнять полномасштабную проверку при развертывании Azure, чтобы убедиться, что производительность службы Брандмауэра соответствует их ожиданиям.
Перенести классические правила в политику уровня "Стандартный"
В процессе миграции может потребоваться перенести классические правила брандмауэра в политику уровня "Стандартный". Это можно сделать на портале Azure.
На портале Azure выберите стандартный брандмауэр. На странице Обзор выберите Перенести на политику брандмауэра.
На странице Переход на политику брандмауэра выберите Обзор + создать.
Перенести существующую политику с помощью Azure PowerShell
Transform-Policy.ps1 представляет собой сценарий Azure PowerShell, который создает новую политику Premium на основе существующей политики уровня «Стандартный».
При наличии стандартного идентификатора политики Брандмауэра этот сценарий преобразует его в политику Брандмауэра Azure уровня "Премиум". Сценарий сначала подключается к вашей учетной записи Azure, извлекает политику, преобразует/добавляет различные параметры, после чего загружает новую политику уровня «Премиум». Новая политика премиум-класса называется <previous_policy_name>_premium. Если это преобразование дочерней политики, ссылка на родительскую политику сохранится.
Сценарий не переносит параметры аналитики угроз и частных диапазонов SNAT. Вам нужно будет записать данные настройки, прежде чем продолжить и перенести их вручную. В противном случае может возникнуть несогласованная фильтрация трафика с помощью нового обновленного брандмауэра.
Для работы этого сценария требуется последняя версия модуля Azure PowerShell. Запустите Get-Module -ListAvailable Az для просмотра установленных версий. Если необходимо выполнить установку, см. статью об установке модуля Azure PowerShell.
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 = $NewPolicyNamefunction 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 ($ruleCollectionGroupin$Policy.RuleCollectionGroups) {
$ruleResource = Get-AzResource -ResourceId$ruleCollectionGroup.Id
$ruleToTransform = Get-AzFirewallPolicyRuleCollectionGroup -AzureFirewallPolicy$Policy -Name$ruleResource.Name
$ruleCollectionGroup = @{
FirewallPolicyObject = $premiumPolicy
Priority = $ruleToTransform.Properties.Priority
Name = $ruleToTransform.Name
}
if ($ruleToTransform.Properties.RuleCollection.Count) {
$ruleCollectionGroup["RuleCollection"] = $ruleToTransform.Properties.RuleCollection
}
Set-AzFirewallPolicyRuleCollectionGroup @ruleCollectionGroup
}
}
function ValidateAzNetworkModuleExists {
Write-Host"Validating needed module exists"$networkModule = Get-InstalledModule -Name"Az.Network" -MinimumVersion4.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" -MinimumVersion4.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 -MinimumVersion4.5.0Import-Module Az.Resources -MinimumVersion4.2.0
}
ValidateAzNetworkModuleExists
$policy = Get-AzFirewallPolicy -ResourceId$script:PolicyId
ValidatePolicy -Policy$policy
TransformPolicyToPremium -Policy$policy
Перенос Брандмауэра Azure с помощью команды "отключить/запустить"
При использовании SKU Брандмауэра Azure уровня "Стандартный" с политикой брандмауэра перенос SKU Брандмауэра на уровень "Премиум" можно осуществить с помощью метода выделения и отмены выделения. Этот подход к миграции поддерживается как на концентраторе виртуальной сети, так и на брандмауэре защищенного концентратора. При переносе безопасного центра развертывания он сохранит общедоступный IP-адрес брандмауэра.
Версия Azure PowerShell должна быть не ниже 6.5.0. Дополнительные сведения см. в разделе Az 6.5.0.
Перенос брандмауэра концентратора виртуальной сети
Опишите, как брандмауэр Azure защищает ресурсы Виртуальной сети Azure, включая функции Брандмауэра Azure, правила, параметры развертывания и администрирование с помощью Диспетчера брандмауэра Azure.