Поделиться через


Изменение номера SKU брандмауэра Azure

В этой статье показано, как изменить SKU вашего брандмауэра Azure с "Стандартный" на "Премиум". Вы можете выполнить обновление с уровня "Стандартный" до "Премиум", чтобы воспользоваться преимуществами расширенных возможностей безопасности или перейти с уровня "Премиум" на "Стандартный", если эти функции больше не нужны. Брандмауэр Azure Premium предоставляет расширенные функции защиты от угроз, включая idPS, проверку TLS и фильтрацию URL-адресов.

SKU брандмауэра можно изменить с помощью одного из двух методов:

  • Простой метод изменения номера SKU (рекомендуется): обновление без простоя или понижение с помощью портала Azure, PowerShell или Terraform
  • Метод миграции вручную: пошаговая миграция для сложных сценариев или когда простое изменение SKU недоступно.

Дополнительные сведения о функциях Брандмауэра Azure Premium см. в разделе "Функции брандмауэра Azure Premium".

Предпосылки

Перед началом работы убедитесь, что у вас есть следующие ресурсы:

  • Подписка Azure с существующим развертыванием брандмауэра Azure
  • Соответствующие разрешения для изменения ресурсов брандмауэра (роль участника сети или выше)
  • Модуль Azure PowerShell версии 6.5.0 или более поздней версии (для методов PowerShell)
  • Период планового обслуживания (для метода миграции вручную)

Это важно

Эта статья относится только к номерам SKU брандмауэра Azure уровня "Стандартный" и "Премиум". Номер SKU уровня "Базовый" брандмауэра Azure не поддерживает изменения номера SKU и должен быть перенесен на номер SKU уровня "Стандартный" перед обновлением до уровня "Премиум". Всегда выполняйте операции по изменению номера SKU во время запланированного обслуживания и тщательно тестируйте процесс в непроизводственных средах.

Самый простой способ изменить номер SKU брандмауэра Azure с нулевым временем простоя — использовать функцию изменения номера SKU . Этот метод поддерживает обновление с уровня "Стандартный" до "Премиум" и понижение уровня "Премиум" до "Стандартный".

Когда следует использовать простое изменение номера SKU

Используйте простой метод изменения номера SKU, если:

  • У вас есть брандмауэр Azure с политикой брандмауэра (а не классическими правилами)
  • Брандмауэр развернут в поддерживаемом регионе
  • Вы хотите свести к минимуму время простоя (нулевое время простоя с помощью этого метода)
  • У вас есть стандартное развертывание без сложных пользовательских конфигураций
  • В случае понижения: Ваша политика Премиум не использует функции, эксклюзивные для Премиум и несовместимые со Стандартом

Рекомендации по политике для изменений SKU

Обновление до уровня "Премиум"

В процессе обновления выберите способ обработки политики брандмауэра:

  • Существующая политика Premium: выберите существующую политику Premium, чтобы подключиться к обновленному брандмауэру.
  • Существующая стандартная политика: используйте вашу текущую стандартную политику. Система автоматически дублирует и обновляет ее до политики Premium
  • Создание новой политики Premium: позвольте системе создать новую политику Premium на основе текущей конфигурации.

Понижение до уровня "Стандартный"

При понижении уровня "Премиум" на "Стандартный" учитывайте следующие требования политики:

Это важно

Перед переходом на вариант "Стандартный" необходимо удалить или отключить эксклюзивные функции премиум-класса.

Премиум функции, которые нужно учесть перед понижением уровня:

  • Проверка TLS: отключение правил проверки TLS и удаление связанных сертификатов
  • IDPS (обнаружение и предотвращение вторжений): изменение режима IDPS с оповещения и запрета на только оповещение или отключение
  • Фильтрация URL-адресов: замените правила фильтрации URL-адресов на фильтрацию с использованием полных доменных имен (FQDN), где возможно
  • Веб-категории: удаление или замена правил веб-категорий определенными правилами полного доменного имени

Параметры обработки политик:

  • Использование существующей стандартной политики: выберите существующую политику уровня "Стандартный", которая не содержит функции Premium
  • Создание политики уровня "Стандартный": система может создать новую стандартную политику, автоматически удаляя специальные функции уровня "Премиум"
  • Изменение текущей политики: вручную удалите функции Premium из текущей политики перед понижением уровня

Изменение номера SKU с помощью портала Azure

Чтобы изменить номер SKU брандмауэра с помощью портала Azure, выполните следующие действия.

