إنهاء TLS مع شهادات Key Vault

Azure Key Vault هو مخزن سري يديره النظام الأساسي يمكنك استخدامه لحماية الأسرار والمفاتيح وشهادات TLS/SSL. يدعم بوابة تطبيق Azure التكامل مع Key Vault لشهادات الخادم المرفقة بالمستمعين تمكين HTTPS. يقتصر هذا الدعم على V2 SKU من بوابة التطبيق.

توفر بوابة التطبيق طرازين لإنهاء TLS:

  • توفير شهادات TLS/SSL المرفقة بمستمع. هذا الطراز هو الطريقة التقليدية لتمرير شهادات TLS/SSL إلى بوابة التطبيق لإنهاء TLS.
  • قم بتوفير مرجع إلى شهادة أو سرKey Vault موجود عند إنشاء وحدة إصغاء ممكنة HTTPS.

يوفر تكامل بوابة التطبيق مع Key Vault العديد من المزايا، بما في ذلك:

  • أمان أقوى، لأنه لا يتم التعامل مع شهادات TLS/SSL مباشرة من قبل فريق تطوير التطبيقات. يسمح التكامل لفريق أمان منفصل ب:
    • إعداد مدخل التطبيق.
    • التحكم في دورات حياة بوابة التطبيق.
    • امنح أذونات لبوابات التطبيق المحددة للوصول إلى الشهادات المخزنة في Key Vault.
  • دعم استيراد الشهادات الموجودة إلى Key Vault الخاص بك. أو استخدم Key Vault APIs لإنشاء شهادات جديدة وإدارتها مع أي من شركاء Key Vault الموثوق بهم.
  • دعم التجديد التلقائي للشهادات المخزنة في Key Vault.

الشهادات المعتمدة

تعتمد بوابة التطبيق حاليا الشهادات التي تم التحقق من صحتها من قبل البرامج فقط. الشهادات التي تم التحقق من صحتها من وحدة أمان الأجهزة (HSM) غير مدعومة.

بعد تكوين بوابة التطبيق لاستخدام شهادات "قبو المفتاح"، المثيلات الخاصة به استرداد الشهادة من Key Vault وتثبيتها محليا لإنهاء TLS. تقوم المثيلات باستقصاء Key Vault على فترات أربع ساعات لاسترداد إصدار مجدد من الشهادة، إذا كان موجودا. إذا تم العثور على شهادة محدثة، يتم تدوير شهادة TLS/SSL المقترنة بمستمع HTTPS تلقائيا.

تلميح

يفرض أي تغيير على Application Gateway فحصا مقابل Key Vault لمعرفة ما إذا كانت هناك أي إصدارات جديدة من الشهادات متوفرة. يتضمن ذلك، على سبيل المثال لا الحصر، التغييرات على تكوينات IP للواجهة الأمامية والمستمعين والقواعد وتجمعات الواجهة الخلفية وعلامات الموارد والمزيد. إذا تم العثور على شهادة محدثة، يتم تقديم الشهادة الجديدة على الفور.

تستخدم بوابة تطبيق معرف سري في "قبو المفتاح" للإشارة إلى الشهادات. بالنسبة إلى Azure PowerShell أو Azure CLI أو إدارة موارد Azure، نوصي بشدة باستخدام معرف سري لا يحدد إصداراً. بهذه الطريقة، تقوم Application Gateway تلقائيا بتدوير الشهادة إذا كان هناك إصدار أحدث متوفر في Key Vault الخاص بك. مثال على URI السري بدون إصدار هو https://myvault.vault.azure.net/secrets/mysecret/. يمكنك الرجوع إلى خطوات PowerShell المتوفرة في القسم التالي.

تدعم بوابة Azure شهادات Key Vault فقط، وليس الأسرار. لا تزال بوابة التطبيق تدعم الرجوع إلى الأسرار من Key Vault، ولكن فقط من خلال موارد غير المدخل مثل PowerShell و Azure CLI و APIs وقوالب إدارة موارد Azure (قوالب ARM).

