تمكين تشفير القرص لعقد نظام المجموعة المُدارة في Service Fabric

تدعم المجموعات المُدارة من Service Fabric خيارين لتشفير الأقراص للمساعدة في حماية بياناتك للوفاء بالتزامات الأمان والتوافق المؤسسية. الخيار الموصى به هو التشفير في المضيف، ولكنه يدعم أيضاً تشفير قرص Azure. راجع خيارات تشفير القرص وتأكد من أن الخيار المحدد يلبي احتياجاتك.

تمكين التشفير في المضيف

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

ملاحظة

لا يمكنك التمكين على أنواع العقد الحالية. يجب توفير نوع عقدة جديد وترحيل حمل العمل.

ملاحظة

ستظهر حالة تشفير قرص Azure Security Center على أنها غير سليمة في الوقت الحالي عند استخدام التشفير في المضيف

اتبع هذه الخطوات وقم بالرجوع إلى نموذج القالب هذا لتوزيع مجموعة جديدة مدارة من Service Fabric مع تمكين تشفير المضيف.

  1. راجع القيود التالية للتحقق من أنها تلبي متطلباتك.

  2. قم بإعداد المتطلبات الأساسية المطلوبة قبل توزيع نظام المجموعة.

  3. قم بتكوين الخاصية enableEncryptionAtHost في قالب نظام المجموعة المُدار لكل تشفير قرص لنوع العقدة المطلوب. العينة مكوّنة مسبقاً.

    • يجب أن يكون apiVersion الخاص بمورد نظام المجموعة المُدار بواسطة Service Fabric هو 2021-11-01-preview أو أحدث.
         {
                "apiVersion": "[variables('sfApiVersion')]",
                "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
                "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
                "location": "[resourcegroup().location]",
                "properties": {
                    "enableEncryptionAtHost": true
                    ...
                }
        }
    
  4. التوزيع والتحقق

    توزيع نظام المجموعة المُدار التي تم تكوينه مع تمكين تشفير المضيف.

    $clusterName = "<clustername>" 
    $resourceGroupName = "<rg-name>"
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    يمكنك التحقق من حالة تشفير القرص على مجموعة المقاييس الأساسية الخاصة بنوع العقدة باستخدام الأمر Get-AzVmss. ستحتاج أولاً إلى العثور على اسم مجموعة الموارد الداعمة للمجموعة المُدارة (التي تحتوي على الشبكة الظاهرية الأساسية وموازن التحميل وعنوان IP العام وNSG ومجموعة (مجموعات) المقاييس وحسابات التخزين). تأكد من تعديل NodeTypeNAme إلى اسم نوع عقدة نظام المجموعة الذي ترغب في التحقق منه (كما هو محدد في قالب التوزيع الخاص بك).

    $NodeTypeName = "NT2"
    $clustername = <clustername>
    $resourceGroupName = "<rg-name>"
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    $VMSS = Get-AzVmss -ResourceGroupName $supportResourceGroupName -Name $NodeTypeName
    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    

    يجب أن تبدو نتيجة الإرجاع كهذا:

    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    True
    

تمكين تشفير قرص Azure

يوفر تشفير قرص Azure تشفير وحدة التخزين لنظام التشغيل وأقراص البيانات الخاصة بأجهزة Azure الظاهرية باستخدام ميزة DM-Crypt في Linux أو ميزة BitLocker في Windows. تم دمج ADE مع Azure Key Vault لمساعدتك في التحكم في مفاتيح تشفير القرص وبياناته السرية وإدارتها.

في هذا الدليل، ستتعرف على كيفية تمكين تشفير القرص على عقد نظام المجموعة المُدارة من Service Fabric في Windows باستخدام إمكانية تشفير قرص Azureلمجموعات مقاييس الجهاز الظاهري من خلال قوالب Azure Resource Manager (ARM).

  1. التسجيل للحصول على تشفير قرص Azure

    تتطلب معاينة تشفير القرص لمجموعة مقاييس الجهاز الظاهري التسجيل الذاتي. تشغيل الأمر التالي:

    Register-AzProviderFeature -FeatureName "UnifiedDiskEncryption" -ProviderNamespace "Microsoft.Compute"
    

    تحقق من حالة التسجيل عن طريق تشغيل:

    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    

    بمجرد تغيير الحالة إلى Registered، فأنت جاهز للمتابعة.

  2. تكوين إعدادات تشغيل Key Vault لتشفير القرص

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

  3. إنشاء Key Vault مع تمكين تشفير القرص

    قم بتشغيل الأوامر التالية لإنشاء Key Vault جديد لتشفير القرص. تأكد من أن منطقة Key Vault تقع في نفس المنطقة التي تقع فيها مجموعتك.

    $resourceGroupName = "<rg-name>" 
    $keyvaultName = "<kv-name>" 
    
    New-AzResourceGroup -Name $resourceGroupName -Location eastus2 
    New-AzKeyVault -ResourceGroupName $resourceGroupName -Name $keyvaultName -Location eastus2 -EnabledForDiskEncryption
    

  1. تحديث Key Vault الحالي لتمكين تشفير القرص

    قم بتشغيل الأوامر التالية لتمكين تشفير القرص لـKey Vault حالي.

    Set-AzKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $keyvaultName -EnabledForDiskEncryption
    

