ترحيل إلى Azure Firewall Premium
يمكنك ترحيل Azure Firewall Standard إلى Azure Firewall Premium. للاستفادة من قدرات النهج المميز الجديدة. للتعرف على ميزات Azure Firewall Premium، راجع قسم ميزات Azure Firewall Premium.
ترشدك هذه المقالة إلى الخطوات المطلوبة لترحيل جدار الحماية والنهج القياسي يدويًا إلى Premium.
تلميح
أسهل طريقة لتغيير Azure Firewall SKU بدون وقت تعطل هي استخدام ميزة تغيير SKU . لمزيد من المعلومات، راجع سهولة ترقية/تخفيض جدار حماية Azure.
قبل بدء الترحيل، افهم اعتبارات الأداء واخطط مسبقا لنافذة الصيانة المطلوبة. من المتوقع أن يكون وقت التعطل النموذجي من 20 إلى 30 دقيقة.
الخطوات العامة التالية مطلوبة للترحيل الناجح:
- إنشاء نهج Premium جديد استنادًا إلى النهج القياسي الحالي أو القواعد الكلاسيكية. بنهاية هذه الخطوة، سيتضمن نهجك المتميز الجديد جميع القواعد وإعدادات النهج الحالية.
- ترحيل Azure Firewall من Standard إلى Premium باستخدام stop/start.
- قم بإرفاق نهج Premium الذي تم إنشاؤه حديثا بجدار الحماية المميز.
هام
ترقية جدار حماية قياسي تم نشره في جنوب شرق آسيا مع مناطق التوفر غير مدعوم حاليا.
إذا كنت تستخدم Terraform لنشر Azure Firewall، يمكنك استخدام Terraform للترحيل إلى Azure Firewall Premium. لمزيد من المعلومات، راجع ترحيل Azure Firewall Standard إلى Premium باستخدام Terraform.
الاعتبارات الخاصة بالأداء
الأداء هو الاعتبار عند الترحيل من SKU القياسي. يعد فحص IDPS وTLS عمليات حسابية مكثفة. تستخدم وحدة SKU المتميزة وحدة SKU VM أكثر قوة، والتي تتدرج إلى معدل نقل أعلى قابل للمقارنة مع وحدة SKU القياسية. لمزيد من المعلومات حول Azure Firewall Performance، راجع Azure Firewall Performance
توصي Microsoft العملاء بإجراء اختبار كامل النطاق في نشر Azure الخاص بهم لضمان أن أداء خدمة جدار الحماية يلبي توقعاتهم.
وقت التعطل
قم بترحيل جدار الحماية الخاص بك أثناء وقت الصيانة المخطط له، حيث سيكون هناك بعض وقت التوقف عند ترحيل جدار حماية Azure من Standard إلى Premium باستخدام الإيقاف/البدء.
ترحيل القواعد الكلاسيكية إلى النهج القياسي
أثناء عملية الترحيل، قد تحتاج إلى ترحيل قواعد جدار الحماية الكلاسيكية إلى نهج قياسي. يمكنك القيام بذلك باستخدام مدخل Azure:
من مدخل Azure، حدد جدار الحماية القياسي. في الصفحة نظرة عامة، حدد "Migrate to firewall policy".
في صفحة نهج الترحيل إلى جدار الحماية حدد "Review + create".
حدد إنشاء.
يستغرق النشر بضع دقائق لإكماله.
يمكنك أيضا ترحيل القواعد الكلاسيكية الموجودة من Azure Firewall باستخدام Azure PowerShell لإنشاء نُهُج. لمزيد من المعلومات، راجع ترحيل تكوينات Azure Firewall إلى نهج Azure Firewall باستخدام PowerShell
ترحيل نهج موجود باستخدام Azure PowerShell
Transform-Policy.ps1
هو برنامج نصي لـ PowerShell Azure يقوم بإنشاء نهج مميز جديد من نهج قياسي موجود.
في وجود معرف نهج جدار الحماية القياسي، يقوم البرنامج النصي بتحويله إلى نهج Premium Azure Firewall. يتصل البرنامج النصي أولاً بحساب Azure الخاص بك، ويسحب النهج، ويحول/يضيف معلمات مختلفة، ثم يقوم بتحميل نهج مميز جديد. تمت تسمية النهج المميز الجديد باسم <previous_policy_name>_premium
. إذا كان تحويل نهج تابع، سيبقى ارتباط إلى النهج الأصل.
مثال الاستخدام:
Transform-Policy -PolicyId /subscriptions/XXXXX-XXXXXX-XXXXX/resourceGroups/some-resource-group/providers/Microsoft.Network/firewallPolicies/policy-name
هام
لا يقوم البرنامج النصي بترحيل إعدادات نطاقات التحليل الذكي للمخاطر والنطاقات الخاصة لـSNAT. ستحتاج إلى تدوين هذه الإعدادات قبل المتابعة وترحيلها يدوياً. وإلا، فقد تواجه تصفية غير متناسقة لنسبة استخدام الشبكة باستخدام جدار الحماية الجديد الذي تمت ترقيته.
يتطلب هذا البرنامج النصي أحدث Azure PowerShell. اضغط Get-Module -ListAvailable Az
لمعرفة الإصدارات المثبتة. إذا كنت بحاجة إلى التثبيت، راجع نموذجInstall 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
ترحيل Azure Firewall باستخدام الإيقاف/البدء
إذا كنت تستخدم Azure Firewall Standard SKU مع نهج جدار الحماية، يمكنك استخدام أسلوب التخصيص/إلغاء التخصيص لترحيل جدار الحماية SKU الخاص بك إلى مميز. يتم اعتماد نهج الترحيل هذا على كل من مركز شبكة ظاهرية وجدران حماية مركز الأمان. عند ترحيل نشر مركز الأمان، فإنه سيحتفظ بعنوان IP العام لجدار الحماية.
الحد الأدنى من متطلبات إصدار 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
تخصيص Firewall 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
تخصيص Firewall 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
تخصيص Firewall Premium في وضع النفق المفروض
$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
إرفاق نهج Premium بجدار حماية Premium
يمكنك إرفاق نهج Premium بجدار الحماية Premium الجديد باستخدام مدخل Microsoft Azure: