قم بتكوين المفاتيح التي يديرها العميل لتشفير بيانات ثابتة في مراكز الأحداث

توفر مراكز الأحداث تشفير البيانات الثابتة باستخدام Azure Storage Service Encryption (Azure SSE). تستخدم خدمة "مراكز الأحداث" Azure Storage لتخزين البيانات. يتم تشفير جميع البيانات المخزنة في Azure Storage باستخدام مفاتيح مُدارة من Microsoft. إذا كنت تستخدم المفتاح الخاص بك (يُشار إليه أيضًا باسم إحضار المفتاح الخاص بك (BYOK) أو المفتاح المُدار بواسطة العميل)، فلا تزال البيانات مشفرة باستخدام المفتاح المُدار من Microsoft، ولكن بالإضافة إلى ذلك، سيتم تشفير المفتاح الذي تديره Microsoft باستخدام مفتاح يديره العميل. تمكنك هذه الميزة من إنشاء، تدوير، تعطيل، وإبطال الوصول إلى المفاتيح التي يديرها العميل والمستخدمة لتشفير المفاتيح التي تديرها Microsoft. تمكين ميزة BYOK هي عملية إعداد لمرة واحدة على مساحة الاسم الخاصة بك.

هام

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

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

توضح هذه المقالة كيفية تكوين مخزن مفاتيح باستخدام مفاتيح يديرها العميل باستخدام مدخل Microsoft Azure. لمعرفة كيفية إنشاء مخزن مفاتيح باستخدام مدخل Microsoft Azure، راجع بداية سريعة: إنشاء Azure Key Vault باستخدام مدخل Microsoft Azure .

تمكين المفاتيح المُدارة بواسطة العميل (مدخل Microsoft Azure)

لتمكين المفاتيح المُدارة بواسطة العميل في مدخل Microsoft Azure، اتبع هذه الخطوات. إذا كنت تستخدم الطبقة المخصصة، فانتقل إلى المجموعة المخصصة لمراكز الأحداث أولاً.

  1. حدد مساحة الاسم التي تريد تمكين BYOK فيها.

  2. في صفحة الإعدادات لمساحة اسم مراكز الأحداث، حدد تشفير .

  3. حدد تشفير المفتاح المُدار بواسطة العميل في وضع الراحة كما هو موضح في الصورة التالية.

    Enable customer managed key

قم بإعداد خزنة مفاتيح بالمفاتيح

بعد تمكين المفاتيح المُدارة بواسطة العميل، تحتاج إلى ربط المفتاح المُدار بواسطة العميل بمساحة اسم مراكز الأحداث. تدعم مراكز الأحداث فقط Azure Key Vault. إذا قمت بتمكين الخيار التشفير باستخدام المفتاح المُدار بواسطة العميل في القسم السابق، فستحتاج إلى استيراد المفتاح إلى Azure Key Vault. أيضًا، يجب أن يتم تكوين المفتاحين Soft Delete و Do Not Purge للمفتاح. يمكن تكوين هذه الإعدادات باستخدام PowerShell أو CLI .

  1. لإنشاء key vault جديد، اتبع «Quickstart» Azure Key Vault. لمزيدٍ من المعلومات حول استيراد المفاتيح الحالية، راجع «About» المفاتيح والأسرار والشهادات .

    هام

    يتطلب استخدام المفاتيح التي يديرها العميل مع مراكز الأحداث أن يحتوي مخزن المفاتيح على خاصيتين مطلوبتين تم تكوينهما. وهما: حذف مبدئي وعدم إزالة. يتم تمكين هذه الخصائص افتراضيًا عند إنشاء مخزن مفاتيح جديد في مدخل Microsoft Azure. ومع ذلك، إذا كنت بحاجة إلى تمكين هذه الخصائص في مخزن مفاتيح موجود، فيجب عليك استخدام PowerShell أو Azure CLI.

  2. لتشغيل الحماية من الحذف الناعم والمسح عند إنشاء قبو، استخدم الأمر az keyvault create .

    az keyvault create --name ContosoVault --resource-group ContosoRG --location westus --enable-soft-delete true --enable-purge-protection true
    
  3. لإضافة حماية من المسح إلى مخزن موجود (تم تمكين الحذف الناعم بالفعل)، استخدم الأمر « az keyvault update» .

    az keyvault update --name ContosoVault --resource-group ContosoRG --enable-purge-protection true
    
  4. أنشئ مفاتيح باتباع الخطوات التالية:

    1. لإنشاء مفتاح جديد، حدد «Generate/Import» من قائمة «Keys» ضمن «Settings».

      Select Generate/Import button

    2. عيّن «Options» على إنشاء وقم بتسمية المفتاح.

      Create a key

    3. يمكنك الآن تحديد هذا المفتاح لربطه بمساحة مراكز الأحداث للتشفير من القائمة المنسدلة.

      Select key from key vault

      إشعار

      للتكرار، يمكنك إضافة ما يصل إلى 3 مفاتيح. في حالة انتهاء صلاحية أحد المفاتيح، أو تعذر الوصول إليه، سيتم استخدام المفاتيح الأخرى للتشفير.

    4. املأ التفاصيل الخاصة بالمفتاح وانقر على «Select». سيؤدي هذا إلى تمكين تشفير المفتاح الذي تديره Microsoft باستخدام مفتاحك (المفتاح الذي يديره العميل).

