استخدم Azure CLI لتمكين التشفير من جانب الخادم باستخدام مفاتيح يديرها العميل للأقراص المدارة

ينطبق على: ✔️ أجهزة ظاهرية بنظام التشغيل Linux ✔️ أجهزة ظاهرية بنظام التشغيل Windows ✔️ مجموعات التوسعة المرنة ✔️ مجموعات التوسعة الموحدة

يسمح لك Azure Disk Storage بإدارة المفاتيح الخاصة بك عند استخدام التشفير من جانب الخادم (SSE) للأقراص المدارة، إذا اخترت ذلك. للحصول على معلومات مفاهيمية حول SSE مع المفاتيح المُدارة بواسطة العميل، بالإضافة إلى أنواع تشفير القرص المُدارة الأخرى، راجع قسم المفاتيح المُدارة بواسطة العميل في مقالة تشفير القرص.

القيود

في الوقت الحالي، تخضع المفاتيح المُدارة بواسطة العميل للقيود التالية:

  • إذا تم تمكين هذه الميزة لقرص مع لقطات تزايدية، فلا يمكن تعطيلها على هذا القرص أو لقطاته. للتغلب على ذلك، انسخ جميع البيانات إلى قرص مدار مختلف تماما لا يستخدم مفاتيح يديرها العميل. يمكنك القيام بذلك إما باستخدام Azure CLI أو الوحدة النمطية Azure PowerShell.
  • يتم دعم برامج ومفاتيح HSM RSA بالأحجام 2048 بت و3072 بت و4096 بت فقط، دون أي مفاتيح أو أحجام أخرى.
    • تتطلب مفاتيح HSMالمستوى المتميز من مخازن Azure Key.
  • بالنسبة لأقراص Ultra وأقراص Premium SSD v2 فقط:
    • يجب تشفير النسخ المطابقة التي تم إنشاؤها من الأقراص المشفرة باستخدام تشفير من جانب الخادم والمفاتيح المُدارة بواسطة العميل بنفس المفاتيح المُدارة من قِبل العميل.
    • الهويات المدارة المعينة من قبل المستخدم غير مدعومة لأقراص Ultra Disks وأقراص Premium SSD v2 المشفرة باستخدام مفاتيح يديرها العميل.
  • يجب أن تكون معظم الموارد المتعلقة بالمفاتيح المُدارة بواسطة العميل (مجموعات تشفير الأقراص والأجهزة الظاهرية والأقراص والنسخ المطابقة) في نفس الاشتراك والمنطقة.
    • يمكن استخدام Azure Key Vaults من اشتراك مختلف ولكن يجب أن تكون في نفس المنطقة مثل مجموعة تشفير القرص. كمعاينة، يمكنك استخدام Azure Key Vaults من مستأجري Microsoft Entra مختلفين.
  • يمكن للأقراص المشفرة باستخدام مفاتيح يديرها العميل الانتقال إلى مجموعة موارد أخرى فقط إذا تم إلغاء تخصيص الجهاز الظاهري المرفق به.
  • لا يمكن نقل الأقراص واللقطات والصور المشفرة باستخدام مفاتيح يديرها العميل بين الاشتراكات.
  • لا يمكن تشفير الأقراص المدارة حاليا أو المشفرة مسبقا باستخدام تشفير قرص Azure باستخدام مفاتيح يديرها العميل.
  • يمكن فقط إنشاء ما يصل إلى 5000 مجموعة تشفير قرص لكل منطقة لكل اشتراك.
  • للحصول على معلومات حول استخدام المفاتيح المُدارة بواسطة العميل مع معارض الصور المشتركة، راجع معاينة: استخدام المفاتيح المُدارة بواسطة العميل لتشفير الصور.

إنشاء الموارد

بمجرد تمكين الميزة، ستحتاج إلى إعداد DiskEncryptionSet وإما Azure Key Vault أو Azure Key Vault Managed HSM.

Azure Key Vault

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

هام

