تشفير نظام التشغيل وأقراص البيانات المرفقة في مجموعة مقياس الجهاز الظاهري باستخدام Azure PowerShell

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

Azure Cloud Shell

Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.

لبدء Azure Cloud Shell:

خيار مثال/ رابط
انقر فوق ⁧⁩جربه⁧⁩ في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد ⁧⁩جربه⁧⁩ لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
انتقل إلى ⁧⁩⁧ https://shell.azure.com⁩⁧⁩، أو حدد زر ⁩تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. Button to launch Azure Cloud Shell.
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. Screenshot that shows the Cloud Shell button in the Azure portal

لاستخدام Azure Cloud Shell:

  1. ابدأ تشغيل Cloud Shell.

  2. حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.

  3. ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.

  4. حدد Enter لتشغيل التعليمات البرمجية أو الأمر.

إنشاء مخزن رئيسي لـ Azure ممكّن لتشفير القرص

يمكن لـ Azure Key Vault تخزين المفاتيح أو الأسرار أو كلمات المرور التي تتيح لك تنفيذها بأمان في تطبيقاتك وخدماتك. يتم تخزين مفاتيح التشفير في Azure Key Vault باستخدام حماية البرامج، أو يمكنك استيراد أو إنشاء مفاتيحك في وحدات أمان الأجهزة (HSMs) المعتمدة لمعايير FIPS 140 التي تم التحقق من صحتها. تُستخدم مفاتيح التشفير هذه لتشفير وفك تشفير الأقراص الظاهرية المرفقة بجهازك الظاهري. تحتفظ بالسيطرة على مفاتيح التشفير هذه ويمكنك مراجعة استخدامها.

إنشاء مخزن رئيسي باستخدام New-AzKeyvault. للسماح باستخدام المخزن الرئيسي لتشفير القرص، قم بتعيين المعلمة EnabledForDiskEncryption. يحدد المثال التالي أيضاً المتغيرات الخاصة باسم مجموعة الموارد، واسم المخزن الرئيسي، والموقع. تقديم اسم المخزن الرئيسي الفريد الخاص بك:

$rgName="myResourceGroup"
$vaultName="myuniquekeyvault"
$location = "EastUS"

New-AzResourceGroup -Name $rgName -Location $location
New-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName -Location $location -EnabledForDiskEncryption

استخدام مخزن Key Vault موجود

هذه الخطوة مطلوبة فقط إذا كان لديك Key Vault موجود بالفعل وترغب في استخدامه مع تشفير القرص. تخطِّ هذه الخطوة إذا قمت بإنشاء Key Vault في القسم السابق.

يمكنك تمكين المخزن الرئيسي الحالي في نفس الاشتراك والمنطقة حيث تم تعيين مقياس لتشفير القرص باستخدام Set-AzKeyVaultAccessPolicy. حدد اسم المخزن الرئيسي الحالي في المتغير $vaultName على النحو التالي:

$vaultName="myexistingkeyvault"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName -EnabledForDiskEncryption

إنشاء مجموعة تحجيم

هام

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

أولاً عيّن اسم مستخدم المسؤول وكلمة مرور لمثيلات الجهاز الظاهري باستخدام Get-Credential:

$cred = Get-Credential

الآن قم بإنشاء مجموعة مقياس الجهاز الظاهري باستخدام New-AzVmss. يُنشأ موازن تحميل أيضاً لتوزيع النقل على مثيلات أجهزة ظاهرية متعددة. يتضمن موازن التحميل قواعد لتوزيع النقل على منفذ TCP 80، بالإضافة إلى السماح بنقل سطح المكتب البعيد على منفذ TCP 3389 وPowerShell الاتصال عن بُعد على منفذ TCP 5985:

$vmssName="myScaleSet"

New-AzVmss `
    -ResourceGroupName $rgName `
    -VMScaleSetName $vmssName `
    -OrchestrationMode "flexible" `
    -Location $location `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -PublicIpAddressName "myPublicIPAddress" `
    -LoadBalancerName "myLoadBalancer" `
    -Credential $cred

تمكين التشفير

لتشفير مثيلات الجهاز الظاهري في مجموعة مقياس، احصل أولاً على بعض المعلومات عن عنوان URI للمخزن الرئيسي ومعرف المورد باستخدام Get-AzKeyVault. تُستخدم هذه المتغيرات لبدء عملية التشفير باستخدام Set-AzVmssDiskEncryptionExtension:

$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId

Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
    -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"

عند المطالبة، اكتب y لمتابعة عملية تشفير القرص على مثيلات الجهاز الظاهري لمجموعة القياس.

تمكين التشفير باستخدام KEK للف المفتاح

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

$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId
$keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $vaultName -Name $keyEncryptionKeyName).Key.kid;

Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
    -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId `
    -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"

إشعار

جملة قيمة معلمة keyvault لتشفير القرص هي سلسلة المعرف الكاملة:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]

بناء الجملة لقيمة معلمة مفتاح تشفير المفتاح هو عنوان URI الكامل لـ KEK كما في:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

التحقق من تقدم التشفير

للتحقق من حالة تشفير القرص، استخدم Get-AzVmDiskEncryption:

Get-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

عندما يتم تشفير مثيلات الجهاز الظاهري، فإن EncryptionSummary تقارير التعليمات البرمجية ProvisioningState/Successed كما هو موضح في المثال التالي الناتج:

ResourceGroupName            : myResourceGroup
VmScaleSetName               : myScaleSet
EncryptionSettings           :
  KeyVaultURL                : https://myuniquekeyvault.vault.azure.net/
  KeyEncryptionKeyURL        :
  KeyVaultResourceId         : /subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myuniquekeyvault
  KekVaultResourceId         :
  KeyEncryptionAlgorithm     :
  VolumeType                 : All
  EncryptionOperation        : EnableEncryption
EncryptionSummary[0]         :
  Code                       : ProvisioningState/succeeded
  Count                      : 2
EncryptionEnabled            : True
EncryptionExtensionInstalled : True

تعطيل التشفير

إذا لم تعد ترغب في استخدام أقراص مثيلات الجهاز الظاهري المشفرة، فيمكنك تعطيل التشفير باستخدام Disable-AzVmssDiskEncryption على النحو التالي:

Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

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

  • في هذه المقالة، استخدمت Azure PowerShell لتشفير مجموعة مقياس الجهاز الظاهري. يمكنك أيضاً استخدام Azure CLI أو قوالب Azure Resource Manager.
  • إذا كنت ترغب في تطبيق تشفير Azure Disk Encryption بعد توفير ملحق آخر، فإنه يمكنك استخدام تسلسل الملحق.