الهويات المُدارة

هناك نوعان من الهويات المدارة التي يمكنك تعيينها إلى مساحة اسم "مراكز الأحداث".

  • مخصص من قبل النظام : يمكنك تمكين هوية مُدارة مباشرةً في مساحة اسم مراكز الأحداث. عند تمكين هوية مدارة معينة من قبل النظام، يتم إنشاء هوية في Microsoft Entra مرتبطة لدورة حياة مساحة اسم مراكز الأحداث هذه. لذلك عندما يتم حذف مساحة الاسم، يقوم Azure تلقائياً بحذف الهوية نيابة عنك. حسب التصميم، يمكن لمورد Azure (مساحة الاسم) فقط استخدام هذه الهوية لطلب الرموز المميزة من معرف Microsoft Entra.

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

    لمزيد من المعلومات، راجع ما الهويات المدارة لموارد Azure؟.

التشفير باستخدام الهويات المعينة من قِبل النظام (قالب)

يوضح هذا القسم كيفية القيام بالمهام التالية باستخدام قوالب Azure Resource Manager .

  1. أنشئ مساحة اسم مراكز الأحداث بهوية خدمة مُدارة.
  2. أنشئ خزنة مفاتيح وامنح هوية الخدمة حق الوصول إلى خزنة المفاتيح.
  3. قم بتحديث مساحة اسم مراكز الأحداث بمعلومات خزنة المفاتيح (مفتاح / قيمة).

إنشاء مجموعة "مراكز الأحداث" ومساحة الاسم بهوية الخدمة المُدارة

يوضح لك هذا القسم كيفية إنشاء مساحة اسم مراكز الأحداث مع هوية الخدمة المُدارة باستخدام قالب Azure Resource Manager وPowerShell.

  1. أنشئ قالب Azure Resource Manager لإنشاء مساحة اسم لـ مراكز الأحداث بهوية خدمة مُدارة. قم بتسمية الملف: CreateEventHubClusterAndNamespace.json :

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Event Hub cluster."
             }
          },
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace to be created in cluster."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          }
       },
       "resources":[
          {
             "type":"Microsoft.EventHub/clusters",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('clusterName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Dedicated",
                "capacity":1
             }
          },
          {
             "type":"Microsoft.EventHub/namespaces",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "identity":{
                "type":"SystemAssigned"
             },
             "sku":{
                "name":"Standard",
                "tier":"Standard",
                "capacity":1
             },
             "properties":{
                "isAutoInflateEnabled":false,
                "maximumThroughputUnits":0,
                "clusterArmId":"[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]"
             },
             "dependsOn":[
                "[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]"
             ]
          }
       ],
       "outputs":{
          "EventHubNamespaceId":{
             "type":"string",
             "value":"[resourceId('Microsoft.EventHub/namespaces',parameters('namespaceName'))]"
          }
       }
    }
    
  2. قم بإنشاء ملف معلمة نموذج باسم: CreateEventHubClusterAndNamespaceParams.json .

    إشعار

    استبدل القيم التالية:

    • <EventHubsClusterName> - اسم مجموعة "مراكز الأحداث"
    • <EventHubsNamespaceName> - اسم مساحة اسم "مراكز الأحداث"
    • <Location> - موقع مساحة اسم "مراكز الأحداث"
    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "value":"<EventHubsClusterName>"
          },
          "namespaceName":{
             "value":"<EventHubsNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          }
       }
    }
    
    
  3. قم بتشغيل أمر PowerShell التالي لنشر القالب لإنشاء مساحة اسم مراكز الأحداث. بعد ذلك، استرجع معرّف مساحة اسم مراكز الأحداث لاستخدامها لاحقاً. استبدل {MyRG} باسم مجموعة الموارد قبل تشغيل الأمر.

    $outputs = New-AzResourceGroupDeployment -Name CreateEventHubClusterAndNamespace -ResourceGroupName {MyRG} -TemplateFile ./CreateEventHubClusterAndNamespace.json -TemplateParameterFile ./CreateEventHubClusterAndNamespaceParams.json
    
    $EventHubNamespaceId = $outputs.Outputs["eventHubNamespaceId"].value
    