لا تقم بإلغاء حالة المنطقة، إذا قمت بذلك، فقد تواجه مشكلات عند تعيين أقراص إضافية للمورد في مدخل Microsoft Azure.

subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName

az account set --subscription $subscriptionId

az group create --resource-group $rgName --location $location

az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true 

az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
  • قم بإنشاء DiskEncryptionSet. يمكنك تعيين استدارة المفتاح التلقائي بحيث تساوي "صواب" لتمكين التدوير التلقائي للمفتاح. عند تمكين التدوير التلقائي، سيقوم النظام تلقائياً بتحديث جميع الأقراص واللقطات والصور المُدارة التي تشير إلى مجموعة تشفير القرص لاستخدام الإصدار الجديد من المفتاح في غضون ساعة واحدة.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)

az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
  • امنح المورد DiskEncryptionSet حق الوصول إلى مخزن المفاتيح.

إشعار

قد يستغرق Azure بضع دقائق لإنشاء هوية DiskEncryptionSet في معرف Microsoft Entra الخاص بك. إذا تلقيت خطأ مثل "لا يمكن العثور على كائن Active Directory" عند تشغيل الأمر التالي، فانتظر بضع دقائق وحاول مرة أخرى.

desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)

az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get

Azure Key Vault Managed HSM

بدلاً من ذلك، يمكنك استخدام HSM مُدار للتعامل مع المفاتيح الخاصة بك.

للقيام بذلك، يجب عليك إكمال المتطلبات الأساسية التالية:

التكوين

بمجرد إنشاء HSM مُدار وإضافة الأذونات، قم بتمكين الحماية من التطهير وإنشاء مفتاح تشفير.

subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
    
az account set --subscription $subscriptionId
    
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
    
az keyvault key create --hsm-name  $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048

ثم قم بإنشاء DiskEncryptionSet.

keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
    
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false

أخيراً، امنح DiskEncryptionSet الوصول إلى Managed HSM.

desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
    
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys

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

الأمثلة

قم بإنشاء جهاز ظاهري باستخدام صورة Marketplace، وقم بتشفير نظام التشغيل وأقراص البيانات باستخدام مفاتيح يديرها العميل

rgName=yourResourceGroupName
vmName=yourVMName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName

diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)

az vm create -g $rgName -n $vmName -l $location --image $image --size $vmSize --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 128 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId

تشفير الأقراص المدارة الموجودة

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

rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName

az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId

إنشاء مجموعة تغيير سعة جهاز ظاهري باستخدام صورة Marketplace، وتشفير نظام التشغيل وأقراص البيانات باستخدام مفاتيح مُدارة بواسطة العميل

rgName=yourResourceGroupName
vmssName=yourVMSSName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName

diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName -n $vmssName --image $image --upgrade-policy automatic --admin-username azureuser --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 64 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId

إنشاء قرص فارغ مشفر باستخدام تشفير من جانب الخادم باستخدام مفاتيح مُدارة بواسطة العميل وإرفاقه بجهاز ظاهري

vmName=yourVMName
rgName=yourResourceGroupName
diskName=yourDiskName
diskSkuName=Premium_LRS
diskSizeinGiB=30
location=westcentralus
diskLUN=2
diskEncryptionSetName=yourDiskEncryptionSetName


diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)

az disk create -n $diskName -g $rgName -l $location --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId --size-gb $diskSizeinGiB --sku $diskSkuName

diskId=$(az disk show -n $diskName -g $rgName --query [id] -o tsv)

az vm disk attach --vm-name $vmName --lun $diskLUN --ids $diskId

قم بتغيير مفتاح DiskEncryptionSet لتدوير المفتاح لجميع الموارد التي تشير إلى DiskEncryptionSet


rgName=yourResourceGroupName
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName


keyVaultId=$(az keyvault show --name $keyVaultName--query [id] -o tsv)

keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)

az disk-encryption-set update -n keyrotationdes -g keyrotationtesting --key-url $keyVaultKeyUrl --source-vault $keyVaultId

البحث عن حالة التشفير من جانب الخادم للقرص

az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv

هام

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

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