إنشاء مخزن مفاتيح وتكوينه لتشفير Azure Disk Encryption
يستخدم Azure Disk EncryptionAzure Key Vault للتحكم في مفاتيح تشفير القرص والبيانات السرية وإدارتها. لمزيد من المعلومات حول خزائن المفاتيح، راجع البدء باستخدام Azure Key Vault وتأمين خزنة المفاتيح.
يتضمن إنشاء مخزن مفاتيح وتكوينه للاستخدام مع Azure Disk Encryption ثلاث خطوات:
- إنشاء مجموعة موارد، إذا لزم الأمر.
- إنشاء مفتاح رئيسي.
- إعداد نهج الوصول المتقدم لمخزن المفاتيح.
يمكنك أيضًا إنشاء أو استيراد مفتاح تشفير مفتاح (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.
- في قالب التشغيل السريع Azure، انقر فوق Deploy to Azure.
- حدد الاشتراك ومجموعة الموارد وموقع مجموعة الموارد واسم 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
اختر مخزن مفاتيحك وانتقل إلى"Access Policies".
ضمن "Enable Access to"، حدد المربع المسمى "Azure Disk Encryption for volume encryption".
حدد "Azure Virtual Machines for deployment" و/أو "Azure Resource Manager for template deployment"، إذا لزم الأمر.
انقر فوق حفظ.
Azure Disk Encryption والتدوير التلقائي
رغم أن Azure Key Vault تحتوي الآن على التدوير التلقائي للمفاتيح، إلا أنها غير متوافقة حاليًا مع تشفير قرص Azure. على وجه التحديد، سيستمر Azure Disk Encryption في استخدام مفتاح التشفير الأصلي، حتى بعد تدويره تلقائياً.
لن يؤدي تدوير مفتاح التشفير إلى كسر 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 صالحة، راجع الأمثلة التالية:
- مثال على عنوان URL السري الصالح: https://contosovault.vault.azure.net/secrets/EncryptionSecretWithKek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- مثال على عنوان URL KEK صالح: https://contosovault.vault.azure.net/keys/diskencryptionkek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Azure CLI
استخدم الأمر Azure CLI az keyvault key create
لإنشاء KEK جديد وتخزينه في مخزن المفاتيح الخاص بك.
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
يمكنك بدلا من ذلك استيراد مفتاح خاص باستخدام الأمر Azure PowerShell az keyvault key import
.
في كلتا الحالتين، سوف توفر معرف قبو مفتاح 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