استخدم Azure CLI لتمكين التشفير من طرف إلى طرف باستخدام التشفير في المضيف

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

عند تمكين التشفير في المضيف، يتم تشفير البيانات المخزنة على مضيف VM عند لثبات البيانات ويتم تدفقها مشفرة إلى خدمة التخزين. للحصول على معلومات تصورية حول التشفير في المضيف وأنواع تشفير الأقراص المدارة الأخرى، راجع التشفير عند المضيف - التشفير الشامل لبيانات الجهاز الظاهري.

القيود

  • مدعوم لحجم قطاع 4k Ultra Disks وPremium SSD v2.
  • مدعوم فقط على حجم قطاع 512e Ultra Disks وPremium SSD v2 إذا تم إنشاؤها بعد 5/13/2023.
    • بالنسبة للأقراص التي تم إنشاؤها قبل هذا التاريخ، قم بلقطة القرص الخاص بك وإنشاء قرص جديد باستخدام اللقطة.
  • لا يمكن تمكينه على الأجهزة الظاهرية (VMs) أو مجموعات مقياس الجهاز الظاهري التي تم تمكينها حاليا أو من أي وقت مضى تشفير قرص Azure.
  • لا يمكن تمكين تشفير قرص 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

عند إنشاء 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

أمثلة على البرامج النصية

إنشاء جهاز ظاهري مع تمكين التشفير عند المضيف باستخدام مفاتيح يديرها العميل

إنشاء جهاز ظاهري مع الأقراص المُدارة باستخدام URI للمورد الخاص بـ DiskEncryptionSet الذي تم إنشاؤه مسبقاً لتشفير ذاكرة التخزين المؤقت لنظام التشغيل وأقراص البيانات باستخدام مفاتيح يديرها العميل. يتم تشفير الأقراص المؤقتة باستخدام مفاتيح يديرها النظام الأساسي.

rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_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 \
--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=LinuxImageURN

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 التي تم إنشاؤها مسبقا لتشفير ذاكرة التخزين المؤقت لنظام التشغيل وأقراص البيانات باستخدام مفاتيح يديرها العميل. يتم تشفير الأقراص المؤقتة باستخدام مفاتيح يديرها النظام الأساسي.

هام

بدءا من نوفمبر 2023، سيتم تعيين مجموعات مقياس الجهاز الظاهري التي تم إنشاؤها باستخدام PowerShell وAzure CLI افتراضيا إلى وضع التنسيق المرن إذا لم يتم تحديد وضع التزامن. لمزيد من المعلومات حول هذا التغيير والإجراءات التي يجب اتخاذها، انتقل إلى كسر التغيير لعملاء VMSS PowerShell/CLI - مركز مجتمع Microsoft

rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
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 $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId

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

إنشاء مجموعة مقياس الجهاز الظاهري مع تمكين التشفير عند المضيف لتشفير ذاكرة التخزين المؤقت لأقراص نظام التشغيل/البيانات والأقراص المؤقتة باستخدام مفاتيح مدارة بواسطة النظام الأساسي.

هام

بدءا من نوفمبر 2023، سيتم تعيين مجموعات مقياس الجهاز الظاهري التي تم إنشاؤها باستخدام PowerShell وAzure CLI افتراضيا إلى وضع التنسيق المرن إذا لم يتم تحديد وضع التزامن. لمزيد من المعلومات حول هذا التغيير والإجراءات التي يجب اتخاذها، انتقل إلى كسر التغيير لعملاء VMSS PowerShell/CLI - مركز مجتمع Microsoft

rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204

az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--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

البحث عن أحجام الجهاز الظاهري المدعومة

أحجام الأجهزة الظاهرية القديمة غير مدعومة. يمكنك العثور على قائمة أحجام الأجهزة الظاهرية المدعومة إما باستخدام واجهات برمجة تطبيقات SKU للمورد أو الوحدة النمطية Azure PowerShell. لا يمكنك العثور على الأحجام المدعومة باستخدام CLI.

عند استدعاء 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"
        }
        ]
    }

بالنسبة للوحدة النمطية Azure PowerShell، استخدم Get-AzComputeResourceSku cmdlet.

$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

        }

    }
}

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

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

نماذج قالب Azure Resource Manager