استخدم Azure CLI لتمكين التشفير من جانب الخادم باستخدام مفاتيح يديرها العميل للأقراص المدارة
ينطبق على: ✔️ Linux VMs ✔️ مجموعات القياسات المرنة
يسمح لك Azure Disk Storage بإدارة المفاتيح الخاصة بك عند استخدام التشفير من جانب الخادم (SSE) للأقراص المدارة، إذا اخترت ذلك. للحصول على معلومات مفاهيمية حول SSE مع المفاتيح المُدارة بواسطة العميل، بالإضافة إلى أنواع تشفير القرص المُدارة الأخرى، راجع قسم المفاتيح المُدارة بواسطة العميل في مقالة تشفير القرص.
القيود
في الوقت الحالي، تخضع المفاتيح المُدارة بواسطة العميل للقيود التالية:
- إذا تم تمكين هذه الميزة للقرص الخاص بك، فلا يمكنك تعطيلها. إذا كنت بحاجة إلى حل هذه المشكلة، فيجب عليك نسخ جميع البيانات إلى قرص مُدار مختلف تماماً لا يستخدم المفاتيح المُدارة بواسطة العميل.
- فقط برامج ومفاتيح HSM RSAيتم دعم أحجام 2048 بت و3072 بت و4096 بت، ولا توجد مفاتيح أو أحجام أخرى.
- تتطلب مفاتيح HSMالمتميزة طبقة لمخازن Azure Key.
- يجب تشفير الأقراص التي تم إنشاؤها من صور مخصصة تم تشفيرها باستخدام تشفير من جانب الخادم ومفاتيح يديرها العميل باستخدام نفس المفاتيح التي يديرها العميل ويجب أن تكون في نفس الاشتراك.
- يجب تشفير اللقطات التي تم إنشاؤها من الأقراص المشفرة باستخدام تشفير من جانب الخادم والمفاتيح المُدارة بواسطة العميل بنفس المفاتيح المُدارة من قِبل العميل.
- يجب أن تكون معظم الموارد المتعلقة بالمفاتيح المُدارة بواسطة العميل (مجموعات تشفير الأقراص وأجهزة VM والأقراص واللقطات) في نفس الاشتراك والمنطقة.
- يمكن استخدام Azure Key Vaults من اشتراك مختلف ولكن يجب أن يكون في نفس المنطقة والمستأجر مثل مجموعة تشفير القرص.
- لا يمكن نقل الأقراص واللقطات والصور المشفرة باستخدام مفاتيح يديرها العميل إلى مجموعة موارد أخرى واشتراك.
- لا يمكن تشفير الأقراص المُدارة حالياً أو المُشفرة مسبقاً باستخدام تشفير قرص Azure ولا باستخدام مفاتيح يديرها العميل.
- يمكن فقط إنشاء ما يصل إلى 1000 مجموعة تشفير قرص لكل منطقة ولكل اشتراك.
- للحصول على معلومات حول استخدام المفاتيح المُدارة بواسطة العميل مع معارض الصور المشتركة، راجع معاينة: استخدام المفاتيح المُدارة بواسطة العميل لتشفير الصور.
إنشاء موارد
بمجرد تمكين الميزة، ستحتاج إلى إعداد 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 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 Azure Active Directory. إذا تلقيت خطأ مثل "لا يمكن العثور على كائن 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=UbuntuLTS
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=UbuntuLTS
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName -n $vmssName --image UbuntuLTS --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، وهي إحدى ميزات Azure Active Directory (Microsoft Azure Active Directory). عندما تقوم بتكوين المفاتيح المُدارة بواسطة العميل، يتم تعيين هوية مُدارة تلقائياً لمواردك ضمن الأغلفة. إذا قمت بعد ذلك بنقل الاشتراك أو مجموعة الموارد أو القرص المُدار من دليل Microsoft Azure Active Directory إلى دليل آخر، فلن يتم نقل الهوية المُدارة المرتبطة بالأقراص المُدارة إلى المستأجر الجديد، لذلك قد لا تعمل المفاتيح المُدارة بواسطة العميل. لمزيد من المعلومات، راجع نقل اشتراك بين دلائل Microsoft Azure Active Directory.
الخطوات التالية
- استكشف قوالب Azure Resource Manager لإنشاء أقراص مشفرة باستخدام مفاتيح يديرها العميل
- نسخ الأجهزة باستخدام الأقراص الممكّنة للمفاتيح التي يديرها العميل
- إعداد الإصلاح بعد كارثة من VMware VMs إلى Azure باستخدام PowerShell
- إعداد الإصلاح بعد كارثة لـ Azure ولـ Hyper-V VMs باستخدام PowerShell وAzure Resource Manager