يتم دعم المراجع إلى Key Vaults في اشتراكات Azure الأخرى، ولكن يجب تكوينها عبر قالب ARM وAzure PowerShell وCLI وBicep وما إلى ذلك. تكوين مخزن المفاتيح عبر الاشتراك غير مدعوم من قبل بوابة التطبيق عبر مدخل Microsoft Azure اليوم.

إعدادات الشهادة في Key Vault

لإنهاء TLS، بوابة التطبيق يعتمد فقط الشهادات في تنسيق Exchange المعلومات الشخصية (PFX). يمكنك إما استيراد شهادة موجودة أو إنشاء شهادة جديدة في Key Vault. لتجنب أية حالات فشل، تأكد من تعيين حالة الشهادة إلى ممكن في Key Vault.

كيف يعمل التكامل

تكامل بوابة التطبيق مع Key Vault هو عملية تكوين من ثلاث خطوات:

Diagram that shows three steps for integrating Application Gateway with Key Vault.

إشعار

يدعم تكامل Azure Application Gateway مع Key Vault كلا من نهج الوصول إلى Vault ونماذج أذونات التحكم في الوصول المستندة إلى الدور في Azure.

الحصول على هوية مدارة معينة من قبل المستخدم

تستخدم بوابة التطبيق هوية مدارة لاسترداد الشهادات من Key Vault نيابة عنك.

يمكنك إما إنشاء هوية مدارة جديدة يعينها المستخدم أو إعادة استخدام هوية موجودة مع التكامل. لإنشاء هوية مدارة جديدة يعينها المستخدم، راجع إنشاء هوية مدارة يعينها المستخدم باستخدام مدخل Microsoft Azure.

تفويض الهوية المدارة المعينة من قبل المستخدم إلى Key Vault

حدد نهج الوصول لاستخدام الهوية المدارة المعينة من قبل المستخدم مع Key Vault الخاص بك:

  1. إنشاء Key Vault في مدخل Azure.

  2. حدد Key Vault الذي يحتوي على شهادتك.

  3. إذا كنت تستخدم نهج الوصول إلى Vault لنموذج الأذونات: حدد نهج الوصول، وحدد + إضافة نهج الوصول، وحدد الحصول على أذونات سرية، واختر الهوية المدارة المعينة من قبل المستخدم لتحديد الأساسي. ثم حدد حفظ.

    إذا كنت تستخدم التحكم في الوصول المستند إلى دور Azure، فاتبع المقالة تعيين وصول هوية مدارة إلى مورد وتعيين الهوية المدارة المعينة من قبل المستخدم دور مستخدم Key Vault Secrets إلى Azure Key Vault.

التحقق من أذونات جدار الحماية إلى Key Vault

اعتبارا من 15 مارس 2021، يتعرف Key Vault على بوابة التطبيق كخدمة موثوق بها من خلال الاستفادة من الهويات المدارة للمستخدم للمصادقة على Azure Key Vault. باستخدام نقاط نهاية الخدمة وتمكين خيار الخدمات الموثوق بها لجدار حماية Key Vault، يمكنك إنشاء حدود شبكة آمنة في Azure. يمكنك منع الوصول إلى حركة المرور من جميع الشبكات (بما في ذلك حركة المرور على الإنترنت) إلى Key Vault ولكن لا يزال بإمكانك الوصول إلى Key Vault لمورد بوابة التطبيق ضمن اشتراكك.

عند استخدام Key Vault مقيد، استخدم الخطوات التالية لتكوين بوابة التطبيق لاستخدام جدران الحماية والشبكات الظاهرية:

تلميح

الخطوات من 1 إلى 3 غير مطلوبة إذا تم تمكين نقطة نهاية خاصة في Key Vault. يمكن لبوابة التطبيق الوصول إلى Key Vault باستخدام عنوان IP الخاص.

هام