منح الوصول إلى هوية مساحة الاسم لمراكز الأحداث إلى خزنة المفاتيح

  1. قم بتشغيل الأمر التالي لإنشاء key vault مع تمكين الحماية من التطهير و «soft-delete».

    New-AzureRmKeyVault -Name {keyVaultName} -ResourceGroupName {RGName}  -Location {location} -EnableSoftDelete -EnablePurgeProtection    
    

    (أو)

    قم بتشغيل الأمر التالي لتحديث key vault موجودة . حدد قيمًا لمجموعة الموارد وأسماء خزنة المفاتيح قبل تشغيل الأمر.

    ($updatedKeyVault = Get-AzureRmResource -ResourceId (Get-AzureRmKeyVault -ResourceGroupName {RGName} -VaultName {keyVaultName}).ResourceId).Properties| Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"-Force | Add-Member -MemberType "NoteProperty" -Name "enablePurgeProtection" -Value "true" -Force
    
  2. عيّن سياسة الوصول إلى خزنة المفاتيح بحيث يمكن للهوية المُدارة لمساحة مراكز الأحداث الوصول إلى قيمة المفتاح في خزنة المفاتيح. استخدم معرف مساحة اسم لوحات الوصل الأحداث من المقطع السابق.

    $identity = (Get-AzureRmResource -ResourceId $EventHubNamespaceId -ExpandProperties).Identity
    
    Set-AzureRmKeyVaultAccessPolicy -VaultName {keyVaultName} -ResourceGroupName {RGName} -ObjectId $identity.PrincipalId -PermissionsToKeys get,wrapKey,unwrapKey,list
    

تشفير البيانات في مساحة اسم مراكز الأحداث باستخدام مفتاح مُدار بواسطة العميل من مخزن المفاتيح

