استخدم 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
- ثبّت أحدث Azure CLI وسجل الدخول إلى حساب Azure باستخدام تسجيل الدخول من a إلى z.
- قم بإنشاء 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 مُدار للتعامل مع المفاتيح الخاصة بك.
للقيام بذلك، يجب عليك إكمال المتطلبات الأساسية التالية:
- قم بتثبيت أحدث Azure CLI وقم بتسجيل الدخول إلى حساب Azure باستخدام تسجيل الدخول من a إلى z.
- إنشاء وتكوين 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.
الخطوات التالية
- استكشاف قوالب Azure Resource Manager لإنشاء أقراص مشفرة باستخدام مفاتيح مدارة من قبل العميل
- نسخ الأجهزة باستخدام الأقراص الممكّنة للمفاتيح المُدارة بواسطة العميل
- إعداد الإصلاح بعد كارثة من الأجهزة الظاهرية VMware إلى Azure باستخدام PowerShell
- إعداد الإصلاح بعد كارثة لـ Azure وللأجهزة الظاهرية Hyper-V باستخدام PowerShell وAzure Resource Manager
- راجع إنشاء قرص مدار من لقطة باستخدام CLI للحصول على نموذج التعليمات البرمجية.