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

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

Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Button to launch Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.

  4. Pilih Masukkan untuk menjalankan kode atau perintah.

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.

Buat Key Vault dengan New-AzKeyVault. Untuk mengizinkan Key Vault digunakan untuk enkripsi disk, atur parameter EnabledForDiskEncryption. Contoh berikut juga mendefinisikan variabel untuk nama grup sumber daya, Nama Key Vault, dan lokasi. Berikan nama Key Vault unik Anda sendiri:

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

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

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.

Anda dapat mengaktifkan Key Vault yang ada di langganan dan wilayah yang sama dengan set skala untuk enkripsi disk dengan Set-AzKeyVaultAccessPolicy. Tentukan nama Key Vault Anda yang ada di variabel $vaultName anda sebagai berikut:

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

Membuat set skala

Penting

Mulai November 2023, set skala VM yang dibuat menggunakan PowerShell dan Azure CLI akan default ke Mode Orkestrasi Fleksibel jika tidak ada mode orkestrasi yang ditentukan. Untuk informasi selengkapnya tentang perubahan ini dan tindakan apa yang harus Anda ambil, buka Melanggar Perubahan untuk Pelanggan VMSS PowerShell/CLI - Microsoft Community Hub

Pertama, tetapkan nama pengguna dan kata sandi administrator untuk instans VM dengan Get-Credential:

$cred = Get-Credential

Sekarang buat Virtual Machine Scale Set dengan New-AzVmss. Untuk mendistribusikan lalu lintas ke instans komputer virtual individual, load balancer juga dibuat. Load balancer mencakup aturan untuk mendistribusikan lalu lintas pada port TCP 80, serta memungkinkan lalu lintas desktop jarak jauh pada port TCP 3389 dan PowerShell jarak jauh pada port TCP 5985:

$vmssName="myScaleSet"

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

Megaktifkan enkripsi

Untuk mengenkripsi instans VM dalam set skala, pertama-tama dapatkan beberapa informasi tentang URI Key Vault dan ID sumber daya dengan Get-AzKeyVault. Variabel ini digunakan untuk kemudian memulai proses enkripsi dengan 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"

Ketika diminta, ketik y untuk melanjutkan proses enkripsi disk pada set skala instans VM.

Aktifkan enkripsi menggunakan KEK untuk membungkus kunci

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

$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"

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:

Get-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

Ketika instana VM dienkripsi, kode EncryptionSummary melaporkan ProvisioningState/berhasil seperti yang ditunjukkan dalam contoh output berikut:

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

Nonaktifkan enkripsi

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

Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName

Langkah berikutnya

  • Dalam artikel ini, Anda menggunakan Azure PowerShell untuk mengenkripsi Set Skala Komputer Virtual. Anda juga bisa menggunakan templat Azure CLI atau Azure Resource Manager.
  • Jika Anda ingin Azure Disk Encryption diterapkan setelah ekstensi lain disediakan, Anda dapat menggunakan urutan ekstensi.