إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: ✔️ مجموعات ✔️ مقياس مرنة Windows الآلات ✔️ الافتراضية مجموعات مقياس موحدة
يتيح لك Azure Disk Storage إدارة مفاتيحك الخاصة عند استخدام تشفير الخادم (SSE) للأقراص المدارة، إذا رغبت. للحصول على معلومات مفاهيمية حول SSE مع المفاتيح المُدارة بواسطة العميل، بالإضافة إلى أنواع تشفير القرص المُدارة الأخرى، راجع قسم المفاتيح المُدارة بواسطة العميل في مقالة تشفير القرص.
القيود
في الوقت الحالي، تخضع المفاتيح المُدارة بواسطة العميل للقيود التالية:
- إذا تم تمكين هذه الميزة لقرص مع لقطات تزايدية، فلا يمكن تعطيلها على هذا القرص أو لقطاته. للتغلب على ذلك، انسخ جميع البيانات إلى قرص مدار مختلف تماما لا يستخدم مفاتيح يديرها العميل. يمكنك فعل ذلك إما مع Azure CLI أو وحدة Azure PowerShell.
- يجب أن يكون للقرص وجميع اللقطات التزايدية المقترنة به نفس مجموعة تشفير القرص.
- يتم دعم برامج ومفاتيح HSM RSA بالأحجام 2048 بت و3072 بت و4096 بت فقط، دون أي مفاتيح أو أحجام أخرى.
- مفاتيح HSM تتطلب مستوى premium من خزائن المفاتيح Azure.
- بالنسبة لأقراص Ultra وأقراص Premium SSD v2 فقط:
- (معاينة) تتوفر الهويات المدارة المعينة من قبل المستخدم لأقراص Ultra وأقراص Premium SSD v2 المشفرة باستخدام مفاتيح يديرها العميل.
- يجب أن تكون معظم الموارد المتعلقة بالمفاتيح المُدارة بواسطة العميل (مجموعات تشفير الأقراص والأجهزة الظاهرية والأقراص والنسخ المطابقة) في نفس الاشتراك والمنطقة.
- يمكن استخدام خزائن مفاتيح Azure من اشتراك مختلف ولكن يجب أن تكون في نفس المنطقة التي تحتوي على مجموعة تشفير القرص لديك. تدعم خزائن مفاتيح Azure في مستأجرين Microsoft Entra المختلفين للأقراص المدارة. للتفاصيل، راجع تشفير الأقراص المدارة مع مفاتيح تديرها عبر المستأجرين عبر المستأجرين.
- يمكن للأقراص المشفرة بالمفاتيح التي يديرها العميل الانتقال إلى مجموعة موارد أخرى فقط إذا تم إلغاء تخصيص الجهاز الظاهري المرفق به.
- لا يمكن نقل الأقراص واللقطات والصور المشفرة باستخدام مفاتيح يديرها العميل بين الاشتراكات.
- الأقراص المدارة التي تم تشفيرها حاليا أو سابقا باستخدام تشفير قرص Azure لا يمكن تشفيرها باستخدام مفاتيح يديرها العميل.
- يمكن فقط إنشاء ما يصل إلى 5000 مجموعة تشفير قرص لكل منطقة لكل اشتراك.
- للحصول على معلومات حول استخدام المفاتيح المُدارة بواسطة العميل مع معارض الصور المشتركة، راجع معاينة: استخدام المفاتيح المُدارة بواسطة العميل لتشفير الصور.
إعداد Azure Key Vault و DiskEncryptionSet مع تدوير المفاتيح التلقائي
لاستخدام المفاتيح المدارة من قبل العملاء مع SSE، يجب عليك إعداد Azure Key Vault ومورد DiskEncryptionSet.
تأكد من أنك قمت بتثبيت أحدث إصدار Azure PowerShell، وأنك مسجلة الدخول إلى حساب Azure عبر Connect-AzAccount
إنشاء نسخة من Azure Key Vault ومفتاح التشفير.
عند إنشاء نسخة Key Vault، يجب تفعيل حماية التطهير. تضمن الحماية من المسح عدم إمكانية حذف مفتاح محذوف نهائيًا حتى انقضاء فترة الاستبقاء. تحميك هذه الإعدادات من فقدان البيانات بسبب الحذف غير المقصود. هذه الإعدادات إلزامية عند استخدام Key Vault لتشفير الأقراص المدارة.
$ResourceGroupName="yourResourceGroupName" $LocationName="westcentralus" $keyVaultName="yourKeyVaultName" $keyName="yourKeyName" $keyDestination="Software" $diskEncryptionSetName="yourDiskEncryptionSetName" $keyVault = New-AzKeyVault -Name $keyVaultName ` -ResourceGroupName $ResourceGroupName ` -Location $LocationName ` -EnablePurgeProtection $key = Add-AzKeyVaultKey -VaultName $keyVaultName ` -Name $keyName ` -Destination $keyDestination Set-AzKeyVaultKeyRotationPolicy -VaultName $keyVaultName -KeyName $keyName -ExpiresIn P2Y -KeyRotationLifetimeAction @{Action="Rotate";TimeBeforeExpiry = "P18M"}أنشئ مثيل DiskEncryptionSet. يعين هذا البرنامج النصي RotationToLatestKeyVersionEnabled يساوي $true لتمكين التدوير التلقائي للمفتاح. عند تمكين التدوير التلقائي، يقوم النظام تلقائيا بتحديث جميع الأقراص المدارة واللقطات والصور التي تشير إلى مجموعة تشفير القرص لاستخدام الإصدار الجديد من المفتاح في غضون ساعة واحدة.
$desConfig=New-AzDiskEncryptionSetConfig -Location $LocationName ` -SourceVaultId $keyVault.ResourceId ` -KeyUrl $key.Key.Kid ` -IdentityType SystemAssigned ` -RotationToLatestKeyVersionEnabled $true $des=New-AzDiskEncryptionSet -Name $diskEncryptionSetName ` -ResourceGroupName $ResourceGroupName ` -InputObject $desConfigامنح المورد DiskEncryptionSet حق الوصول إلى مخزن المفاتيح.
إشعار
قد يستغرق الأمر بضع دقائق حتى ينشئ Azure هوية مجموعة DiskEncryptionSet الخاصة بك في معرف Microsoft Entra ID الخاص بك. إذا ظهرت لك رسالة خطأ مثل "لا يمكن العثور على كائن Active Directory" عند تشغيل الأمر التالي، انتظر بضع دقائق وحاول مرة أخرى.
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $des.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get
استخدام مخزن مفاتيح في اشتراك مختلف
بدلا من ذلك، يمكنك إدارة خزائن مفاتيح Azure مركزيا من خلال اشتراك واحد، واستخدام المفاتيح المخزنة في Key Vault لتشفير الأقراص المدارة واللقطات في الاشتراكات الأخرى داخل مؤسستك. يسمح هذا لفريق الأمان الخاص بك بفرض نهج أمان قوي وإدارته بسهولة لاشتراك واحد.
هام
لهذا التكوين، يجب أن يكون كل من Key Vault ومجموعة تشفير القرص في نفس المنطقة ويستخدمان نفس المستأجر.
السكربت التالي هو مثال على كيفية تكوين مجموعة تشفير قرص لاستخدام مفتاح من Key Vault في اشتراك مختلف، ولكن في نفس المنطقة:
$sourceSubscriptionId="<sourceSubID>"
$sourceKeyVaultName="<sourceKVName>"
$sourceKeyName="<sourceKeyName>"
$targetSubscriptionId="<targetSubID>"
$targetResourceGroupName="<targetRGName>"
$targetDiskEncryptionSetName="<targetDiskEncSetName>"
$location="<targetRegion>"
Set-AzContext -Subscription $sourceSubscriptionId
$key = Get-AzKeyVaultKey -VaultName $sourceKeyVaultName -Name $sourceKeyName
Set-AzContext -Subscription $targetSubscriptionId
$desConfig=New-AzDiskEncryptionSetConfig -Location $location `
-KeyUrl $key.Key.Kid `
-IdentityType SystemAssigned `
-RotationToLatestKeyVersionEnabled $true
$des=New-AzDiskEncryptionSet -Name $targetDiskEncryptionSetName `
-ResourceGroupName $targetResourceGroupName `
-InputObject $desConfig
الأمثلة
الآن بعد أن قمت بإنشاء هذه الموارد وتكوينها، يمكنك استخدامها لتأمين الأقراص المُدارة. فيما يلي أمثلة على البرامج النصية، لكل منها سيناريو خاص به، يمكنك استخدامه لتأمين الأقراص المُدارة.
قم بإنشاء جهاز ظاهري باستخدام صورة Marketplace، وقم بتشفير نظام التشغيل وأقراص البيانات باستخدام مفاتيح يديرها العميل
انسخ البرنامج النصي، واستبدل كافة قيم الأمثلة بالمعلمات الخاصة بك، ثم قم بتشغيله.
$VMLocalAdminUser = "yourVMLocalAdminUserName"
$VMLocalAdminSecurePassword = ConvertTo-SecureString <password> -AsPlainText -Force
$LocationName = "yourRegion"
$ResourceGroupName = "yourResourceGroupName"
$ComputerName = "yourComputerName"
$VMName = "yourVMName"
$VMSize = "yourVMSize"
$diskEncryptionSetName="yourdiskEncryptionSetName"
$NetworkName = "yourNetworkName"
$NICName = "yourNICName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$NIC = New-AzNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2012-R2-Datacenter' -Version latest
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $($VMName +"_OSDisk") -DiskEncryptionSetId $diskEncryptionSet.Id -CreateOption FromImage
$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name $($VMName +"DataDisk1") -DiskSizeInGB 128 -StorageAccountType Premium_LRS -CreateOption Empty -Lun 0 -DiskEncryptionSetId $diskEncryptionSet.Id
New-AzVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose
إنشاء قرص فارغ مشفر باستخدام تشفير من جانب الخادم باستخدام مفاتيح مُدارة بواسطة العميل وإرفاقه بجهاز ظاهري
انسخ البرنامج النصي، واستبدل كافة قيم الأمثلة بالمعلمات الخاصة بك، ثم قم بتشغيله.
$vmName = "yourVMName"
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$diskName = "yourDiskName"
$diskSKU = "Premium_LRS"
$diskSizeinGiB = 30
$diskLUN = 1
$diskEncryptionSetName="yourDiskEncryptionSetName"
$vm = Get-AzVM -Name $vmName -ResourceGroupName $ResourceGroupName
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
$vm = Add-AzVMDataDisk -VM $vm -Name $diskName -CreateOption Empty -DiskSizeInGB $diskSizeinGiB -StorageAccountType $diskSKU -Lun $diskLUN -DiskEncryptionSetId $diskEncryptionSet.Id
Update-AzVM -ResourceGroupName $ResourceGroupName -VM $vm
تشفير الأقراص المدارة الموجودة
يجب عدم إرفاق الأقراص الموجودة لديك بجهاز ظاهري قيد التشغيل حتى تتمكن من تشفيرها باستخدام البرنامج النصي التالي:
$rgName = "yourResourceGroupName"
$diskName = "yourDiskName"
$diskEncryptionSetName = "yourDiskEncryptionSetName"
$diskEncryptionSet = Get-AzDiskEncryptionSet -ResourceGroupName $rgName -Name $diskEncryptionSetName
New-AzDiskUpdateConfig -EncryptionType "EncryptionAtRestWithCustomerKey" -DiskEncryptionSetId $diskEncryptionSet.Id | Update-AzDisk -ResourceGroupName $rgName -DiskName $diskName
تشفير مجموعة مقياس سعة جهاز ظاهري موجودة (وضع التنسيق الموحد) باستخدام SSE والمفاتيح المُدارة بواسطة العميل
هذا البرنامج النصي سيعمل لمجموعات المقياس في وضع التنسيق الموحد فقط. بالنسبة لمجموعات المقياس في وضع التزامن المرن، اتبع تشفير الأقراص المُدارة الموجودة لكل جهاز ظاهري.
انسخ البرنامج النصي، واستبدل كافة قيم الأمثلة بالمعلمات الخاصة بك، ثم قم بتشغيله:
#set variables
$vmssname = "name of the vmss that is already created"
$diskencryptionsetname = "name of the diskencryptionset already created"
$vmssrgname = "vmss resourcegroup name"
$diskencryptionsetrgname = "diskencryptionset resourcegroup name"
#get vmss object and create diskencryptionset object attach to vmss os disk
$ssevmss = get-azvmss -ResourceGroupName $vmssrgname -VMScaleSetName $vmssname
$ssevmss.VirtualMachineProfile.StorageProfile.OsDisk.ManagedDisk.DiskEncryptionSet = New-Object -TypeName Microsoft.Azure.Management.Compute.Models.DiskEncryptionSetParameters
#get diskencryption object and retrieve the resource id
$des = Get-AzDiskEncryptionSet -ResourceGroupName $diskencryptionsetrgname -Name $diskencryptionsetname
write-host "the diskencryptionset resource id is:" $des.Id
#associate DES resource id to os disk and update vmss
$ssevmss.VirtualMachineProfile.StorageProfile.OsDisk.ManagedDisk.DiskEncryptionSet.id = $des.Id
$ssevmss | update-azvmss
إنشاء مجموعة تغيير سعة جهاز ظاهري باستخدام صورة Marketplace، وتشفير نظام التشغيل وأقراص البيانات باستخدام مفاتيح مُدارة بواسطة العميل
انسخ البرنامج النصي، واستبدل كافة قيم الأمثلة بالمعلمات الخاصة بك، ثم قم بتشغيله.
هام
ابتداء من نوفمبر 2023، ستظل مجموعات مقياس الآلات الافتراضية التي يتم إنشاؤها باستخدام PowerShell و Azure CLI افتراضية إلى وضع التنسيق المرن إذا لم يتم تحديد وضع التنسيق. لمزيد من المعلومات حول هذا التغيير وما هي الإجراءات التي يجب اتخاذها، توجه إلى Breaking Change لعملاء VMSS PowerShell/CLI - Microsoft Community Hub
$VMLocalAdminUser = "yourLocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString Password@123 -AsPlainText -Force
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$ComputerNamePrefix = "yourComputerNamePrefix"
$VMScaleSetName = "yourVMSSName"
$VMSize = "Standard_DS3_v2"
$diskEncryptionSetName="yourDiskEncryptionSetName"
$NetworkName = "yourVNETName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$ipConfig = New-AzVmssIpConfig -Name "myIPConfig" -SubnetId $Vnet.Subnets[0].Id
$VMSS = New-AzVmssConfig -Location $LocationName -SkuCapacity 2 -SkuName $VMSize -UpgradePolicyMode 'Automatic' -OrchestrationMode 'Uniform'
$VMSS = Add-AzVmssNetworkInterfaceConfiguration -Name "myVMSSNetworkConfig" -VirtualMachineScaleSet $VMSS -Primary $true -IpConfiguration $ipConfig
$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName
# Enable encryption at rest with customer managed keys for OS disk by setting DiskEncryptionSetId property
$VMSS = Set-AzVmssStorageProfile $VMSS -OsDiskCreateOption "FromImage" -DiskEncryptionSetId $diskEncryptionSet.Id -ImageReferenceOffer 'WindowsServer' -ImageReferenceSku '2012-R2-Datacenter' -ImageReferenceVersion latest -ImageReferencePublisher 'MicrosoftWindowsServer'
$VMSS = Set-AzVmssOsProfile $VMSS -ComputerNamePrefix $ComputerNamePrefix -AdminUsername $VMLocalAdminUser -AdminPassword $VMLocalAdminSecurePassword
# Add a data disk encrypted at rest with customer managed keys by setting DiskEncryptionSetId property
$VMSS = Add-AzVmssDataDisk -VirtualMachineScaleSet $VMSS -CreateOption Empty -Lun 1 -DiskSizeGB 128 -StorageAccountType Premium_LRS -DiskEncryptionSetId $diskEncryptionSet.Id
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
New-AzVmss -VirtualMachineScaleSet $VMSS -ResourceGroupName $ResourceGroupName -VMScaleSetName $VMScaleSetName
قم بتغيير مفتاح DiskEncryptionSet لتدوير المفتاح لجميع الموارد التي تشير إلى DiskEncryptionSet
انسخ البرنامج النصي، واستبدل كافة قيم الأمثلة بالمعلمات الخاصة بك، ثم قم بتشغيله.
$ResourceGroupName="yourResourceGroupName"
$keyVaultName="yourKeyVaultName"
$keyName="yourKeyName"
$diskEncryptionSetName="yourDiskEncryptionSetName"
$keyVault = Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $ResourceGroupName
$keyVaultKey = Get-AzKeyVaultKey -VaultName $keyVaultName -Name $keyName
Update-AzDiskEncryptionSet -Name $diskEncryptionSetName -ResourceGroupName $ResourceGroupName -SourceVaultId $keyVault.ResourceId -KeyUrl $keyVaultKey.Id
البحث عن حالة التشفير من جانب الخادم للقرص
$ResourceGroupName="yourResourceGroupName"
$DiskName="yourDiskName"
$disk=Get-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName
$disk.Encryption.Type
هام
تعتمد المفاتيح المدارة من قبل العملاء على هويات مدارة لموارد Azure، وهي ميزة في Microsoft Entra ID. عندما تقوم بتكوين المفاتيح المُدارة بواسطة العميل، يتم تعيين هوية مُدارة تلقائياً لمواردك ضمن الأغلفة. إذا قمت لاحقا بنقل الاشتراك أو مجموعة الموارد أو القرص المدار من مجلد Microsoft Entra إلى آخر، فإن الهوية المدارة المرتبطة بالأقراص المدارة لا تنقل إلى المستأجر الجديد، لذا قد لا تعمل المفاتيح المدارة من قبل العملاء. لمزيد من المعلومات، راجع نقل الاشتراك بين Microsoft Entra الدليل.
الخطوات التالية
- استكشف القوالب Azure Resource Manager لإنشاء أقراص مشفرة باستخدام مفاتيح يديرها العميل
- نسخ الأجهزة باستخدام الأقراص الممكّنة للمفاتيح المُدارة بواسطة العميل
- إعداد استعادة الكوارث لأجهزة VMware الافتراضية Azure باستخدام PowerShell
- قم بإعداد استعادة الكوارث على Azure لأجهزة افتراضية Hyper-V باستخدام PowerShell و Azure Resource Manager