Обновление до уровня "Премиум"

  1. Войдите на портал Azure.
  2. Перейдите к ресурсу брандмауэра Azure.
  3. На странице "Обзор" выберите "Изменить номер SKU".
  4. В диалоговом окне изменения номера SKU выберите "Премиум" в качестве целевого номера SKU.
  5. Выберите вариант политики:
    • Выберите существующую политику Premium или
    • Разрешить системе обновить текущую политику уровня "Стандартный" до уровня "Премиум"
  6. Нажмите кнопку "Сохранить", чтобы начать обновление.

Понижение до уровня "Стандартный"

  1. Войдите на портал Azure.
  2. Перейдите к ресурсу Брандмауэра Azure Premium.
  3. Перед понижением уровня: убедитесь, что политика брандмауэра не содержит эксклюзивных функций уровня "Премиум" (проверка TLS, оповещение IDPS и режим запрета, фильтрация URL-адресов, веб-категории).
  4. На странице "Обзор" выберите "Изменить номер SKU".
  5. В диалоговом окне изменения номера SKU выберите "Стандартный " в качестве целевого номера SKU.
  6. Выберите вариант политики:
    • Выберите существующую стандартную политику или
    • Разрешить системе создавать новую политику уровня "Стандартный" (функции уровня "Премиум" удаляются автоматически)
  7. Нажмите кнопку "Сохранить", чтобы начать понижение.

Процесс изменения номера SKU обычно завершается в течение нескольких минут с нулевым временем простоя.

Снимок экрана: обновление SKU.

Изменение номера SKU PowerShell и Terraform

Вы также можете вносить изменения номера SKU с помощью:

  • PowerShell: измените sku_tier свойство на "Премиум" или "Стандартный"
  • Terraform: обновите атрибут sku_tier в вашей конфигурации до требуемого SKU

Ограничения

Простой метод изменения номера SKU имеет следующие ограничения:

Общие ограничения:

  • Не поддерживает Основной SKU брандмауэра Azure — пользователи Основного SKU должны сначала перейти на Стандартный.
  • Недоступно для брандмауэров с определенными сложными конфигурациями
  • Ограниченная доступность в некоторых регионах
  • Требуется существующая политика брандмауэра (недоступна для классических правил)

Ограничения понижения:

  • Функции уровня "Премиум" (проверка TLS, оповещение IDPS и режим запрета, фильтрация URL-адресов, веб-категории) должны быть удалены перед понижением уровня
  • Если политика Premium содержит несовместимые функции, необходимо изменить политику или создать новую политику уровня "Стандартный"
  • Для некоторых конфигураций правил может потребоваться ручная корректировка после понижения

Если простой метод изменения номера SKU недоступен для вашего сценария, используйте метод миграции вручную, описанный в следующем разделе.

Метод миграции вручную

Если простой метод обновления недоступен или подходит для развертывания, можно использовать метод миграции вручную. Этот подход обеспечивает больший контроль, но требует простоя.

Когда следует использовать миграцию вручную

Используйте миграцию вручную, когда:

  • Простое обновление недоступно для вашего сценария
  • У вас есть классические правила брандмауэра, необходимые для миграции
  • У вас есть сложные пользовательские конфигурации
  • Вам нужен полный контроль над процессом миграции
  • Брандмауэр развернут в Юго-Восточной Азии с зонами доступности

Вопросы, связанные с производительностью

Производительность следует учитывать при переходе со стандартного SKU. Проверка IDPS и TLS — это операции с интенсивным вычислением. SKU уровня "Premium" использует более мощный SKU виртуальной машины, который масштабируется до более высокой пропускной способности, сравнимой со SKU уровня "Standard". Дополнительные сведения о производительности брандмауэра Azure см. в статье "Производительность брандмауэра Azure".

Корпорация Майкрософт рекомендует клиентам выполнять полномасштабное тестирование в развертывании Azure, чтобы обеспечить производительность службы брандмауэра в соответствии с вашими ожиданиями.

Соображения по простою

Запланируйте период обслуживания при использовании метода ручной миграции, так как в процессе остановки и запуска происходит некоторое время простоя (обычно 20–30 минут).

Общие сведения о шагах миграции

Для успешной миграции вручную требуются следующие общие действия.

  1. Создание новой политики Уровня "Премиум" на основе существующих стандартных политик или классических правил
  2. Перенос брандмауэра Azure из уровня "Стандартный" в "Премиум" с помощью остановки и запуска
  3. Присоедините политику Premium к вашему фаерволу Premium

Шаг 1. Перенос классических правил в стандартную политику

Если у вас есть классические правила брандмауэра, сначала перенесите их в стандартную политику с помощью портала Azure:

  1. На портале Azure выберите стандартный брандмауэр.
  2. На странице Обзор выберите "Перейти к политике брандмауэра".
  3. На странице "Миграция на политику брандмауэра" выберите "Просмотр и создание".
  4. Нажмите кнопку "Создать".

Развертывание занимает несколько минут.

