Mengenkripsi OS dan disk data terlampir dalam Virtual Machine Scale Set dengan Azure CLI

Azure CLI digunakan untuk membuat dan mengelola sumber daya Azure dari baris perintah atau dalam skrip. Mulai cepat ini menunjukkan kepada Anda cara menggunakan Azure CLI untuk membuat dan mengenkripsi Set Skala Komputer Virtual. Untuk informasi selengkapnya tentang menerapkan enkripsi Disk Azure ke Virtual Machine Scale Set, lihat Azure Disk Encryption untuk Virtual Machine Scale Sets.

Prasyarat

  • Artikel ini memerlukan CLI Azure versi 2.0.31 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

Membuat set skala

Sebelum Anda membuat set skala, buat grup sumber daya dengan buat grup az. Contoh berikut ini menampilkan cara membuat grup sumber daya bernama myResourceGroup di lokasi eastus:

az group create --name myResourceGroup --location eastus

Sekarang buat Virtual Machine Scale Set dengan az vmss create. Contoh berikut membuat set skala bernama myScaleSet yang diatur untuk diperbarui secara otomatis saat perubahan diterapkan, dan menghasilkan kunci SSH jika tidak ada di ~/.ssh/id_rsa. Disk data 32 Gb dilampirkan ke setiap instans VM, dan Ekstensi Skrip Kustom Azure digunakan untuk menyiapkan disk data dengan set ekstensi az vmss:

Penting

Pastikan untuk memilih Sistem Operasi yang didukung dengan ADE. OS yang didukung untuk 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"}'

Dibutuhkan beberapa menit untuk membuat dan mengonfigurasi semua sumber daya dan komputer virtual set skala.

Membuat Azure Key Vault diaktifkan untuk enkripsi disk

Azure Key Vault dapat menyimpan kunci, rahasia, atau kata sandi yang memungkinkan Anda menerapkannya dengan aman dalam aplikasi dan layanan Anda. Kunci kriptografi disimpan di Azure Key Vault menggunakan perlindungan perangkat lunak, atau Anda dapat mengimpor atau menghasilkan kunci Anda dalam Modul Keamanan Perangkat Keras (HSM) yang disertifikasi ke standar yang divalidasi FIPS 140. Kunci kriptografi ini digunakan untuk mengenkripsi dan mendekripsi disk virtual yang dilampirkan pada komputer virtual Anda. Anda memegang kendali atas kunci kriptografi ini dan dapat mengaudit penggunaannya.

Tentukan karakter unik Anda keyvault_name. Kemudian, buat KeyVault dengan pembuatan keyvault az di langganan dan wilayah yang sama dengan kumpulan skala, dan atur kebijakan akses --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

Gunakan Key Vault yang ada

Langkah ini hanya diperlukan jika Anda memiliki Key Vault yang sudah ada yang ingin Anda gunakan dengan enkripsi disk. Lewati langkah ini jika Anda membuat Key Vault di bagian sebelumnya.

Tentukan karakter unik Anda keyvault_name. Kemudian, perbarui KeyVault Anda dengan pembaruan keyvault az dan atur kebijakan akses enkripsi --enabled-for-disk.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

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

Megaktifkan enkripsi

Catatan

Jika menggunakan Virtual Machine Scale Sets dalam Mode Orkestrasi Fleksibel, hanya instans baru yang akan dienkripsi. Instans yang ada dalam set skala perlu dienkripsi satu per satu atau dihapus dan diganti.

Untuk mengenkripsi instans VM dalam set skala, pertama-tama dapatkan beberapa informasi tentang ID sumber daya Key Vault dengan Get-AzKeyVault. Variabel ini digunakan untuk kemudian memulai proses enkripsi dengan Set-AzVmssDiskEncryptionExtension:

# 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

Mungkin perlu waktu satu atau dua menit agar proses enkripsi dimulai.

Karena kumpulan skala adalah kebijakan peningkatan pada skala yang dibuat pada langkah sebelumnya diatur ke otomatis,instance VM secara otomatis memulai proses enkripsi. Pada set skala di mana kebijakan peningkatan adalah manual, mulai kebijakan enkripsi pada instance VM dengan az vmss update-instances.

Aktifkan enkripsi menggunakan KEK untuk membungkus kunci

Anda juga dapat menggunakan Kunci Enkripsi Kunci untuk keamanan tambahan saat mengenkripsi Set Skala Komputer Virtual.

# 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

Catatan

Sintaks untuk nilai parameter disk-encryption-keyvault adalah string pengidentifikasi penuh:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]

Sintaks untuk nilai parameter key-encryption-key parameter adalah URI lengkap ke KEK seperti pada:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Periksa progres enkripsi

Untuk memeriksa status enkripsi disk, gunakan Get-AzVmssDiskEncryption:

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

Ketika instance VM dienkripsi, kode status melaporkan EncryptionState/encrypted, seperti yang ditunjukkan dalam contoh output berikut:

[
  {
    "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"
  }
]

Nonaktifkan enkripsi

Jika Anda tidak lagi ingin menggunakan disk instans VM terenkripsi, Anda dapat menonaktifkan enkripsi dengan Disable-AzVmssDiskEncryption sebagai berikut:

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

Langkah berikutnya

  • Dalam artikel ini, Anda menggunakan Azure CLI untuk mengenkripsi Virtual Machine Scale Set. Anda juga bisa menggunakan templat Azure PowerShell atau Azure Resource Manager.
  • Jika Anda ingin Azure Disk Encryption diterapkan setelah ekstensi lain disediakan, Anda dapat menggunakan urutan ekstensi.
  • Contoh file batch end-to-end untuk enkripsi disk data set skala Linux dapat ditemukan di sini. Contoh ini membuat grup sumber daya, set skala Linux, memasang disk data 5 GB, dan mengenkripsi Set Skala Komputer Virtual.