ترحيل بوابة تطبيق Azure وجدار حماية تطبيق ويب من الإصدار 1 إلى الإصدار 2

بوابة تطبيق Azure وجدار حماية تطبيق ويب (WAF) الإصدار 2 متوفر الآن، حيث يوفر ميزات إضافية مثل التحجيم التلقائي وتكرار منطقة التوفر. ومع ذلك، لا تتم ترقية بوابات الإصدار 1 الموجودة تلقائياً إلى الإصدار 2. إذا كنت تريد ترحيل من الإصدار 1 إلى الإصدار 2، اتبع الخطوات الواردة في هذه المقالة.

هناك مرحلتان في الترحيل:

  1. ترحيل التكوين
  2. ترحيل نسبة استخدام شبكة العميل

تتضمن هذه المقالة ترحيل التكوين. يختلف ترحيل نسبة استخدام الشبكة العميل حسب البيئة الخاصة بك. ومع ذلك، تُقدَم بعض التوصيات العامة رفيعةالمستوى.

نظرة عامة على الترحيل

يتوفر البرنامج النصي لـ Azure PowerShell بالميزات التالية:

  • إنشاء بوابة Standard_v2 أو WAF_v2 جديدة في الشبكة الفرعية الظاهرية التي تحددها.
  • نسخ التكوين المقترن ببوابة Standard الإصدار 1 أو WAF إلى بوابة Standard_V2 أو WAF_V2 التي تم إنشاؤها حديثاً.

المحاذير\القيود

  • تحتوي بوابة الإصدار 2 الجديدة على عناوين IP العامة والخاصة الجديدة. ليس من الممكن نقل عناوين IP المقترنة ببوابة الإصدار 1 الحالية بسلاسة إلى الإصدار 2. ومع ذلك، يمكنك تخصيص عنوان IP عام أو خاص موجود (غير مخصص) إلى بوابة الإصدار 2 الجديدة.
  • يجب توفير مساحة عنوان IP لشبكة فرعية أخرى داخل الشبكة الظاهرية حيث توجد بوابة الإصدار 1. لا يمكن إنشاء البرنامج النصي لبوابة الإصدار 2 في أية شبكات فرعية موجودة مسبقاً على بوابة الإصدار 1. ومع ذلك، إذا كانت الشبكة الفرعية الموجودة بالفعل على بوابة الإصدار 2، التي قد لا تزال تعمل بشرط وجود مساحة عنوان IP كافية.
  • إذا كان لديك مجموعة أمان شبكة اتصال أو توجيه معرف من قبل المستخدم المقترن بالشبكة الفرعية لبوابة الإصدار 2، تأكد من الالتزام بـ متطلبات NSG ومتطلبات UDR للترحيل الناجح
  • نُهج نقطة نهاية خدمة الشبكة الظاهرية غير مدعومة حالياً في الشبكة الفرعية لـ Application Gateway.
  • لترحيل تكوين TLS/SSL، يجب تحديد جميع شهادات TLS/SSL المستخدمة في بوابة v1.
  • إذا كان لديك وضع FIPS ممُكن لبوابة الإصدار 1 الخاصة بك، فإنه لن يتم ترحيلها إلى بوابة الإصدار 2 الجديدة. وضع FIPS غير مدعوم في الإصدار 2.
  • لا يدعم الإصدار 2 IPv6، لذلك لا يتم ترحيل بوابات الإصدار 1 الممكنة لـ IPv6. إذا قمت بتشغيل البرنامج النصي، قد لا يكتمل.
  • إذا كان لبوابة الإصدار 1 عنوان IP خاص فقط، يقوم البرنامج النصي بإنشاء عنوان IP عام وعنوان IP خاص لبوابة الإصدار 2 الجديدة. لا تدعم بوابات الإصدار 2 حالياً عناوين IP الخاصة فقط.
  • لا يتم تمرير الرؤوس التي تحتوي على أسماء تحتوي على أي شيء آخر غير الأحرف والأرقام والواصلات إلى التطبيق الخاص بك. ينطبق هذا فقط على أسماء العناوين وليس قيم العنوان. هذا هو كسر التغيير من الإصدار 1.
  • مصادقة NTLM وKerberos غير مدعومة من قبل Application Gateway v2. البرنامج النصي غير قادر على الكشف عما إذا كانت البوابة تخدم هذا النوع من نسبة استخدام الشبكة وقد تشكل تغييرا فاصلا من بوابات v1 إلى v2 إذا تم تشغيلها.