تحديث ملفات القالب والمعلمات لتشفير القرص

سترشدك الخطوة التالية خلال تغييرات القالب المطلوبة لتمكين تشفير القرص على نظام مجموعة مدارة حالية. بدلاً من ذلك، يمكنك توزيع نظام مجموعة جديدة مدارة من Service Fabric مع تمكين تشفير القرص باستخدام هذا القالب: https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master/SF-Managed-Standard-SKU-1-NT-DiskEncryption

  1. أضف المعلمات التالية إلى القالب، لتحل محل اشتراكك واسم مجموعة الموارد واسم المخزن الخاص بك ضمن keyVaultResourceId:

    "parameters": {
     "keyVaultResourceId": { 
       "type": "string", 
       "defaultValue": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>", 
       "metadata": { 
       "description": "Full resource id of the Key Vault used for disk encryption." 
    } 
     },
     "volumeType": { 
      "type": "string", 
      "defaultValue": "All", 
      "metadata": { 
       "description": "Type of the volume OS or Data to perform encryption operation" 
    }
    }
    }, 
    
  2. بعد ذلك، أضف ملحق الجهاز الظاهري AzureDiskEncryption إلى أنواع عقد نظام المجموعة المدارة في القالب:

    "properties": { 
    "vmExtensions": [ 
    { 
    "name": "AzureDiskEncryption", 
    "properties": { 
      "publisher": "Microsoft.Azure.Security", 
      "type": "AzureDiskEncryption", 
      "typeHandlerVersion": "2.2", 
      "autoUpgradeMinorVersion": true, 
      "settings": {      
            "EncryptionOperation": "EnableEncryption", 
            "KeyVaultURL": "[reference(parameters('keyVaultResourceId'),'2016-10-01').vaultUri]", 
         "KeyVaultResourceId": "[parameters('keyVaultResourceID')]",
         "VolumeType": "[parameters('volumeType')]" 
         } 
       } 
    } 
    ] 
    } 
    
  3. أخيراً، قم بتحديث ملف المعلمات، الذي يستبدل اشتراكك ومجموعة الموارد واسم key vault الخاص بك في keyVaultResourceId:

    "parameters": { 
    ...
     "keyVaultResourceId": { 
      "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" 
     },   
     "volumeType": { 
      "value": "All" 
     }    
    } 
    
  4. توزيع التغييرات والتحقق منها

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

    $clusterName = "<clustername>" 
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    يمكنك التحقق من حالة تشفير القرص على مجموعة المقاييس الأساسية الخاصة بنوع العقدة باستخدام الأمر Get-AzVmssDiskEncryption. ستحتاج أولاً إلى العثور على اسم مجموعة الموارد الداعمة للمجموعة المُدارة (التي تحتوي على الشبكة الظاهرية الأساسية وموازن التحميل وعنوان IP العام وNSG ومجموعة (مجموعات) المقاييس وحسابات التخزين). تأكد من تعديل VmssName إلى اسم نوع عقدة نظام المجموعة الذي ترغب في التحقق منه (كما هو محدد في قالب التوزيع الخاص بك).

    $VmssName = "NT1"
    $clustername = <clustername>
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    Get-AzVmssDiskEncryption -ResourceGroupName $supportResourceGroupName -VMScaleSetName $VmssName
    

    يجب أن تبدو النتيجة كهذا:

    ResourceGroupName            : SFC_########-####-####-####-############
    VmScaleSetName               : NT1
    EncryptionEnabled            : True
    EncryptionExtensionInstalled : True
    

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

عينة: نظام المجموعة المُدارة لـSKU Service Fabric القياسية، نوع عقدة واحد مع تمكين تشفير القرص

⁧⁩تشفير قرص Azure لأجهزة Windows⁧ الظاهرية

تشفير مجموعات مقاييس الجهاز الظاهري باستخدام Azure Resource Manager