لقد قمت بالخطوات التالية حتى الآن:

  1. تم إنشاء مساحة اسم مميزة بهوية مُدارة.
  2. قم بإنشاء خزنة مفاتيح ومنح الوصول المُدار للهوية إلى خزينة المفاتيح.

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

  1. أنشئ ملف JSON باسم CreateEventHubClusterAndNamespace.json بالمحتوى التالي:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Event Hub cluster."
             }
          },
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace to be created in cluster."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          },
          "keyVaultUri":{
             "type":"string",
             "metadata":{
                "description":"URI of the KeyVault."
             }
          },
          "keyName":{
             "type":"string",
             "metadata":{
                "description":"KeyName."
             }
          }
       },
       "resources":[
          {
             "type":"Microsoft.EventHub/namespaces",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "identity":{
                "type":"SystemAssigned"
             },
             "sku":{
                "name":"Standard",
                "tier":"Standard",
                "capacity":1
             },
             "properties":{
                "isAutoInflateEnabled":false,
                "maximumThroughputUnits":0,
                "clusterArmId":"[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]",
                "encryption":{
                   "keySource":"Microsoft.KeyVault",
                   "keyVaultProperties":[
                      {
                         "keyName":"[parameters('keyName')]",
                         "keyVaultUri":"[parameters('keyVaultUri')]"
                      }
                   ]
                }
             }
          }
       ]
    }
    
  2. قم بإنشاء ملف معلمة نموذج: UpdateEventHubClusterAndNamespaceParams.json .

    إشعار

    استبدل القيم التالية:

    • <EventHubsClusterName> - اسم مجموعة "محاور الأحداث".
    • <EventHubsNamespaceName> - اسم مساحة اسم "مراكز الأحداث"
    • <Location> - موقع مساحة اسم "مراكز الأحداث"
    • <KeyVaultName> - اسم مخزن المفاتيح الخاص بك
    • <KeyName> - اسم المفتاح الموجود في key vault
    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "clusterName":{
             "value":"<EventHubsClusterName>"
          },
          "namespaceName":{
             "value":"<EventHubsNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          },
          "keyName":{
             "value":"<KeyName>"
          },
          "keyVaultUri":{
             "value":"https://<KeyVaultName>.vault.azure.net"
          }
       }
    }
    
  3. قم بتشغيل أمر PowerShell التالي لنشر قالب Resource Manager. استبدل {MyRG} باسم مجموعة الموارد قبل تشغيل الأمر.

    New-AzResourceGroupDeployment -Name UpdateEventHubNamespaceWithEncryption -ResourceGroupName {MyRG} -TemplateFile ./UpdateEventHubClusterAndNamespace.json -TemplateParameterFile ./UpdateEventHubClusterAndNamespaceParams.json 
    

التشفير باستخدام الهويات المعينة من قِبل المستخدم (قالب)

  1. قم بإنشاء هوية معينة من قِبل المستخدم .
  2. أنشئ خزنة مفاتيح وامنح الوصول إلى الهوية التي يعينها المستخدم عبر سياسات الوصول.
  3. أنشئ مساحة اسم مراكز الأحداث بهوية المستخدم المُدارة ومعلومات المخزن الأساسي.

إنشاء هوية يُعينها المستخدم

اتبع الإرشادات الواردة في مقالة «Create» هوية مُدارة يعينها المستخدم لإنشاء هوية يعينها المستخدم. يمكنك أيضًا إنشاء هوية مخصصة للمستخدم باستخدام CLI و PowerShell و قالب Azure Resource Manager و REST .

إشعار

يمكنك تعيين ما يصل إلى 4 هويات مستخدم لمساحة الاسم. يتم حذف هذه الاقترانات عند حذف مساحة الاسم أو عند تمرير identity -> type في القالب إلى None.

قم بإنشاء key vault ومنح حق الوصول إلى الهوية التي يعينها المستخدم

  1. قم بتشغيل الأمر التالي لإنشاء key vault مع تمكين الحماية من التطهير و «soft-delete».

    New-AzureRmKeyVault -Name "{keyVaultName}" -ResourceGroupName {RGName} -Location "{location}" -EnableSoftDelete -EnablePurgeProtection           
    

    (أو)

    قم بتشغيل الأمر التالي لتحديث key vault موجودة. حدد قيمًا لمجموعة الموارد وأسماء خزنة المفاتيح قبل تشغيل الأمر.

    ($updatedKeyVault = Get-AzureRmResource -ResourceId (Get-AzureRmKeyVault -ResourceGroupName {RGName} -VaultName {keyVaultName}).ResourceId).Properties| Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"-Force | Add-Member -MemberType "NoteProperty" -Name "enablePurgeProtection" -Value "true" -Force            
    
  2. احصل على المعرف الأساسي للخدمة لهوية المستخدم باستخدام أمر PowerShell التالي. في المثال، ud1 هو الهوية المعينة من قِبل المستخدم لاستخدامها في التشفير.

    $servicePrincipal=Get-AzADServicePrincipal -SearchString "ud1"    
    
  3. امنح هوية المستخدم المعينة حق الوصول إلى key vault من خلال تعيين سياسة وصول.

    Set-AzureRmKeyVaultAccessPolicy -VaultName {keyVaultName} -ResourceGroupName {RGName} -ObjectId $servicePrincipal.Id -PermissionsToKeys get,wrapKey,unwrapKey,list    
    

    إشعار

    يمكنك إضافة ما يصل إلى 3 مفاتيح ولكن يجب أن تكون هوية المستخدم المستخدمة للتشفير هي نفسها لجميع المفاتيح. حالياً، يتم دعم هوية تشفير واحدة فقط.

