Gunakan Azure CLI untuk mengaktifkan enkripsi ujung ke ujung menggunakan enkripsi di host

Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel

Saat Anda mengaktifkan enkripsi di host, data yang disimpan di host VM dienkripsi saat tidak aktif dan mengalirkan enkripsi ke layanan Microsoft Azure Storage. Untuk informasi konseptual tentang enkripsi di host, dan jenis enkripsi disk terkelola lainnya, lihat Enkripsi di host - Enkripsi end-to-end untuk data VM Anda.

Batasan

  • Didukung untuk ukuran sektor 4k Ultra Disk dan Premium SSD v2.
  • Hanya didukung pada ukuran sektor 512e Ultra Disk dan Premium SSD v2 jika dibuat setelah 13/5/2023.
    • Untuk disk yang dibuat sebelum tanggal ini, rekam jepret disk Anda dan buat disk baru menggunakan rekam jepret.
  • Tidak dapat diaktifkan pada komputer virtual (VM) atau set skala komputer virtual yang saat ini atau pernah mengaktifkan Azure Disk Encryption.
  • Azure Disk Encryption tidak dapat diaktifkan pada disk yang mengaktifkan enkripsi di host.
  • Enkripsi dapat diaktifkan pada set skala komputer virtual yang ada. Namun, hanya VM baru yang dibuat setelah mengaktifkan enkripsi yang dienkripsi secara otomatis.
  • VM yang ada harus dibatalkan alokasinya dan dialokasikan kembali untuk dienkripsi.

Ketersediaan regional

Enkripsi di host tersedia di semua wilayah untuk semua jenis disk.

Ukuran komputer virtual yang didukung

Daftar lengkap ukuran Komputer Virtual yang didukung dapat ditarik secara terprogram. Untuk mempelajari cara mengambilnya secara terprogram, lihat bagian Menemukan ukuran VM yang didukung. Meningkatkan ukuran VM menghasilkan validasi untuk memeriksa apakah ukuran VM baru mendukung fitur EncryptionAtHost.

Prasyarat

Anda harus mengaktifkan fitur untuk langganan sebelum Anda menggunakan properti EncryptionAtHost untuk Komputer Virtual/VMSS Anda. Gunakan langkah-langkah berikut untuk mengaktifkan fitur untuk langganan Anda:

  • Jalankan perintah berikut untuk mendaftarkan fitur untuk langganan Anda
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
  • Harap periksa apakah status pendaftaran sudah Terdaftar (perlu beberapa menit) menggunakan perintah di bawah ini sebelum mencoba fitur tersebut.
az feature show --namespace Microsoft.Compute --name EncryptionAtHost

Membuat sumber daya

Catatan

Bagian ini hanya berlaku untuk konfigurasi dengan kunci yang dikelola pelanggan. Jika Anda menggunakan kunci yang dikelola platform, Anda dapat melompat ke bagian Contoh skrip .

Setelah fitur diaktifkan, Anda perlu menyiapkan DiskEncryptionSet dan Azure Key Vault atau Azure Key Vault Managed HSM.

Azure Key Vault

  • Instal Azure CLI terbaru dan masuk ke akun Azure dengan az login.
  • Membuat Azure Key Vault dan kumpulan enkripsi disk.

Saat membuat Key Vault, Anda harus mengaktifkan perlindungan pembersihan. Perlindungan pembersihan memastikan bahwa kunci yang dihapus tidak dapat dihapus secara permanen hingga periode retensi berakhir. Pengaturan ini melindungi Anda dari kehilangan data karena tidak sengaja terhapus. Pengaturan ini wajib dilakukan ketika menggunakan Azure Key Vault untuk mengenkripsi disk terkelola.

Penting

Jangan menggunakan camel case saat menulis wilayah, jika Anda melakukannya, Anda mungkin mengalami masalah saat menetapkan disk tambahan ke sumber daya di portal Microsoft Azure.

subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName

az account set --subscription $subscriptionId

az group create --resource-group $rgName --location $location

az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true 

az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
  • Buat DiskEncryptionSet. Anda dapat mengatur aktifkan-rotasi kunci-otomatis ke true untuk mengaktifkan rotasi kunci otomatis. Saat Anda mengaktifkan rotasi otomatis, sistem secara otomatis akan memperbarui semua disk terkelola, rekam jepret, dan gambar yang merujuk pada enkripsi disk yang diatur agar menggunakan versi kunci baru dalam waktu satu jam.
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)

az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
  • Berikan akses DiskEncryptionSet akses sumber daya ke brankas kunci.

Catatan

Mungkin perlu waktu beberapa menit bagi Azure untuk membuat identitas DiskEncryptionSet Anda di ID Microsoft Entra Anda. Jika Anda mendapatkan kesalahan seperti "Tidak dapat menemukan objek Direktori Aktif" saat menjalankan perintah berikut, tunggu beberapa menit dan coba lagi.

desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)

az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get

HSM Terkelola Azure Key Vault

Atau, Anda dapat menggunakan HSM Terkelola untuk menangani kunci Anda.

Untuk melakukan ini, Anda harus melengkapi prasyarat berikut:

Konfigurasi

Setelah membuat HSM Terkelola dan menambahkan izin, aktifkan perlindungan pembersihan dan buat kunci enkripsi.

subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
    
az account set --subscription $subscriptionId
    
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
    
az keyvault key create --hsm-name  $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048

Kemudian, buat DiskEncryptionSet.

keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
    
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false

Akhirnya, berikan akses DiskEncryptionSet ke HSM Terkelola.

desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
    
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys

Contoh skrip

Membuat VM dengan enkripsi di host yang diaktifkan dengan kunci yang dikelola pelanggan