إذا كنت تستخدم نقاط النهاية الخاصة للوصول إلى Key Vault، يجب ربط منطقة DNS الخاصة privatelink.vaultcore.azure.net، التي تحتوي على السجل المقابل إلى Key Vault المشار إليه، بالشبكة الظاهرية التي تحتوي على Application Gateway. قد يستمر استخدام خوادم DNS المخصصة على الشبكة الظاهرية بدلا من محللات Azure DNS المتوفرة، ولكن يجب أن تظل منطقة DNS الخاصة مرتبطة بالشبكة الظاهرية أيضا.

  1. في مدخل Microsoft Azure، في Key Vault، حدد Networking.

  2. في علامة التبويب Firewalls and virtual networks ، حدد Selected networks.

  3. بالنسبة للشبكات الظاهرية، حدد + إضافة شبكات ظاهرية موجودة، ثم أضف الشبكة الظاهرية والشبكة الفرعية لمثيل بوابة التطبيق. إذا طلب منك ذلك، فتأكد من إلغاء تحديد خانة الاختيار عدم تكوين نقطة (نقاط) نهاية خدمة "Microsoft.KeyVault" في هذا الوقت لضمان Microsoft.KeyVault تمكين نقطة نهاية الخدمة على الشبكة الفرعية.

  4. حدد نعم للسماح للخدمات الموثوق بها بتجاوز جدار حماية Key Vault.

    Screenshot that shows selections for configuring Application Gateway to use firewalls and virtual networks.

إشعار

إذا قمت بنشر مثيل Application Gateway عبر قالب ARM باستخدام إما Azure CLI أو PowerShell، أو عبر تطبيق Azure تم نشره من مدخل Microsoft Azure، يتم تخزين شهادة SSL في Key Vault كملف PFX مشفر بواسطة Base64. يجب عليك إكمال الخطوات فياستخدام Azure Key Vault لتمرير قيمة المعلمة الآمنة أثناء النشر.

من المهم بشكل خاص تعيين enabledForTemplateDeployment إلى true. قد تحتوي الشهادة على كلمة مرور أو لا تحتوي عليها. للحصول على شهادة مع كلمة مرور، يوضح المثال التالي تكوينا محتملا للإدخل sslCertificatesproperties لتكوين قالب ARM لبوابة التطبيق.

"sslCertificates": [
     {
         "name": "appGwSslCertificate",
         "properties": {
             "data": "[parameters('appGatewaySSLCertificateData')]",
            "password": "[parameters('appGatewaySSLCertificatePassword')]"
        }
    }
]

يتم البحث عن appGatewaySSLCertificateData قيم و appGatewaySSLCertificatePassword من Key Vault، كما هو موضح في الأسرار المرجعية ذات المعرف الديناميكي. اتبع المراجع السابقة parameters('secretName') لترى كيفية حدوث البحث. إذا كانت الشهادة بدون كلمة مرور، فأحذفpassword الإدخال.

تكوين وحدة إصغاء بوابة التطبيق

نموذج نهج الوصول إلى Key Vault permission Vault

انتقل إلى Application Gateway في مدخل Microsoft Azure وحدد علامة التبويب Listeners . حدد Add Listener (أو حدد وحدة استماع موجودة) وحدد HTTPS للبروتوكول.

ضمن اختيار شهادة، حدد إنشاء جديد ثم حدد اختيار شهادة من Key Vault ضمن إعدادات Https.

بالنسبة إلى اسم الشهادة، اكتب اسما مألوفا للشهادة التي سيتم الرجوع إليها في Key Vault. اختر الهوية المدارة وKey Vault والشهادة.

بمجرد التحديد، حدد إضافة (في حالة الإنشاء) أو حفظ (في حالة التحرير) لتطبيق شهادة Key Vault المشار إليها على وحدة الاستماع.

نموذج إذن التحكم في الوصول المستند إلى الدور في Key Vault Azure

تدعم بوابة التطبيق الشهادات المشار إليها في Key Vault عبر نموذج إذن التحكم في الوصول المستند إلى الدور. يجب إكمال الخطوات القليلة الأولى للإشارة إلى Key Vault عبر قالب ARM أو Bicep أو CLI أو PowerShell.