أنشئ مساحة اسم مراكز الأحداث مع هوية المستخدم ومعلومات خزنة المفاتيح

يمنحك هذا القسم مثالاً يوضح لك كيفية القيام بالمهام التالية باستخدام قالب Azure Resource Manager.

  • قم بتعيين هوية يديرها المستخدم إلى مساحة اسم مراكز الأحداث.

                "identity": {
                    "type": "UserAssigned",
                    "userAssignedIdentities": {
                        "[parameters('identity').userAssignedIdentity]": {}
                    }
                },
    
  • قم بتمكين التشفير في مساحة الاسم عن طريق تحديد مفتاح من خزنة المفاتيح والهوية التي يديرها المستخدم للوصول إلى المفتاح.

                    "encryption":{
                       "keySource":"Microsoft.KeyVault",
                       "keyVaultProperties":[
                            {
                                "keyName": "[parameters('keyName')]",
                                "keyVaultUri": "[parameters('keyVaultUri')]",
                                "identity": {
                                    "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                                }
                            }
                       ]
                    }
    
  1. قم بإنشاء ملف JSON باسم CreateEventHubsNamespaceWithUserIdentityAndEncryption.json بالمحتوى التالي:

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
        "clusterName":{
            "type":"string",
             "metadata":{
                "description":"Name for the Event Hub cluster."
             }
          },
          "namespaceName":{
             "type":"string",
             "metadata":{
                "description":"Name for the Namespace to be created in cluster."
             }
          },
          "location":{
             "type":"string",
             "defaultValue":"[resourceGroup().location]",
             "metadata":{
                "description":"Specifies the Azure location for all resources."
             }
          },
          "keyVaultUri":{
             "type":"string",
             "metadata":{
                "description":"URI of the KeyVault."
             }
          },
          "keyName":{
             "type":"string",
             "metadata":{
                "description":"KeyName."
             },
         "identity": {
            "type": "Object",
            "defaultValue": {
                "userAssignedIdentity": ""
            },
            "metadata": {
                "description": "user-assigned identity."
            }
         }
       },
       "resources":[
          {
             "type":"Microsoft.EventHub/clusters",
             "apiVersion":"2018-01-01-preview",
             "name":"[parameters('clusterName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Dedicated",
                "capacity":1
             }
          },
          {
             "type":"Microsoft.EventHub/namespaces",
             "apiVersion":"2021-01-01-preview",
             "name":"[parameters('namespaceName')]",
             "location":"[parameters('location')]",
             "sku":{
                "name":"Standard",
                "tier":"Standard",
                "capacity":1
             },
            "identity": {
                "type": "UserAssigned",
                "userAssignedIdentities": {
                    "[parameters('identity').userAssignedIdentity]": {}
                }
            },
             "properties":{
                "encryption":{
                   "keySource":"Microsoft.KeyVault",
                   "keyVaultProperties":[
                        {
                            "keyName": "[parameters('keyName')]",
                            "keyVaultUri": "[parameters('keyVaultUri')]",
                            "identity": {
                                "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
                            }
                        }
                   ]
                }
             }
          }
       ]
    }        
    
  2. قم بإنشاء ملف معلمة نموذج: CreateEventHubsNamespaceWithUserIdentityAndEncryptionParams.json .

    {
       "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
       "contentVersion":"1.0.0.0",
       "parameters":{
          "namespaceName":{
             "value":"<EventHubsNamespaceName>"
          },
          "location":{
             "value":"<Location>"
          },
          "keyVaultUri":{
             "value":"https://<KeyVaultName>.vault.azure.net"
          },
          "keyName":{
             "value":"<KeyName>"
          },
          "identity": {
            "value": {
                "userAssignedIdentity": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER MANAGED IDENTITY NAME>"
            }
         }
       }
    }
    

    في ملف المعلمة، استبدل العناصر النائبة بالقيم المناسبة.

    Placeholder قيمة
    <EventHubsNamespaceName> اسم مساحة اسم "مراكز الأحداث".
    <Location> الموقع حيث تريد إنشاء مساحة الاسم.
    <KeyVaultName> اسم key vault.
    <KeyName> اسم المفتاح في key vault.
    <AZURE SUBSCRIPTION ID> معرّف اشتراك Azure.
    <RESOURCE GROUP NAME> مجموعة الموارد للهوية التي يديرها المستخدم.
    <USER MANAGED IDENTITY NAME> اسم الهوية التي يديرها المستخدم.
  3. قم بتشغيل أمر PowerShell التالي لنشر قالب Resource Manager. استبدل {MyRG} باسم مجموعة الموارد قبل تشغيل الأمر.

    New-AzResourceGroupDeployment -Name CreateEventHubsNamespaceWithEncryption -ResourceGroupName {MyRG} -TemplateFile ./ CreateEventHubsNamespaceWithUserIdentityAndEncryption.json -TemplateParameterFile ./ CreateEventHubsNamespaceWithUserIdentityAndEncryptionParams.json        
    