Buat VM dengan disk terkelola menggunakan URI sumber daya DiskEncryptionSet yang dibuat sebelumnya untuk mengenkripsi cache OS dan data disk dengan kunci yang dikelola pelanggan. Disk sementara dienkripsi dengan kunci yang dikelola platform.

rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN
diskEncryptionSetName=yourDiskEncryptionSetName

diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)

az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 128 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId

Membuat VM dengan enkripsi di host diaktifkan dengan kunci yang dikelola platform

Buat VM dengan enkripsi di host yang diaktifkan untuk mengenkripsi cache disk OS/data dan disk sementara dengan kunci yang dikelola platform.

rgName=yourRGName
vmName=yourVMName
location=eastus
vmSize=Standard_DS2_v2
image=LinuxImageURN

az vm create -g $rgName \
-n $vmName \
-l $location \
--encryption-at-host \
--image $image \
--size $vmSize \
--generate-ssh-keys \
--data-disk-sizes-gb 128 128 \

Memperbarui VM untuk mengaktifkan enkripsi di host

rgName=yourRGName
vmName=yourVMName

az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=true

Memeriksa status enkripsi di host untuk VM

rgName=yourRGName
vmName=yourVMName

az vm show -n $vmName \
-g $rgName \
--query [securityProfile.encryptionAtHost] -o tsv

Memperbarui VM untuk menonaktifkan enkripsi di host

Anda harus membatalkan alokasi mesin virtual Anda sebelum Anda dapat menonaktifkan enkripsi di host.

rgName=yourRGName
vmName=yourVMName

az vm update -n $vmName \
-g $rgName \
--set securityProfile.encryptionAtHost=false

Membuat Set Skala Komputer Virtual dengan enkripsi di host yang diaktifkan dengan kunci yang dikelola pelanggan

Buat Set Skala Komputer Virtual dengan disk terkelola menggunakan URI sumber daya DiskEncryptionSet yang dibuat sebelumnya untuk mengenkripsi cache OS dan disk data dengan kunci yang dikelola pelanggan. Disk sementara dienkripsi dengan kunci yang dikelola platform.

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

rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204
diskEncryptionSetName=yourDiskEncryptionSetName

diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)

az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--os-disk-encryption-set $diskEncryptionSetId \
--data-disk-sizes-gb 64 128 \
--data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId

Membuat Set Skala Komputer Virtual dengan enkripsi di host yang diaktifkan dengan kunci yang dikelola platform

Buat Set Skala Komputer Virtual dengan enkripsi di host yang diaktifkan untuk mengenkripsi cache disk OS/data dan disk sementara dengan kunci yang dikelola platform.

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

rgName=yourRGName
vmssName=yourVMSSName
location=westus2
vmSize=Standard_DS3_V2
image=Ubuntu2204

az vmss create -g $rgName \
-n $vmssName \
--encryption-at-host \
--image $image \
--orchestration-mode flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128 \

Memperbarui Virtual Machine Scale Set untuk mengaktifkan enkripsi di host

rgName=yourRGName
vmssName=yourVMName

az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=true

Periksa status enkripsi di host untuk Set Skala Komputer Virtual

rgName=yourRGName
vmssName=yourVMName

az vmss show -n $vmssName \
-g $rgName \
--query [virtualMachineProfile.securityProfile.encryptionAtHost] -o tsv

Memperbarui Virtual Machine Scale Set untuk menonaktifkan enkripsi di host

Anda dapat menonaktifkan enkripsi di host pada Virtual Machine Scale Set Anda tetapi, ini hanya akan memengaruhi VM yang dibuat setelah Anda menonaktifkan enkripsi di host. Untuk mesin virtual yang ada, Anda harus membatalkan alokasi mesin virtual, menonaktifkan enkripsi di host pada mesin virtual individu, lalu mengalokasikan kembali mesin virtual.

rgName=yourRGName
vmssName=yourVMName

az vmss update -n $vmssName \
-g $rgName \
--set virtualMachineProfile.securityProfile.encryptionAtHost=false

Menemukan ukuran VM yang didukung

Ukuran VM warisan tidak didukung. Anda dapat menemukan daftar ukuran VM yang didukung dengan menggunakan API SKU sumber daya atau modul Azure PowerShell. Anda tidak dapat menemukan ukuran yang didukung menggunakan CLI.

Saat memanggil RESOURCE Skus API, periksa apakah EncryptionAtHostSupported kemampuan diatur ke True.

    {
        "resourceType": "virtualMachines",
        "name": "Standard_DS1_v2",
        "tier": "Standard",
        "size": "DS1_v2",
        "family": "standardDSv2Family",
        "locations": [
        "CentralUSEUAP"
        ],
        "capabilities": [
        {
            "name": "EncryptionAtHostSupported",
            "value": "True"
        }
        ]
    }

Untuk modul Azure PowerShell, gunakan cmdlet Get-AzComputeResourceSku .

$vmSizes=Get-AzComputeResourceSku | where{$_.ResourceType -eq 'virtualMachines' -and $_.Locations.Contains('CentralUSEUAP')}

foreach($vmSize in $vmSizes)
{
    foreach($capability in $vmSize.capabilities)
    {
        if($capability.Name -eq 'EncryptionAtHostSupported' -and $capability.Value -eq 'true')
        {
            $vmSize

        }

    }
}

Langkah berikutnya

Setelah membuat dan mengonfigurasi sumber daya ini, Anda dapat menggunakannya untuk mengamankan disk yang terkelola. Tautan berikut ini berisi contoh skrip, dengan skenario masing-masing, yang dapat digunakan untuk mengamankan disk terkelola Anda.

Sampel templat Azure Resource Manager