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

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

تُستخدم الوحدة النمطية Azure PowerShell لإنشاء موارد Azure وإدارتها من سطر الأوامر PowerShell أو في البرامج النصية. توضح لك هذه المقالة كيفية استخدام Azure PowerShell لإنشاء مجموعة قياس جهاز ظاهري وتشفيرها. لمزيدٍ من المعلومات حول تشفير Azure Disk إلى مجموعة مقياس الجهاز الظاهري، راجع تشفير قرص 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 في المتصفح لديك. Screenshot that shows how to launch Cloud Shell in a new window.
حدد زر ⁧⁩Cloud Shell⁧⁩ في شريط القوائم في أعلى اليمين في ⁧⁩مدخل 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 باستخدام حماية البرامج، أو يمكنك استيراد أو إنشاء مفاتيحك في وحدات أمان الأجهزة (HSM) المعتمدة وفقًا لمعايير FIPS 140-2 من المستوى 2. تُستخدم مفاتيح التشفير هذه لتشفير وفك تشفير الأقراص الظاهرية المرفقة بجهازك الظاهري. تحتفظ بالسيطرة على مفاتيح التشفير هذه ويمكنك مراجعة استخدامها.

إنشاء مخزن رئيسي باستخدام 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

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

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

$cred = Get-Credential

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

$vmssName="myScaleSet"

New-AzVmss `
    -ResourceGroupName $rgName `
    -VMScaleSetName $vmssName `
    -Location $location `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -PublicIpAddressName "myPublicIPAddress" `
    -LoadBalancerName "myLoadBalancer" `
    -UpgradePolicy "Automatic" `
    -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 بعد توفير ملحق آخر، فإنه يمكنك استخدام تسلسل الملحق.