استخدم الهويات المخصصة من قِبل المستخدم ومن قِبل النظام

يمكن أن تحتوي مساحة الاسم على كل من الهويات المخصصة من قِبل النظام والمخصصة للمستخدم في نفس الوقت. في هذه الحالة، ستكون الخاصية type هي SystemAssigned، UserAssigned كما هو موضح في المثال التالي.

"identity": {
    "type": "SystemAssigned, UserAssigned",
    "userAssignedIdentities": {
        "/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userIdentity1>" : {}
    }
}

في هذا السيناريو، يمكنك اختيار إما الهوية المعينة من قِبل النظام أو الهوية المعينة من قِبل المستخدم لتشفير البيانات الثابتة.

في قالب Resource Manager، إذا لم تحدد سمة identity، فسيتم استخدام الهوية التي يديرها النظام. هنا قصاصة برمجية كمثال.

"properties":{
   "encryption":{
      "keySource":"Microsoft.KeyVault",
      "keyVaultProperties":[
         {
            "keyName":"[parameters('keyName')]",
            "keyVaultUri":"[parameters('keyVaultUri')]"
         }
      ]
   }
}

راجع المثال التالي لاستخدام الهوية التي يديرها المستخدم للتشفير. لاحظ أنه تم تعيين السمة identity على الهوية التي يديرها المستخدم.

"properties":{
   "encryption":{
      "keySource":"Microsoft.KeyVault",
      "keyVaultProperties":[
         {
            "keyName":"[parameters('keyName')]",
            "keyVaultUri":"[parameters('keyVaultUri')]",
            "identity": {
                "userAssignedIdentity": "[parameters('identity').userAssignedIdentity]"
            }
         }
      ]
   }
}

تمكين البنية التحتية (أو مزدوج) تشفير البيانات

إذا كنت تحتاج إلى مستوى أعلى من التأكيد على أن بياناتك آمنة، فيمكنك تمكين تشفير مستوى البنية التحتية والذي يُعرف أيضاً باسم التشفير المزدوج.

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

يمكنك تمكين تشفير البنية الأساسية عن طريق تحديث قالب Azure Resource Manager بخاصية requireInfrastructureEncryption في CreateEventHubClusterAndNamespace.json أعلاه كما هو موضح أدناه.

"properties":{
   "isAutoInflateEnabled":false,
   "maximumThroughputUnits":0,
   "clusterArmId":"[resourceId('Microsoft.EventHub/clusters', parameters('clusterName'))]",
   "encryption":{
      "keySource":"Microsoft.KeyVault",
      "requireInfrastructureEncryption":true,
      "keyVaultProperties":[
         {
            "keyName":"[parameters('keyName')]",
            "keyVaultUri":"[parameters('keyVaultUri')]"
         }
      ]
   }
}

تدوير مفاتيح التشفير وإبطالها وذاكرة التخزين المؤقت

قم بتدوير مفاتيح التشفير الخاصة بك

يمكنك تدوير مفتاحك في key vault باستخدام آلية تدوير Azure Key Vaults. يمكن أيضاً تعيين تواريخ التنشيط وانتهاء الصلاحية لأتمتة تدوير المفتاح. ستكتشف خدمة مراكز الأحداث الإصدارات الرئيسية الجديدة وتبدأ في استخدامها تلقائياً.