Вы также можете перенести существующие классические правила с помощью Azure PowerShell. Дополнительные сведения см. в статье "Перенос конфигураций брандмауэра Azure" в политику брандмауэра Azure с помощью PowerShell.

Шаг 2. Создание политики premium с помощью PowerShell

Используйте следующий сценарий PowerShell, чтобы создать новую политику уровня "Премиум" из существующей стандартной политики:

Это важно

Скрипт не переносит параметры аналитики угроз и частных диапазонов SNAT. Необходимо записать эти параметры, прежде чем продолжить и перенести их вручную.

<#
    .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
        $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" -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

Пример использования:

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

Шаг 3. Перенос брандмауэра Azure с помощью остановки и запуска

Если вы используете SKU брандмауэра Azure уровня "Стандартный" с политикой брандмауэра, вы можете использовать метод "Выделить/освободить" для переноса вашего SKU брандмауэра на Premium. Этот подход к миграции поддерживается как в концентраторе виртуальной сети, так и в брандмауэрах Secure Hub.

Замечание

Минимальное требование версии Azure PowerShell — 6.5.0. Дополнительные сведения см. в статье Az 6.5.0.

Перенос брандмауэра концентратора виртуальной сети

Отмена размещения стандартного брандмауэра:

$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw

Выделение брандмауэра Premium (один общедоступный IP-адрес):

$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

Выделение брандмауэра Premium (несколько общедоступных IP-адресов):

$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

Выделите премиум-брандмауэр в режиме принудительного туннеля:

$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

Перенос брандмауэра Центра безопасности

Отмена размещения стандартного брандмауэра:

$azfw = Get-AzFirewall -Name "<firewall-name>" -ResourceGroupName "<resource-group-name>"
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw

Распределение брандмауэра Премиум:

$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

Шаг 4. Присоединение политики Premium

После обновления брандмауэра до уровня "Премиум" подключите политику Premium с помощью портала Azure:

  1. Перейдите к брандмауэру уровня "Премиум" на портале Azure.
  2. На странице обзора выберите политику брандмауэра.
  3. Выберите только что созданную политику Premium.
  4. Нажмите кнопку "Сохранить".

Снимок экрана: политика брандмауэра

Миграция Terraform

Если вы используете Terraform для развертывания брандмауэра Azure, вы можете использовать Terraform для миграции в Брандмауэр Azure Premium. Дополнительные сведения см. в статье "Миграция брандмауэра Azure уровня "Премиум" с помощью Terraform.

Устранение проблем с изменением SKU

Распространенные проблемы и решения

  • Простое изменение номера SKU недоступно: используйте метод миграции вручную, описанный в этой статье.
  • Ошибки миграции политик. Убедитесь, что установлены правильные версии модуля PowerShell
  • Время простоя дольше, чем ожидалось: проверка сетевого подключения и доступности ресурсов
  • Проблемы с производительностью после обновления: просмотрите рекомендации по производительности и провести тщательное тестирование
  • Понижение уровня, заблокированное функциями Premium: удалите или отключите эксклюзивные функции premium перед попыткой понижения уровня

Устранение неполадок при понижении версии

Если вы не можете перейти с уровня "Премиум" на "Стандартный":

  1. Проверьте наличие функций Premium: убедитесь, что политика брандмауэра не содержит:

    • Правила проверки TLS
    • Система обнаружения и предотвращения вторжений в режиме уведомления и блокировки
    • Правила фильтрации URL-адресов
    • Правила веб-категории
  2. Параметры изменения политики:

    • Создание новой политики уровня "Стандартный" без функций "Премиум"
    • Изменение существующей политики для удаления функций Premium
    • Определение и удаление несовместимых правил с помощью Azure PowerShell
  3. Шаги проверки:

    # Check current firewall policy for Premium features
    $policy = Get-AzFirewallPolicy -ResourceGroupName "myResourceGroup" -Name "myPolicy"
    
    # Review policy settings for Premium features
    $policy.ThreatIntelMode
    $policy.IntrusionDetection
    $policy.TransportSecurity
    

Известные ограничения

  • Обновление брандмауэра стандартного уровня, развернутого в Юго-Восточной Азии с зонами доступности, в настоящее время не поддерживает ручной миграции.
  • Простое изменение номера SKU не поддерживает брандмауэры SKU уровня "Базовый" — пользователи с номером SKU уровня "Базовый" должны сначала перейти на номер SKU уровня "Стандартный" перед обновлением до уровня "Премиум"
  • Для некоторых пользовательских конфигураций может потребоваться подход к миграции вручную.
  • Понижение уровня с активными функциями Premium завершается сбоем до тех пор, пока эти функции не будут удалены

Дальнейшие шаги