إنشاء مخزن مفاتيح وتكوينه لتشفير Azure Disk Encryption

يستخدم Azure Disk Encryption مخزن Azure Key Vault للتحكم في مفاتيح تشفير القرص والمفاتيح السرية وإدارتها. لمزيد من المعلومات حول خزائن المفاتيح، راجع البدء باستخدام Azure Key Vault وتأمين خزنة المفاتيح.

يتضمن إنشاء مخزن مفاتيح وتكوينه للاستخدام مع Azure Disk Encryption ثلاث خطوات:

  1. إنشاء مجموعة موارد، إذا لزم الأمر.
  2. إنشاء مفتاح رئيسي.
  3. إعداد نهج الوصول المتقدم لمخزن المفاتيح.

يمكنك أيضًا إنشاء أو استيراد مفتاح تشفير مفتاح (KEK) إذا كنت ترغب في ذلك.

تثبيت الأدوات والاتصال بـ Azure

يمكن إكمال الخطوات الواردة في هذه المقالة مع Azure CLI أو الوحدة النمطية Azure PowerShell Az أو مدخل Microsoft Azure.

قم بإنشاء مجموعة موارد

إذا كانت لديك مجموعة موارد بالفعل، فيمكنك الانتقال إلى Create a key vault.

مجموعة الموارد عبارة عن حاوية منطقية يتم فيها توزيع موارد Azure وإدارتها:

إنشاء مجموعة موارد باستخدام أمر az group create من Azure CLI، من أمر New-AzResourceGroup Azure PowerShell أو من Azure Portal.

Azure CLI

az group create --name "myResourceGroup" --location eastus

Azure PowerShell

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

إنشاء مخزن رئيسي

إذا كان لديك قبو مفاتيح بالفعل، يمكنك تخطي إلى تعيين سياسات الوصول المتقدمة إلى قبو المفتاح.

إنشاء قبو مفتاح باستخدام الأمر az keyvault create Azure CLI، الأمرNew-AzKeyvault أوAzure portalأو Resource Manager template.

تحذير

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

يجب أن يكون لكل Key Vault اسم مميز. استبدل <your-unique-keyvault-name> باسم المخزن الرئيسي في الأمثلة التالية.

Azure CLI

عند إنشاء key vault باستخدام Azure CLI، أضف العلامة "--enabled-for-disk-encryption".

az keyvault create --name "<your-unique-keyvault-name>" --resource-group "myResourceGroup" --location "eastus" --enabled-for-disk-encryption

Azure PowerShell

عند إنشاء قبو مفتاح باستخدام Azure PowerShell، أضف علامة "-EnabledForDiskEncryption"

New-AzKeyvault -name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "eastus" -EnabledForDiskEncryption

قالب إدارة الموارد

يمكنك أيضًا إنشاء key vault باستخدامResource Manager template.

  1. في قالب التشغيل السريع Azure، انقر فوق Deploy to Azure.
  2. حدد الاشتراك ومجموعة الموارد وموقع مجموعة الموارد واسم Vault Key ومعرف الكائن والمصطلحات القانونية والاتفاق، ثم انقر فوق Purchase.

حدد سياسات الوصول المتقدم للـ key vault.

هام

تحتوي خزائن المفاتيح التي تم إنشاؤها حديثًا على حذف مبدئي بشكل افتراضي. إذا كنت تستخدم مخزن مفاتيح موجود مسبقًا، فيجب تمكين الحذف المبدئي. راجع نظرة عامة على الحذف المبدئي لـ Azure Key Vault.

تحتاج منصة Azure للوصول إلى مفاتيح التشفير أو الأسرار في key vault الخاص بك لجعلها متوفرة للـVM من أجل الـ booting وفك تشفير الأحجام

إذا لم تقم بتمكين خزنة المفاتيح الخاصة بك لتشفير القرص أو النشر أو نشر القالب في وقت الإنشاء (كما هو موضح في الخطوة السابقة)، فيجب تحديث سياسة الوصول المتقدمة الخاصة به.

Azure CLI

استخدم az keyvault update لتمكين تشفير القرص لـ Key Vault

  • تمكين Key Vault لتشفير القرص : يجب تمكينها لتشفير القرص.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-disk-encryption "true"
    
  • تمكين Key Vault للنشر، إذا لزم الأمر: يقوم بتمكين موفر الموارد Microsoft.Compute لاسترداد أسرار من الـ Key Vault هذا عند الرجوع إلى الـ Key Vault هذا قبو أثناء إنشاء المورد، على سبيل المثال عند إنشاء جهاز ظاهري.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-deployment "true"
    
  • تمكين Key Vault لنشر القالب، إذا لزم الأمر: السماح لمدير الموارد باسترداد أسرار من الـ Vault.

    az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-template-deployment "true"
    

Azure PowerShell

استخدم key vault PowerShell cmdlet Set-AzKeyVaultAccessPolicy لتمكين تشفير القرص لـ key vault.

  • تمكين Key Vault لتشفير القرص: مطلوب EnabledForDiskEncryption لتشفير قرص Azure.

    Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDiskEncryption
    
  • تمكين Key Vault للنشر، إذا لزم الأمر: يقوم بتمكين موفر الموارد Microsoft.Compute لاسترداد أسرار من الـ Key Vault هذا عند الرجوع إلى الـ Key Vault هذا قبو أثناء إنشاء المورد، على سبيل المثال عند إنشاء جهاز ظاهري.

     Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDeployment
    
  • تمكين Key Vault لنشر القالب، إذا لزم الأمر: تمكين مدير موارد Azure من الحصول على أسرار من الـ Key Vault هذا عند الإشارة إلى الـ Key Vault هذا أثناء نشر قالب.

    Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForTemplateDeployment
    

مدخل Azure

  1. اختر مخزن مفاتيحك وانتقل إلى سياسات الوصول.

  2. ضمن "تمكين الوصول إلى"، حدد المربع المسمى تشفير قرص Azure لتشفير وحدة التخزين.

  3. حدد أجهزة Azure الظاهرية للنشر و/أو Azure Resource Manager لنشر النموذج، إذا لزم الأمر.

  4. انقر فوق Save.

    حدد سياسات الوصول المتقدم للـ key vault.

تشفير قرص Azure والتدوير التلقائي

رغم أن Azure Key Vault تحتوي الآن على التدوير التلقائي للمفاتيح، إلا أنها غير متوافقة حاليًا مع تشفير قرص Azure. على وجه التحديد، سيستمر تشفير قرص Azure في استخدام مفتاح التشفير الأصلي، حتى بعد تدويره تلقائياً.

لن يؤدي تدوير مفتاح التشفير إلى كسر Azure Disk Encryption، ولكن تعطيل مفتاح التشفير "القديم" (بمعنى آخر، ما زال مفتاح Azure Disk Encryption قيد الاستخدام).

إعداد مفتاح تشفير مفتاح (KEK)

هام

يجب أن يملك الحساب الذي يتم تشغيله لتمكين تشفير القرص عبر key vault أذونات "القارئ".

إذا كنت ترغب في استخدام مفتاح تشفير مفتاح (KEK) للحصول على طبقة إضافية من الأمان لمفاتيح التشفير، فقم بإضافة KEK إلى خزنة المفاتيح key vault. عند تحديد مفتاح تشفير مفتاح، يستخدم Azure Disk Encryption هذا المفتاح لتحصين أسرار التشفير قبل الكتابة إلى Key Vault.

يمكنك إنشاء KEK جديدة باستخدام أمر az keyvault key createمن Azure CLI أو Cmdlet Add-AzKeyVaultKey أو مدخل Azure. يجب عليك إنشاء نوع مفتاح RSA؛ لا يدعم Azure Disk Encryption حاليًا استخدام مفاتيح Elliptic Curve.

يمكنك بدلاً من ذلك استيراد KEK من إدارة المفتاح الداخلي HSM. لمزيد من المعلومات، راجع Key Vault Documentation.

يجب إصدار عناوين URL لـ KEY VAULT KEK. يفرض Azure هذا التقييد الذي يتعلق بالإصدار. للحصول على عناوين URL سرية وKEK صالحة، راجع الأمثلة التالية:

Azure CLI

استخدم أمر az keyvault key createAzure CLI لإنشاء KEK جديد وتخزينه في key vault.

az keyvault key create --name "myKEK" --vault-name "<your-unique-keyvault-name>" --kty RSA --size 4096

يمكنك بدلاً من ذلك استيراد مفتاح خاص باستخدام الأمر az keyvault key importAzure CLI:

في كلتا الحالتين، سوف توفر اسم KEK الخاص بك إلى Azure CLI az vm encryption enableمعلمة -key-encryption-key.

az vm encryption enable -g "MyResourceGroup" --name "myVM" --disk-encryption-keyvault "<your-unique-keyvault-name>" --key-encryption-key "myKEK"

Azure PowerShell

استخدم Cmdlet Azure PowerShell Add-AzKeyVaultKey لإنشاء KEK جديد وتخزينه في key vault

Add-AzKeyVaultKey -Name "myKEK" -VaultName "<your-unique-keyvault-name>" -Destination "HSM" -Size 4096

يمكنك بدلاً من ذلك استيراد مفتاح خاص باستخدام الأمر az keyvault key import Azure PowerShell

في كلتا الحالتين، سوف توفر معرف قبو مفتاح KEK وعنوان URL الخاص بك KEK إلى معلمات Azure PowerShell Set-AzVMDiskEncryptionExtension -KeyEncryptionKeyVaultId و-KeyEncryptionKeyUrl. هذا المثال يفترض أنك تستخدم نفس key vault لكل من مفتاح تشفير القرص وKEK.

$KeyVault = Get-AzKeyVault -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup"
$KEK = Get-AzKeyVaultKey -VaultName "<your-unique-keyvault-name>" -Name "myKEK"

Set-AzVMDiskEncryptionExtension -ResourceGroupName MyResourceGroup -VMName "MyVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyUrl $KEK.Id -SkipVmBackup -VolumeType All

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