إلغاء الوصول إلى المفاتيح

لن يؤدي إبطال الوصول إلى مفاتيح التشفير إلى مسح البيانات من مراكز الأحداث. ومع ذلك، لا يمكن الوصول إلى البيانات من مساحة اسم مراكز الأحداث. يمكنك إبطال مفتاح التشفير من خلال سياسة الوصول أو حذف المفتاح. تعرف على المزيد حول سياسات الوصول وتأمين خزينتك الرئيسية من وصول آمن إلى خزنة مفاتيح .

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

التخزين المؤقت للمفاتيح

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

فيما يلي مزيد من التفاصيل:

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

اعتبارات عند استخدام التعافي من الكوارث الجغرافية

هام

لتمكين Geo-DR على مساحة اسم تستخدم تشفير BYOK، يجب أن يكون لمساحة الاسم الثانوية للإقران هوية مُدارة مُعيَّنة من قبل النظام أو مُدارة من قبل المستخدم مُمكَّنة عليها.

الاسترداد من الكوارث الجغرافية - التشفير باستخدام الهويات المخصصة للنظام

لتمكين تشفير المفتاح المُدار من قِبل Microsoft باستخدام مفتاح مُدار من قِبل العميل، تم إعداد نهج وصول للهوية المُدارة المعينة من قبل النظام على Azure KeyVault المحدد. يضمن ذلك الوصول المتحكم فيه إلى Azure KeyVault من مساحة الاسم مراكز الأحداث.

ونتيجة لهذا:

  • إذا تم تمكين التعافي من الكوارث الجغرافية بالفعل لمساحة اسم مراكز الأحداث وكنت تتطلع إلى تمكين المفتاح المدار من قبل العميل، فعندئذ
    • كسر الاقتران.
    • قم بإعداد سياسة الوصول للهوية المُدارة المعينة من قِبل النظام لكل من مساحات الأسماء الأساسية والثانوية لـ key vault
    • قم بإعداد التشفير على مساحة الاسم الأساسية.
    • أعد إقران مساحات الأسماء الأساسية والثانوية.
  • إذا كنت تبحث عن تمكين Geo-DR على مساحة اسم مراكز الأحداث حيث تم بالفعل إعداد المفتاح المدار بواسطة العميل، فاتبع الخطوات التالية:
    • قم بإعداد سياسة الوصول للهوية المدارة لمساحة الاسم الثانوية لمخزن المفاتيح.
    • قم بإقران مساحات الأسماء الأساسية والثانوية.

الاسترداد من الكوارث الجغرافية - التشفير بهويات مخصصة للمستخدم

فيما يلي بعض التوصيات:

  1. أنشئ هوية مُدارة وعيِّن أذونات Key Vault لهويتك المُدارة.
  2. أضف الهوية على أنها هوية مخصصة للمستخدم، وقم بتمكين التشفير بالهوية على كلا مساحات الأسماء.
  3. قم بإقران مساحات الأسماء معًا

شروط تمكين Geo-DR والتشفير باستخدام الهويات المخصصة للمستخدم:

  1. مساحة الاسم الثانوية يجب أن يكون بها التشفير ممكّنًا بالفعل بهوية معينة من قِبل المستخدم إذا كان سيتم إقرانها بمساحة اسم أساسية تم تمكين التشفير فيها.
  2. لا يمكن تمكين التشفير بشكل أساسي مقترن بالفعل، حتى إذا كان للتشفير الثانوي هوية معينة من قِبل المستخدم مرتبطة بمساحة الاسم.

إعداد سجلات التشخيص

يمنحك إعداد سجلات التشخيص لمساحات الأسماء الممكّنة لـ BYOK المعلومات المطلوبة حول العمليات. يمكن تمكين هذه السجلات ثم دفقها لاحقاً إلى مركز أحداث أو تحليلها من خلال تحليلات السجل أو دفقها إلى التخزين لإجراء تحليلات مخصصة. لمعرفة المزيد حول سجلات التشخيص، راجع نظرة عامة على سجلات تشخيص Azure . بالنسبة للمخطط، راجع مرجع بيانات المراقبة .

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

راجع المقالات التالية: