استخدم Azure CLI لتمكين التشفير من طرف إلى طرف باستخدام التشفير في المضيف
ينطبق على: ✔️ Linux VMs ✔️ مجموعات القياسات المرنة
عند تمكين التشفير لدى المضيف، يتم تشفير البيانات المخزنة على مضيف جهاز ظاهري للبيانات غي النشطة ويتم تدفقها مشفرة إلى خدمة التخزين. للحصول على معلومات مفاهيمية حول التشفير في المضيف، بالإضافة إلى أنواع تشفير القرص المُدارة الأخرى، راجع التشفير عند المضيف - التشفير من طرف إلى طرف لبيانات الجهاز الظاهري.
القيود
- لا يدعم الأقراص الفائقة.
- لا يمكن تمكينه إذا تم تمكين تشفير قرص Azure (تشفير الضيف VM باستخدام bitlocker/DM-Crypt) في مجموعات قياسات الجهاز الظاهري/الأجهزة الظاهرية.
- لا يمكن تمكين تشفير قرص Azure على الأقراص التي تم تمكين التشفير عند المضيف.
- يمكن تمكين التشفير على مجموعة مقياس آلة ظاهرية موجودة. ومع ذلك، يتم تشفير الأجهزة الظاهرية الجديدة التي تم إنشاؤها بعد تمكين التشفير تلقائياً.
- يجب إلغاء تخصيص الأجهزة الظاهرية الحالية وإعادة تخصيصها من أجل تشفيرها.
- يدعم أقراص نظام التشغيل المؤقتة ولكن فقط باستخدام المفاتيح المُدارة بواسطة النظام الأساسي.
أحجام الأجهزة الظاهرية المدعمة
يمكن سحب القائمة الكاملة لأحجام الأجهزة الظاهرية المدعومة برمجياً. لمعرفة كيفية استردادها برمجياً، راجع قسم البحث عن أحجام الأجهزة الظاهرية المدعومة. ستؤدي ترقية حجم الجهاز الظاهري إلى التحقق مما إذا كان حجم الجهاز الظاهري الجديد يدعم ميزة EncryptionAtHost.
المتطلبات الأساسية
يجب عليك تمكين الميزة لاشتراكك قبل استخدام خاصية EncryptionAtHost لجهاز VM/VMSS الخاص بك. استخدم الخطوات التالية لتمكين الميزة لاشتراكك:
- قم بتنفيذ الأمر التالي لتسجيل الميزة لاشتراكك
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
- تأكد من أن حالة التسجيل مسجلة (يستغرق بضع دقائق) باستخدام الأمر أدناه قبل تجربة الميزة.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
إنشاء موارد
بمجرد تمكين الميزة، ستحتاج إلى إعداد 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
أمثلة
قم بإنشاء جهاز ظاهري مع التشفير في المضيف الذي تم تمكينه بمفاتيح يديرها العميل.
قم بإنشاء جهاز ظاهري باستخدام الأقراص المُدارة باستخدام URI للمورد الخاص بـ DiskEncryptionSet الذي تم إنشاؤه مسبقاً لتشفير ذاكرة التخزين المؤقت لنظام التشغيل وأقراص البيانات باستخدام مفاتيح يديرها العميل. يتم تشفير الأقراص المؤقتة باستخدام مفاتيح مُدارة بواسطة النظام الأساسي.
rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_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 \
--encryption-at-host \
--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=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=UbuntuLTS
az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \
قم بتحديث جهاز ظاهري لتمكين التشفير عند المضيف.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true
تحقق من حالة التشفير في المضيف من أجل جهاز ظاهري
rgName=yourRGName
vmName=yourVMName
az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv
قم بتحديث جهاز ظاهري لتعطيل التشفير عند المضيف.
يجب عليك إلغاء تخصيص الجهاز الظاهري الخاص بك قبل أن تتمكن من تعطيل التشفير في المضيف.
rgName=yourRGName
vmName=yourVMName
az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false
قم بإنشاء مقياس آلة ظاهري تم تعيينه مع التشفير في المضيف الذي تم تمكينه باستخدام مفاتيح يديرها العميل.
قم بإنشاء مقياس جهاز ظاهري تم تعيينه باستخدام الأقراص المُدارة باستخدام URI للمورد الخاص بـ DiskEncryptionSet الذي تم إنشاؤه مسبقاً لتشفير ذاكرة التخزين المؤقت لنظام التشغيل وأقراص البيانات باستخدام مفاتيح يديرها العميل. يتم تشفير الأقراص المؤقتة باستخدام مفاتيح مُدارة بواسطة النظام الأساسي.
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
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 \
--encryption-at-host \
--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
قم بإنشاء مقياس آلة ظاهري تم تعيينه مع التشفير في المضيف الذي تم تمكينه باستخدام مفاتيح تُدار بواسطة النظام الأساسي.
قم بإنشاء مقياس جهاز ظاهري تم تعيينه مع تمكين التشفير في المضيف لتشفير ذاكرة التخزين المؤقت لأقراص نظام التشغيل/البيانات والأقراص المؤقتة باستخدام مفاتيح مُدارة بواسطة النظام الأساسي.
rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=UbuntuLTS
az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image UbuntuLTS \
--upgrade-policy automatic \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \
قم بتحديث مقياس جهاز ظاهري تم تعيينه لتمكين التشفير عند المضيف.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true
تحقق من حالة التشفير في المضيف لمجموعة مقياس آلة ظاهرية
rgName=yourRGName
vmssName=yourVMName
az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv
قم بتحديث مقياس جهاز ظاهري تم تعيينه لتعطيل التشفير عند المضيف.
يمكنك تعطيل التشفير عند المضيف على مجموعة مقياس الجهاز الظاهري الخاصة بك، ولكن هذا لن يؤثر إلا على الأجهزة الظاهرية التي تم إنشاؤها بعد تعطيل التشفير في المضيف. بالنسبة إلى الأجهزة الظاهرية الحالية، يجب عليك إلغاء تخصيص الجهاز الظاهري، تعطيل التشفير عند المضيف على الجهاز الظاهري، ثم إعادة تخصيص الجهاز الظاهري.
rgName=yourRGName
vmssName=yourVMName
az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false
البحث عن أحجام الجهاز الظاهري المدعومة
لا يتم دعم أحجام الأجهزة الظاهرية القديمة. يمكنك العثور على قائمة أحجام الأجهزة الظاهرية المدعومة إما عن طريق:
استدعاء Resource Skus API والتحقق من تعيين إمكانية EncryptionAtHostSupported على True.
{
"resourceType": "virtualMachines",
"name": "Standard_DS1_v2",
"tier": "Standard",
"size": "DS1_v2",
"family": "standardDSv2Family",
"locations": [
"CentralUSEUAP"
],
"capabilities": [
{
"name": "EncryptionAtHostSupported",
"value": "True"
}
]
}
أو استدعاء الأمر Get-AzComputeResourceSku PowerShell.
$vmSizes=Get-AzComputeResourceSku | where{$_.ResourceType -eq 'virtualMachines' -and $_.Locations.Contains('CentralUSEUAP')}
foreach($vmSize in $vmSizes)
{
foreach($capability in $vmSize.capabilities)
{
if($capability.Name -eq 'EncryptionAtHostSupported' -and $capability.Value -eq 'true')
{
$vmSize
}
}
}
الخطوات التالية
الآن بعد أن قمت بإنشاء هذه الموارد وتكوينها، يمكنك استخدامها لتأمين الأقراص المُدارة. يحتوي الارتباط التالي على أمثلة على البرامج النصية، لكل منها سيناريو خاص به، يمكنك استخدامه لتأمين الأقراص المُدارة.