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

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

المتطلبات الأساسية

  • لقراءة هذه المقالة تحتاج الإصدار 2.0.31 أو الأحدث من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.

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

قبل أن تتمكن من إنشاء مجموعة مقياس، قم بإنشاء مجموعة موارد باستخدام az group create. في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus:

az group create --name myResourceGroup --location eastus

الآن قم بإنشاء مجموعة مقياس الجهاز الظاهري باستخدام az vmss create. يُنشئ المثال التالي مجموعة توسعة تُسمَّى myScaleSet تم تعيينها إلى التحديث تلقائيًا عند تطبيق التغييرات، وتنشئ مفاتيح SSH إذا لم تكن موجودة في ~/.ssh/id_rsa. يتم إرفاق قرص بيانات بسعة 32 جيجا بايت بكل مثيل VM، ويتم استخدام ملحق البرنامج النصي المخصص لـ Azure لإعداد أقراص البيانات مع مجموعة ملحقات az vmss:

هام

تأكد من تحديد نظام التشغيل المدعوم باستخدام ADE. نظام التشغيل المدعوم ل ADE.

# Create a scale set with attached data disk
az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode Flexible \
  --image <SKU Linux Image> \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 32

# Prepare the data disk for use with the Custom Script Extension
az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.sh"],"commandToExecute":"./prepare_vm_disks.sh"}'

يستغرق الأمر بضع دقائق لإنشاء وتكوين جميع موارد مجموعة المقياس والأجهزة الافتراضية.

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

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

حدِّد keyvault_nameالفريدة الخاصة بك. ثم قم بإنشاء KeyVault باستخدام إنشاء az keyvault في نفس الاشتراك والمنطقة مثل مجموعة المقياس وتعيين نهج الوصول --enabled-for-disk-encryption.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

# Create Key Vault
az keyvault create --resource-group myResourceGroup --name $keyvault_name --enabled-for-disk-encryption

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

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

حدِّد keyvault_nameالفريدة الخاصة بك. ثم قم بتحديث KeyVault باستخدام تحديث az keyvault وتعيين نهج الوصول --enabled-for-disk-encryption.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

# Create Key Vault
az keyvault update --name $keyvault_name --enabled-for-disk-encryption

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

إشعار

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

لتشفير مثيلات VM في مجموعة مقياس، احصل أولاً على بعض المعلومات حول معرف مورد Key Vault مع عرض مفتاح az keyvault. تُستخدم هذه المتغيرات لبدء عملية التشفير مع تمكين تشفير az vmss:

# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)

# Enable encryption of the data disks in a scale set
az vmss encryption enable \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --disk-encryption-keyvault $vaultResourceId \
    --volume-type DATA

قد يستغرق بدء عملية التشفير دقيقة أو دقيقتين.

نظرًا لأن مجموعة المقياس هي سياسة ترقية على مجموعة المقاييس التي تم إنشاؤها في خطوة سابقة تم تعيينها على تلقائي، تبدأ مثيلات VM تلقائيًا عملية التشفير. في نطاق يضبط حيث تكون سياسة الترقية يدوية، ابدأ سياسة التشفير على مثيلات VM باستخدام مثيلات تحديث az vmss.

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

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

# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)

# Enable encryption of the data disks in a scale set
az vmss encryption enable \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --disk-encryption-keyvault $vaultResourceId \
    --key-encryption-key myKEK \
    --key-encryption-keyvault $vaultResourceId \
    --volume-type DATA

إشعار

جملة قيمة معلمة 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]

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

للتحقق من حالة تشفير القرص، استخدم عرض تشفير az vmss:

az vmss encryption show --resource-group myResourceGroup --name myScaleSet

عندما يتم تشفير مثيلات VM، تقوم التعليمة البرمجية للحالة بالإبلاغ عن EncryptionState/encrypted، كما هو موضح في المثال التالي الناتج:

[
  {
    "disks": [
      {
        "encryptionSettings": null,
        "name": "myScaleSet_myScaleSet_0_disk2_3f39c2019b174218b98b3dfae3424e69",
        "statuses": [
          {
            "additionalProperties": {},
            "code": "EncryptionState/encrypted",
            "displayStatus": "Encryption is enabled on disk",
            "level": "Info",
            "message": null,
            "time": null
          }
        ]
      }
    ],
    "id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/virtualMachines/0",
    "resourceGroup": "MYRESOURCEGROUP"
  }
]

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

إذا لم تَعُد ترغب في استخدام أقراص مثيلات VM المشفرة، فإنه يمكنك تعطيل التشفير مع تعطيل تشفير az vms على النحو التالي:

az vmss encryption disable --resource-group myResourceGroup --name myScaleSet

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

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