تنزيل البرنامج النصي

قم بتنزيل البرنامج النصي للترحيل من معرض PowerShell.

استخدم البرنامج النصي

هناك خياران لك وفقاً لإعدادات وتفضيلات بيئة PowerShell المحلية لديك:

  • إذا لم تكن لديك وحدات Azure Az مثبتة، أو لا تمانع في إزالة تثبيت وحدات Azure Az النمطية، فإن أفضل خيار هو استخدام الخيار Install-Script لتشغيل البرنامج النصي.
  • إذا كنت بحاجة إلى الاحتفاظ بوحدات Azure Az النمطية، فإن أفضل رهان لك هو تنزيل البرنامج النصي وتشغيله مباشرةً.

لتحديد ما إذا كان لديك وحدات Azure Az النمطية مثبتة، قم بتشغيل Get-InstalledModule -Name az. إذا كنت لا ترى أي وحدات Az مثبتة، فيمكنك استخدام طريقة Install-Script.

التثبيت باستخدام طريقة التثبيت النصي

لاستخدام هذا الخيار، يجب ألا تكون لديك وحدات Azure Az النمطية مثبتة على جهاز الكمبيوتر الخاص بك. إذا تم تثبيتها، فسيعرض الأمر التالي خطأ. يمكنك إما إزالة تثبيت وحدات Azure Az النمطية، أو استخدام الخيار الآخر لتنزيل البرنامج النصي يدوياً وتشغيله.

تشغيل البرنامج النصي مع الأمر التالي للحصول على أحدث إصدار:

Install-Script -Name AzureAppGWMigration -Force

يقوم هذا الأمر أيضاً بتثبيت وحدات Az النمطية المطلوبة.

التثبيت باستخدام البرنامج النصي مباشرة

إذا كانت لديك بعض وحدات Azure Az مثبتة ولا يمكنك إلغاء تثبيتها (أو لا تريد إلغاء تثبيتها)، فيمكنك تنزيل البرنامج النصي يدوياً باستخدام علامة التبويب تنزيل يدوي في رابط تنزيل البرنامج النصي. يتم تنزيل البرنامج النصي كملف nupkg خام. لتثبيت البرنامج النصي من ملف nupkg هذا، راجع تنزيل الحزمة يدوياً .