إشعار

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

في هذا المثال، سنستخدم PowerShell للإشارة إلى سر Key Vault جديد.

# Get the Application Gateway we want to modify
$appgw = Get-AzApplicationGateway -Name MyApplicationGateway -ResourceGroupName MyResourceGroup
# Specify the resource id to the user assigned managed identity - This can be found by going to the properties of the managed identity
Set-AzApplicationGatewayIdentity -ApplicationGateway $appgw -UserAssignedIdentityId "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyManagedIdentity"
# Get the secret ID from Key Vault
$secret = Get-AzKeyVaultSecret -VaultName "MyKeyVault" -Name "CertificateName"
$secretId = $secret.Id.Replace($secret.Version, "") # Remove the secret version so Application Gateway uses the latest version in future syncs
# Specify the secret ID from Key Vault 
Add-AzApplicationGatewaySslCertificate -KeyVaultSecretId $secretId -ApplicationGateway $appgw -Name $secret.Name
# Commit the changes to the Application Gateway
Set-AzApplicationGateway -ApplicationGateway $appgw

بمجرد تنفيذ الأوامر، يمكنك الانتقال إلى Application Gateway في مدخل Microsoft Azure وتحديد علامة التبويب Listeners. انقر فوق Add Listener (أو حدد existing) وحدد Protocol to HTTPS.

ضمن اختيار شهادة ، حدد الشهادة المسماة في الخطوات السابقة. بمجرد التحديد، حدد إضافة (في حالة الإنشاء) أو حفظ (في حالة التحرير) لتطبيق شهادة Key Vault المشار إليها على وحدة الاستماع.

التحقيق في أخطاء Key Vault وحلها

إشعار

من المهم مراعاة أي تأثير على مورد بوابة التطبيق عند إجراء تغييرات أو إبطال الوصول إلى مورد Key Vault. إذا كانت بوابة التطبيق غير قادرة على الوصول إلى مخزن المفاتيح المقترن أو تحديد موقع كائن الشهادة فيه، تقوم بوابة التطبيق تلقائيا بتعيين وحدة الاستماع إلى حالة معطل.

يمكنك تحديد هذا الحدث الذي يعتمد عليه المستخدم عن طريق عرض Resource Health لبوابة التطبيق. اعرف المزيد.

لا تقوم بوابة تطبيق Azure باستقصاء إصدار الشهادة المجددة على Key Vault في كل فاصل زمني مدته أربع ساعات. كما أنه يسجل أي خطأ ويتم دمجه مع Azure Advisor لعرض أي تكوين خاطئ مع توصية لإصلاحه.

  1. تسجيل الدخول إلى مدخل Azure
  2. حدد Advisor
  3. حدد فئة التميز التشغيلي من القائمة اليسرى.
  4. تجد توصية بعنوان حل مشكلة Azure Key Vault لبوابة التطبيق الخاصة بك، إذا كانت بوابتك تواجه هذه المشكلة. تأكد من تحديد الاشتراك الصحيح من الخيارات المنسدلة أعلاه.
  5. حدده لعرض تفاصيل الخطأ ومورد مخزن المفاتيح المقترن ودليل استكشاف الأخطاء وإصلاحها لإصلاح المشكلة الدقيقة.

من خلال تحديد مثل هذا الحدث من خلال Azure Advisor أو Resource Health، يمكنك حل أي مشاكل تكوين مع Key Vault بسرعة. نوصي بشدة بالاستفادة من تنبيهات Azure Advisor و Resource Health للبقاء على اطلاع عند اكتشاف مشكلة.

لتنبيه Advisor، استخدم "حل مشكلة Azure Key Vault لبوابة التطبيق" في نوع التوصية الموضح:
Diagram that shows steps for Advisor alert.

يمكنك تكوين تنبيه صحة الموارد كما هو موضح:
Diagram that shows steps for Resource health alert.

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

تكوين إنهاء TLS مع شهادات Azure Key Vault باستخدامAzure PowerShell