لتشغيل البرنامج النصي:

  1. استخدم Connect-AzAccount للاتصال بـ Azure.

  2. استخدم Import-Module Az لاستيراد الوحدات النمطية لـ Az.

  3. تشغيل Get-Help AzureAppGWMigration.ps1 لفحص المعلمات المطلوبة:

    AzureAppGwMigration.ps1
     -resourceId <v1 application gateway Resource ID>
     -subnetAddressRange <subnet space you want to use>
     -appgwName <string to use to append>
     -AppGwResourceGroupName <resource group name you want to use>
     -sslCertificates <comma-separated SSLCert objects as above>
     -trustedRootCertificates <comma-separated Trusted Root Cert objects as above>
     -privateIpAddress <private IP string>
     -publicIpResourceId <public IP name string>
     -validateMigration -enableAutoScale
    

    معلمات البرنامج النصي:

    • معرف المورد: [سلسلة]: مطلوب - هذا هو معرف Azure Resource لبوابة الإصدار 1 القياسية أو WAF الإصدار 1 الموجود. للعثور على قيمة السلسلة هذه، انتقل إلى مدخل Microsoft Azure، وحدد بوابة التطبيق أو مورد WAF، وانقر فوق الارتباط خصائص للبوابة. معرف المورد موجود على تلك الصفحة.

      يمكنك أيضاً تشغيل الأوامر Azure PowerShell التالية للحصول على معرف المورد:

      $appgw = Get-AzApplicationGateway -Name <v1 gateway name> -ResourceGroupName <resource group Name> 
      $appgw.Id
      
    • subnetAddressRange: [String]: مطلوبة - هذه هي مساحة عنوان IP التي قمت بتخصيصها (أو تريد تخصيصها) لشبكة فرعية جديدة تحتوي على بوابة v2 الجديدة. يجب تحديد هذا في رمز CIDR. على سبيل المثال: 10.0.0.0/24. لا تحتاج إلى إنشاء هذه الشبكة الفرعية مقدماً ولكن يجب أن تكون CIDR جزءاً من مساحة عنوان VNET. يقوم البرنامج النصي بإنشائه لك إذا لم يكن موجوداً، وإذا كان موجوداً، فإنه سيتم استخدام القائمة (تأكد من الشبكة الفرعية إذا كانت فارغة، وتحتوي على البوابة الإصدار 2 فقط إذا وجدت، ويحتوي على ما يكفي من برامج IPs المتوفرة).

    • appgwName: [سلسلة]: اختياري. هذه سلسلة تحددها لاستخدامها كاسم لبوابة Standard_v2 أو WAF_v2 الجديدة. إذا لم يتم توفير هذه المعلمة، سيتم استخدام اسم بوابة الإصدار 1 الموجود مع اللاحقة _v2 المُلحقة.

    • AppGwResourceGroupName: [سلسلة]: اختياري. اسم مجموعة الموارد حيث تريد إنشاء موارد بوابة التطبيق الإصدار 2 (القيمة الافتراضية ستكون <v1-app-gw-rgname>)

    • sslCertificates: [PSApplicationGatewaySslCertificate]: اختياري. يجب تحميل قائمة مفصولة بفاصلة من PSApplicationGatewaySslCertificate الكائنات التي تقوم بإنشائها لتمثيل شهادات TLS/SSL من بوابة الإصدار 1 إلى بوابة الإصدار 2 الجديدة. لكل من شهادات TLS/SSL التي تم تكوينها لبوابة الإصدار 1 القياسي أو WAF الإصدار 1، يمكنك إنشاء كائن PSApplicationGatewaySslCertificate جديد عبر الأمر New-AzApplicationGatewaySslCertificate المُوضح هنا. تحتاج المسار إلى ملف شهادات TLS/SSL وكلمة المرور.

      هذه المعلمة اختيارية فقط إذا لم يكن لديك وحدات إصغاء HTTPS مكونين لبوابة الإصدار 1 أو WAF. إذا كان لديك إعداد وحدة إصغاء HTTPS واحد على الأقل، يجب تحديد هذه المعلمة.

      $password = ConvertTo-SecureString <cert-password> -AsPlainText -Force
      $mySslCert1 = New-AzApplicationGatewaySslCertificate -Name "Cert01" `
         -CertificateFile <Cert-File-Path-1> `
         -Password $password 
      $mySslCert2 = New-AzApplicationGatewaySslCertificate -Name "Cert02" `
         -CertificateFile <Cert-File-Path-2> `
         -Password $password
      

      يمكنك التمرير في $mySslCert1, $mySslCert2 (مفصولة بفاصلة) في المثال السابق كقيم لهذه المعلمة في البرنامج النصي.

    • trustedRootCertificates: [PSApplicationGatewayTrustedRootCertificate]: اختياري. قائمة مفصولة بفاصلة لكائنات PSApplicationGatewayTrustedRootCertificate التي تقوم بإنشائها لتمثيل شهادات الجذر الموثوق به للمصادقة على مثيلات الخلفية لبوابة الإصدار 2.

      $certFilePath = ".\rootCA.cer"
      $trustedCert = New-AzApplicationGatewayTrustedRootCertificate -Name "trustedCert1" -CertificateFile $certFilePath
      

      لإنشاء قائمة من الكائنات PSApplicationGatewayTrustedRootCertificate، راجع New-AzApplicationGatewayTrustedRootCertificate.

    • privateIpAddress: [سلسلة]: اختياري. عنوان IP خاص محدد تريد إقرانه ببوابة الإصدار 2 الجديدة. يجب أن يكون هذا من نفس الشبكة الظاهرية التي تقوم بتخصيصها لبوابة الإصدار 2 الجديدة. إذا لم يتم تحديد هذا، يخصص البرنامج النصي عنوان IP خاص لبوابة الإصدار 2 الخاصة بك.

    • publicIpResourceId: [سلسلة]: اختياري. مورد معرف عنوان IP العمومي الموجود (وحدة حفظ المخزون القياسية) في اشتراكك الذي تريد تخصيصه إلى بوابة الإصدار 2 الجديدة. إذا لم يتم تحديد هذا، يخصص البرنامج النصي عنوان IP عام جديد في نفس مجموعة الموارد. الاسم هو اسم بوابة الإصدار 2 مع إلحاق -IP.

    • validateMigration: [التبديل]: اختياري. استخدم هذه المعلمة إذا كنت تريد من البرنامج النصي القيام ببعض عمليات التحقق من صحة مقارنة التكوين الأساسية بعد إنشاء بوابة الإصدار 2 ونسخة التكوين. بشكل افتراضي، لم يتم التحقق من الصحة.

    • enableAutoScale: [التبديل]: اختياري. استخدم هذه المعلمة إذا كنت تريد من البرنامج النصي تمكين "تغيير الحجم التلقائي" على بوابة الإصدار 2 الجديدة بعد إنشائها. بشكل افتراضي، يتم تعطيل "تغيير الحجم التلقائي". يمكنك تمكينه يدوياً في وقت لاحق على بوابة الإصدار 2 المنشأة حديثاً.

  4. قم بتشغيل البرنامج النصي باستخدام المعلمات المناسبة. قد يستغرق الأمر من خمس إلى سبع دقائق للانتهاء.

    مثال

    AzureAppGWMigration.ps1 `
       -resourceId /subscriptions/8b1d0fea-8d57-4975-adfb-308f1f4d12aa/resourceGroups/MyResourceGroup/providers/Microsoft.Network/applicationGateways/myv1appgateway `
       -subnetAddressRange 10.0.0.0/24 `
       -appgwname "MynewV2gw" `
       -AppGwResourceGroupName "MyResourceGroup" `
       -sslCertificates $mySslCert1,$mySslCert2 `
       -trustedRootCertificates $trustedCert `
       -privateIpAddress "10.0.0.1" `
       -publicIpResourceId "/subscriptions/8b1d0fea-8d57-4975-adfb-308f1f4d12aa/resourceGroups/MyResourceGroup/providers/Microsoft.Network/publicIPAddresses/MyPublicIP" `
       -validateMigration -enableAutoScale
    

ترحيل نسبة استخدام الشبكة للعميل

أولاً، تحقق من أن البرنامج النصي يقوم بنجاح بإنشاء بوابة الإصدار 2 الجديدة مع التكوين الدقيق المُرحل من بوابة الإصدار 1 الخاصة بك. يمكنك التحقق من ذلك من مدخل Azure.

أيضاً، يمكنك إرسال كمية صغيرة من نسبة استخدام الشبكة من خلال بوابة الإصدار 2 كاختبار يدوي.

فيما يلي بعض السيناريوهات التي قد تتلقى فيها بوابة التطبيق الحالية (القياسية) نسبة استخدام الشبكة للعميل وتوصياتنا لكل منها:

  • منطقة نظام أسماء المجالات DNS المُخصصة (على سبيل المثال، contoso.com) التي تُشير إلى عنوان IP الأمامي (باستخدام سجل A) المقترن ببوابة الإصدار 1 القياسية أو بوابة WAF الإصدار 1.

    يمكنك تحديث سجل نظام أسماء المجالات DNS للإشارة إلى عنوان IP الأمامي أو تسمية DNS المقترنة ببوابة تطبيق الإصدار 2 القياسي. اعتماداً على TTL المكون على سجل DNS الخاص بك، قد يستغرق بعض الوقت لكافة نسبة استخدام شبكة العميل الخاص بك للترحيل إلى بوابة الإصدار 2 الجديدة.

  • منطقة نظام أسماء المجالات DNS المُخصصة (على سبيل المثال، contoso.com) التي تُشير إلى تسمية DNS (على سبيل المثال: myappgw.eastus.cloudapp.azure.com باستخدام سجل CNAME) المقترن ببوابة الإصدار 1.

    لديك خياران:

    • إذا كنت تستخدم عناوين IP العامة على بوابة التطبيق الخاص بك، يمكنك القيام ترحيل متعدد المستويات للتحكم باستخدام ملف تعريف إدارة نسبة استخدام الشبكة لتوجيه نسبة استخدام الشبكة بشكل متزايد (أسلوب توجيه نسبة استخدام الشبكة المرجحة) إلى بوابة الإسدار 2 الجديدة.

      يمكنك القيام بذلك عن طريق إضافة تسميات DNS لكلٍ من بوابات تطبيق الإصدار 1 و الإصدار 2 إلى ملف تعريف إدارة نسبة استخدام الشبكةو CNAMEing سجل DNS المخصص (على سبيل المثال، www.contoso.com) إلى مجال إدارة نسبة استخدام الشبكة (على سبيل المثال، contoso.trafficmanager.net).

    • أو يمكنك تحديث سجل DNS للمجال المخصص للإشارة إلى تسمية DNS لبوابة تطبيق الإصدار 2 الجديدة. اعتماداً على TTL المكون على سجل DNS الخاص بك، قد يستغرق بعض الوقت لكافة نسبة استخدام شبكة العميل الخاص بك للترحيل إلى بوابة الإصدار 2 الجديدة.

  • يتصل العملاء بعنوان IP الأمامي لبوابة التطبيق.

    قم بتحديث العملاء لاستخدام عنوان (عناوين) IP المقترنة ببوابة تطبيق الإصدار 2 المنشأة حديثاً. نوصي بعدم استخدام عناوين IP مباشرة. خذ بعين الاعتبار استخدام تسمية اسم DNS (على سبيل المثال، yourgateway.eastus.cloudapp.azure.com) المقترنة ببوابة التطبيق التي يمكنك CNAME إلى منطقة DNS المخصصة الخاصة بك (على سبيل المثال، contoso.com).

الأسئلة الشائعة

هل توجد أي قيود في البرنامج النصي Azure PowerShell لترحيل التكوين من الإصدار 1 إلى الإصدار 2؟

نعم. راجع المحاذير/القيود.

هل هذه المقالة والبرنامج النصي Azure PowerShell قابل لتطبيق منتج WAF لبوابة التطبيق أيضاً؟

نعم.

هل يقوم البرنامج النصي Azure PowerShell أيضاً بالتبديل عبر نسبة استخدام الشبكة من بوابة الإصدار 1 إلى بوابة الإصدار 2 التي تم إنشاؤها حديثاً؟

كلا. يرحِل البرنامج النصي Azure PowerShell التكوين فقط. الترحيل الفعلي لنسبة استخدام الشبكة من مسؤوليتك وتحت تحكمك.

هل بوابة الإصدار 2 الجديدة التي تم إنشاؤها بواسطة البرنامج النصي PowerShell Azure حجمها مناسب لمعالجة كافة نسبة استخدام الشبكة التي يتم حالياً تقديمها بواسطة بوابة الإصدار 1 الخاصة بي؟

يقوم البرنامج النصي لـ Azure PowerShell بإنشاء بوابة إصدار 2 جديدة بحجم مناسب لمعالجة نسبة استخدام الشبكة على بوابة الإصدار 1 الموجودة لديك. يتم تعطيل تغيير الحجم التلقائي بشكل افتراضي، ولكن يمكنك تمكين تغيير الحجم التلقائي عند تشغيل البرنامج النصي.

لقد قمت بتكوين بوابة v1 لإرسال السجلات إلى تخزين Azure. هل البرنامج النصي نسخ هذا التكوين للإصدار 2 كذلك؟

كلا. لا يقوم البرنامج النصي بنسخ هذا التكوين نسخا متماثلا ل v2. يجب إضافة تكوين السجل بشكل منفصل إلى بوابة الإصدار 2 التي تم ترحيلها.

هل يدعم هذا البرنامج النصي شهادات يتم تحميلها إلى Azure KeyVault ؟

كلا. لا يدعم البرنامج النصي حاليا الشهادات في KeyVault. ومع ذلك، يتم النظر في هذا الإصدار في المستقبل.

واجهت بعض المشاكل مع استخدام هذا السيناريو. كيف يمكنني الحصول على المساعدة؟

يمكنك الاتصال بدعم Azure ضمن الموضوع "التكوين والإعداد/الترحيل إلى وحدة حفظ المخزون الإصدار 2". تعرف على المزيد حول دعم Azure هنا.

الخطوات التالية

تعرف على بوابة التطبيق الإصدار 2