Skenario Azure Disk Encryption di Linux VM
Berlaku untuk: ✔️ Mesin Virtual Linux ✔️ Set skala fleksibel
Azure Disk Encryption untuk komputer virtual Linux (VM) menggunakan fitur DM-Crypt Linux untuk menyediakan enkripsi disk penuh dari disk OS dan disk data. Selain itu, ini menyediakan enkripsi disk sementara saat menggunakan fitur EncryptFormatAll.
Azure Disk Encryption terintegrasi dengan Azure Key Vault untuk membantu Anda mengontrol dan mengelola kunci dan rahasia enkripsi disk. Untuk gambaran umum layanan, lihat Azure Disk Encryption untuk VM Linux.
Anda hanya dapat menerapkan enkripsi disk ke komputer virtual dengan ukuran VM dan sistem operasi yang didukung. Anda juga harus memenuhi prasyarat berikut:
Dalam semua kasus, Anda harus mengambil snapshot dan / atau membuat cadangan sebelum disk dienkripsi. Cadangan memastikan bahwa opsi pemulihan memungkinkan jika kegagalan tak terduga terjadi selama enkripsi. Komputer virtual dengan disk terkelola memerlukan cadangan sebelum enkripsi terjadi. Setelah cadangan dibuat, Anda dapat menggunakan cmdlet Set-AzVMDiskEncryptionExtension untuk mengenkripsi disk terkelola dengan menentukan parameter -skipVmBackup. Untuk informasi lebih lanjut tentang cara mencadangkan dan memulihkan VM terenkripsi, lihat artikel Azure Backup.
Peringatan
Jika sebelumnya Anda telah menggunakan Azure Disk Encryption dengan Azure AD untuk mengenkripsi VM, Anda harus terus menggunakan opsi ini untuk mengenkripsi VM Anda. Lihat Azure Disk Encryption dengan Azure AD (rilis sebelumnya) untuk detailnya.
Saat Anda mengenkripsi volume OS Linux, VM harus dianggap tidak tersedia. Kami sangat menyarankan Anda untuk tidak masuk SSH saat enkripsi sedang berlangsung guna menghindari pemblokiran file terbuka yang perlu diakses selama proses enkripsi. Untuk memeriksa kemajuan, gunakan cmdlet Get-AzVMDiskEncryptionStatus PowerShell atau perintah CLI tampilan vm enkripsi. Proses ini dapat memakan waktu beberapa jam untuk volume OS 30-GB dan waktu tambahan untuk mengenkripsi volume data. Waktu enkripsi volume data sebanding dengan ukuran dan kuantitas volume data kecuali jika opsi enkripsi format semua digunakan.
Menonaktifkan enkripsi pada Linux VM hanya didukung untuk volume data. Tindakan ini tidak didukung pada volume data atau OS jika volume OS telah dienkripsi.
Memasang alat dan menyambungkan ke Azure
Azure Disk Encryption dapat diaktifkan dan dikelola melalui Azure CLI dan Azure PowerShell. Untuk melakukannya, Anda harus menginstal alat secara lokal dan menyambungkan ke langganan Azure Anda.
Azure CLI
Azure CLI 2.0 merupakan alat baris perintah untuk mengelola sumber daya Azure. CLI dirancang untuk secara fleksibel mengkueri data, mendukung operasi jangka panjang sebagai proses non-pemblokiran, dan memudahkan proses pembuatan skrip. Anda dapat menginstalnya secara lokal dengan mengikuti langkah-langkah dalam Menginstal Azure CLI.
Untuk Masuk ke akun Azure Anda dengan Azure CLI, gunakan perintah login az.
az login
Jika Anda ingin memilih penyewa untuk masuk di bawah ini, gunakan:
az login --tenant <tenant>
Jika Anda memiliki beberapa langganan dan ingin menentukan langganan tertentu, dapatkan daftar langganan Anda dengan daftar akun az dan tentukan dengan kumpulan akun az.
az account list
az account set --subscription "<subscription name or ID>"
Untuk informasi selengkapnya, lihat Mulai menggunakan Azure CLI 2.0.
Azure PowerShell
Modul az Azure PowerShell menyediakan kumpulan cmdlet yang menggunakan model Azure Resource Manager untuk mengelola sumber daya Azure Anda. Anda dapat menggunakannya di browser Anda dengan Azure Cloud Shell, atau Anda dapat menginstalnya di mesin lokal Anda menggunakan instruksi di Menginstal modul Azure PowerShell.
Jika Anda sudah menginstalnya secara lokal, pastikan Anda menggunakan versi terbaru Azure PowerShell SDK untuk mengonfigurasi Azure Disk Encryption. Unduh versi terbaru rilis Azure PowerShell.
Untuk Masuk ke akun Azure Anda dengan Azure PowerShell, gunakan cmdlet Connect-AzAccount.
Connect-AzAccount
Jika Anda memiliki beberapa langganan dan ingin menentukannya, gunakan cmdlet Get-AzSubscription untuk mencantumkannya, diikuti dengan cmdlet Set-AzContext:
Set-AzContext -Subscription <SubscriptionId>
Menjalankan cmdlet Get-AzContext akan memverifikasi bahwa langganan yang benar telah dipilih.
Untuk mengonfirmasi bahwa cmdlet Azure Disk Encryption telah diinstal, gunakan cmdlet Get-command:
Get-command *diskencryption*
Untuk informasi selengkapnya, lihat Memulai Azure PowerShell.
Aktifkan enkripsi pada VM Linux yang sudah ada atau yang sedang berjalan
Dalam skenario ini, Anda dapat mengaktifkan enkripsi dengan menggunakan templat Resource Manager, cmdlet PowerShell, atau perintah CLI. Jika Anda memerlukan informasi skema untuk ekstensi mesin virtual, lihat artikel ekstensi Azure Disk Encryption for Linux.
Penting
Ini wajib untuk snapshot dan / atau cadangan instance VM berbasis disk terkelola di luar, dan sebelum mengaktifkan Azure Disk Encryption. Snapshot disk terkelola dapat diambil dari portal, atau melalui Azure Backup. Cadangan memastikan bahwa opsi pemulihan dimungkinkan jika terjadi kegagalan tak terduga selama enkripsi. Setelah cadangan dibuat, cmdlet Set-AzVMDiskEncryptionExtension dapat digunakan untuk mengenkripsi disk yang dikelola dengan menentukan parameter -skipVmBackup. Perintah Set-AzVMDiskEncryptionExtension akan gagal melawan VM berbasis disk terkelola sampai cadangan dibuat dan parameter ini telah ditentukan.
Mengenkripsi atau menonaktifkan enkripsi dapat menyebabkan VM mulai ulang.
Untuk menonaktifkan enkripsi, lihat Menonaktifkan enkripsi dan menghapus ekstensi enkripsi.
Mengaktifkan enkripsi pada VM Linux yang sudah ada atau yang sedang berjalan menggunakan Azure CLI
Anda dapat mengaktifkan enkripsi disk pada VHD terenkripsi dengan memasang dan menggunakan alat baris perintah Azure CLI. Anda dapat menggunakannya di browser dengan Azure Cloud Shell, atau memasangnya di komputer lokal dan menggunakannya di sesi PowerShell apa pun. Untuk mengaktifkan enkripsi pada VM Linux yang sudah ada atau yang berjalan di Azure, gunakan perintah CLI berikut:
Gunakan perintah aktifkan enkripsi az vm untuk mengaktifkan enkripsi pada komputer virtual yang berjalan di Azure.
Mengenkripsi VM yang sedang berjalan:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
Mengenkripsi VM yang sedang berjalan menggunakan KEK:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type [All|OS|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]
Memverifikasi bahwa disk dienkripsi: Untuk memeriksa status enkripsi VM, gunakan perintah tampilkan enkripsi az vm .
az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
Untuk menonaktifkan enkripsi, lihat Menonaktifkan enkripsi dan menghapus ekstensi enkripsi.
Mengaktifkan enkripsi pada VM Linux yang sudah ada atau yang sedang berjalan menggunakan PowerShell
Gunakan cmdlet Set-AzVMDiskEncryptionExtension untuk mengaktifkan enkripsi pada mesin virtual yang sedang berjalan di Azure. Ambil snapshot dan/atau cadangkan VM dengan Azure Backup sebelum disk dienkripsi. Parameter -skipVmBackup sudah ditentukan dalam skrip PowerShell untuk mengenkripsi Linux VM yang sedang berjalan.
Enkripsi VM yang berjalan: Skrip di bawah inisialisasi variabel Anda dan menjalankan cmdlet Set-AzVMDiskEncryptionExtension. Grup sumber daya, VM, dan key vault, dibuat sebagai prasyarat. Ganti MyVirtualMachineResourceGroup, MySecureVM, dan MySecureVault dengan nilai Anda. Ubah parameter -VolumeType untuk menentukan disk mana yang sedang Anda enkripsi.
$KVRGname = 'MyKeyVaultResourceGroup'; $VMRGName = 'MyVirtualMachineResourceGroup'; $vmName = 'MySecureVM'; $KeyVaultName = 'MySecureVault'; $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname; $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri; $KeyVaultResourceId = $KeyVault.ResourceId; $sequenceVersion = [Guid]::NewGuid(); Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
Mengenkripsi VM yang sedang berjalan menggunakan KEK: Anda mungkin perlu menambahkan parameter -VolumeType jika Anda mengenkripsi disk data dan bukan disk OS.
$KVRGname = 'MyKeyVaultResourceGroup'; $VMRGName = 'MyVirtualMachineResourceGroup'; $vmName = 'MyExtraSecureVM'; $KeyVaultName = 'MySecureVault'; $keyEncryptionKeyName = 'MyKeyEncryptionKey'; $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname; $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri; $KeyVaultResourceId = $KeyVault.ResourceId; $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid; $sequenceVersion = [Guid]::NewGuid(); Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
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]
Pastikan disk dienkripsi: Untuk memeriksa status enkripsi komputer virtual IaaS, gunakan cmdlet Get-AzVmDiskEncryptionStatus.
Get-AzVmDiskEncryptionStatus -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM'
Untuk menonaktifkan enkripsi, lihat Menonaktifkan enkripsi dan menghapus ekstensi enkripsi.
Aktifkan enkripsi pada VM Linux yang sudah ada atau yang sedang berjalan dengan templat
Anda dapat mengaktifkan enkripsi disk pada VM Linux yang sudah ada atau yang berjalan di Azure dengan menggunakan templat Resource Manager.
Klik Sebarkan ke Azure pada Templat Mulai Cepat Azure.
Pilih langganan, grup sumber daya, lokasi grup sumber daya, parameter, persyaratan hukum, dan perjanjian. Klik Buat untuk mengaktifkan enkripsi pada VM yang sudah ada atau yang berjalan.
Tabel berikut ini mencantumkan parameter templat Resource Manager untuk VM yang sudah ada atau yang sedang berjalan:
Parameter | Deskripsi |
---|---|
vmName | Nama VM untuk menjalankan operasi enkripsi. |
keyVaultName | Nama key vault tempat kunci enkripsi harus diunggah. Anda bisa mendapatkannya dengan menggunakan cmdlet (Get-AzKeyVault -ResourceGroupName <MyKeyVaultResourceGroupName>). Vaultname atau perintah Azure CLI az keyvault list --resource-group "MyKeyVaultResourceGroupName" . |
keyVaultResourceGroup | Nama grup sumber daya yang berisi key vault. |
keyEncryptionKeyURL | URL kunci enkripsi kunci yang digunakan untuk mengenkripsi kunci enkripsi. Parameter ini bersifat opsional jika Anda memilih nokek di menu drop-down UseExistingKek. Jika Anda memilih kek di menu drop-down UseExistingKek, Anda harus memasukkan nilai keyEncryptionKeyURL. |
volumeType | Jenis volume untuk eksekusi operasi enkripsi. Nilai yang valid adalah OS, Data, dan Semua. |
forceUpdateTag | Teruskan nilai unik seperti GUID setiap kali operasi perlu dijalankan secara paksa. |
lokasi | Lokasi untuk semua sumber daya. |
Untuk informasi selengkapnya tentang mengonfigurasi template enkripsi disk Linux VM, lihat Azure Disk Encryption untuk Linux.
Untuk menonaktifkan enkripsi, lihat Menonaktifkan enkripsi dan menghapus ekstensi enkripsi.
Gunakan fitur EncryptFormatAll untuk disk data di Linux VMs
Parameter EncryptFormatAll mengurangi waktu untuk mengenkripsi disk data Linux. Partisi yang memenuhi kriteria tertentu akan diformat, bersama dengan sistem file mereka saat ini, kemudian dilepas kembali ke tempat mereka sebelum eksekusi perintah. Jika Anda ingin mengecualikan disk data yang memenuhi kriteria, Anda dapat melepas kaitannya sebelum menjalankan perintah.
Setelah menjalankan perintah ini, semua drive yang dipasang sebelumnya akan diformat, dan lapisan enkripsi akan dimulai di atas drive yang sekarang kosong. Ketika opsi ini dipilih, disk sementara yang terpasang pada VM juga akan dienkripsi. Jika disk sementara direset, disk tersebut akan diformat ulang dan dienkripsi ulang untuk VM oleh solusi Azure Disk Encryption pada kesempatan berikutnya. Setelah disk sumber daya dienkripsi, Agen Linux Microsoft Azure tidak akan dapat mengelola disk sumber daya dan mengaktifkan pertukaran file, tetapi Anda dapat mengonfigurasi pertukaran file secara manual.
Peringatan
EncryptFormatAll tidak boleh digunakan ketika ada data yang diperlukan pada volume data VM. Anda dapat mengecualikan disk dari enkripsi dengan melepasnya. Anda harus terlebih dahulu mencoba EncryptFormatAll terlebih dahulu pada VM pengujian, memahami parameter fitur dan implikasinya sebelum mencobanya pada VM produksi. Opsi EncryptFormatAll memformat disk data dan semua data di dalamnya akan hilang. Sebelum melanjutkan, verifikasi bahwa disk yang ingin Anda keluarkan akan dilepas dengan benar. Jika Anda mengatur parameter ini saat memperbarui pengaturan enkripsi, hal ini mungkin menyebabkan reboot sebelum enkripsi sebenarnya. Dalam hal ini, Anda juga ingin menghapus disk yang tidak ingin Anda format dari file fstab. Demikian pula, Anda harus menambahkan partisi yang ingin Anda format enkripsi ke file fstab sebelum memulai operasi enkripsi.
Kriteria EncryptFormatAll
Parameter melewati semua partisi dan mengenkripsinya selama memenuhi semua kriteria di bawah ini:
- Bukan partisi akar/OS/boot
- Belum dienkripsi
- Bukan volume BEK
- Bukan volume RAID
- Bukan volume LVM
- Dipasang
Enkripsi disk yang menyusun volume RAID atau LVM daripada volume RAID atau LVM.
Menggunakan parameter EncryptFormatAll dengan Azure CLI
Gunakan perintah aktifkan enkripsi az vm untuk mengaktifkan enkripsi pada komputer virtual yang berjalan di Azure.
Mengenkripsi VM yang sedang berjalan menggunakan EncryptFormatAll:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "data" --encrypt-format-all
Gunakan parameter EncryptFormatAll dengan cmdlet PowerShell
Gunakan cmdlet Set-AzVMDiskEncryptionExtension dengan parameter EncryptFormatAll.
Enkripsi VM yang berjalan menggunakan EncryptFormatAll: Sebagai contoh, skrip di bawah ini menginisialisasi variabel Anda dan menjalankan cmdlet Set-AzVMDiskEncryptionExtension dengan parameter EncryptFormatAll. Grup sumber daya, VM, dan key vault dibuat sebagai prasyarat. Ganti MyVirtualMachineResourceGroup, MySecureVM, dan MySecureVault dengan nilai Anda.
$KVRGname = 'MyKeyVaultResourceGroup';
$VMRGName = 'MyVirtualMachineResourceGroup';
$vmName = 'MySecureVM';
$KeyVaultName = 'MySecureVault';
$KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
$diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
$KeyVaultResourceId = $KeyVault.ResourceId;
Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType "data" -EncryptFormatAll
Menggunakan parameter EncryptFormatAll dengan Logical Volume Manager (LVM)
Kami merekomendasikan menyiapkan LVM-on-crypt. Untuk semua contoh berikut, ganti jalur perangkat dan titik pemasangan dengan apa pun yang sesuai dengan kasus penggunaan Anda. Penyiapan ini dapat dilakukan sebagai berikut:
Tambahkan disk data yang akan menyusun VM.
Format, pasang, dan tambahkan disk ini ke file fstab.
Pilih standar partisi, buat partisi yang mencakup seluruh drive, lalu format partisi. Kami menggunakan symlink yang dihasilkan oleh Azure di sini. Menggunakan symlink menghindari masalah yang terkait dengan perubahan nama perangkat. Untuk informasi selengkapnya, lihat artikel masalah Troubleshoot Device Names.
parted /dev/disk/azure/scsi1/lun0 mklabel gpt parted -a opt /dev/disk/azure/scsi1/lun0 mkpart primary ext4 0% 100% mkfs -t ext4 /dev/disk/azure/scsi1/lun0-part1
Pasang disk:
mount /dev/disk/azure/scsi1/lun0-part1 /mnt/mountpoint
Tambahkan ke berkas fstab:
echo "/dev/disk/azure/scsi1/lun0-part1 /mnt/mountpoint ext4 defaults,nofail 0 2" >> /etc/fstab
Jalankan cmdlet Azure PowerShell Set-AzVMDiskEncryptionExtension dengan -EncryptFormatAll untuk mengenkripsi disk ini.
$KeyVault = Get-AzKeyVault -VaultName "MySecureVault" -ResourceGroupName "MySecureGroup" Set-AzVMDiskEncryptionExtension -ResourceGroupName "MySecureGroup" -VMName "MySecureVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -EncryptFormatAll -SkipVmBackup -VolumeType Data
Jika Anda ingin menggunakan kunci enkripsi kunci (KEK), berikan URI KEK Anda dan ResourceID dari key vault Anda ke parameter -KeyEncryptionKeyUrl dan -KeyEncryptionKeyVaultId, masing-masing:
$KeyVault = Get-AzKeyVault -VaultName "MySecureVault" -ResourceGroupName "MySecureGroup" $KEKKeyVault = Get-AzKeyVault -VaultName "MyKEKVault" -ResourceGroupName "MySecureGroup" $KEK = Get-AzKeyVaultKey -VaultName "myKEKVault" -KeyName "myKEKName" Set-AzVMDiskEncryptionExtension -ResourceGroupName "MySecureGroup" -VMName "MySecureVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -EncryptFormatAll -SkipVmBackup -VolumeType Data -KeyEncryptionKeyUrl $$KEK.id -KeyEncryptionKeyVaultId $KEKKeyVault.ResourceId
Siapkan LVM di atas disk baru ini. Perhatikan drive terenkripsi tidak terkunci setelah VM selesai dimulai. Jadi, pemasangan LVM juga harus ditunda.
VM baru yang dibuat dari VHD dan kunci enkripsi yang dienkripsi pelanggan
Dalam skenario ini, Anda dapat mengaktifkan enkripsi dengan menggunakan cmdlet PowerShell atau perintah CLI.
Gunakan instruksi dalam skrip yang sama dengan enkripsi Azure Disk untuk menyiapkan gambar pra-enkripsi yang dapat digunakan di Azure. Setelah gambar dibuat, Anda dapat menggunakan langkah-langkah di bagian berikutnya untuk membuat Microsoft Azure VM terenkripsi.
Penting
Ini wajib untuk snapshot dan / atau cadangan instance VM berbasis disk terkelola di luar, dan sebelum mengaktifkan Azure Disk Encryption. Snapshot disk terkelola dapat diambil dari portal, atau Azure Backup dapat digunakan. Cadangan memastikan bahwa opsi pemulihan dimungkinkan jika terjadi kegagalan tak terduga selama enkripsi. Setelah cadangan dibuat, cmdlet Set-AzVMDiskEncryptionExtension dapat digunakan untuk mengenkripsi disk yang dikelola dengan menentukan parameter -skipVmBackup. Perintah Set-AzVMDiskEncryptionExtension akan gagal melawan VM berbasis disk terkelola sampai cadangan dibuat dan parameter ini telah ditentukan.
Mengenkripsi atau menonaktifkan enkripsi dapat menyebabkan VM mulai ulang.
Menggunakan Azure PowerShell untuk mengenkripsi VM dengan VHD pra-enkripsi
Anda dapat mengaktifkan enkripsi disk pada VHD terenkripsi dengan menggunakan cmdlet PowerShell Set-AzVMOSDisk. Contoh di bawah ini memberi Anda beberapa parameter umum.
$VirtualMachine = New-AzVMConfig -VMName "MySecureVM" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "SecureOSDisk" -VhdUri "os.vhd" Caching ReadWrite -Linux -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"
Mengaktifkan enkripsi pada disk data yang baru ditambahkan
Anda dapat menambahkan disk data baru menggunakan az vm disk attach, atau melalui portal Azure. Sebelum dapat mengenkripsi, Anda perlu memasang disk data yang baru terpasang terlebih dahulu. Anda harus meminta enkripsi drive data karena drive tidak akan dapat digunakan saat enkripsi sedang berlangsung.
Mengaktifkan enkripsi pada disk yang baru ditambahkan dengan Azure CLI
Jika VM sebelumnya dienkripsi dengan "Semua", maka parameter --volume-type harus tetap Semua. Semua termasuk OS dan disk data. Jika VM sebelumnya dienkripsi dengan jenis volume "OS", maka parameter --volume-type harus diubah ke Semua sehingga OS dan disk data baru akan disertakan. Jika VM dienkripsi hanya dengan tipe volume "Data", maka VM dapat tetap menjadi "Data" seperti yang didemonstrasikan di bawah ini. Menambahkan dan melampirkan disk data baru ke VM tidak cukup persiapan untuk enkripsi. Disk yang baru dilampirkan juga harus diformat dan dipasang dengan benar di dalam VM sebelum mengaktifkan enkripsi. Di Linux, disk harus dipasang di /etc/fstab dengan nama perangkat blok persisten.
Berbeda dengan sintaks PowerShell, CLI tidak mengharuskan pengguna untuk memberikan versi urutan unik saat mengaktifkan enkripsi. CLI secara otomatis menghasilkan dan menggunakan nilai versi urutannya sendiri yang unik.
Mengenkripsi volume data dari VM yang sedang berjalan:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
Mengenkripsi volume data VM yang sedang berjalan menggunakan KEK:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "Data"
Mengaktifkan enkripsi pada disk yang baru ditambahkan dengan Azure PowerShell
Saat menggunakan PowerShell untuk mengenkripsi disk baru untuk Linux, versi urutan baru perlu ditentukan. Versi urutannya harus unik. Script di bawah ini menghasilkan GUID untuk versi urutan. Ambil snapshot dan/atau cadangkan VM dengan Azure Backup sebelum disk dienkripsi. Parameter -skipVmBackup sudah ditentukan dalam skrip PowerShell untuk mengenkripsi disk data yang baru ditambahkan.
Enkripsi volume data dari VM yang sedang berjalan: Skrip di bawah menginisialisasi variabel Anda dan menjalankan cmdlet Set-AzVMDiskEncryptionExtension. Grup sumber daya, VM, dan key vault seharusnya sudah dibuat sebagai prasyarat. Ganti MyVirtualMachineResourceGroup, MySecureVM, dan MySecureVault dengan nilai Anda. Nilai yang dapat diterima untuk parameter -VolumeType adalah Semua, OS, dan Data. Jika VM sebelumnya dienkripsi dengan jenis volume "OS" atau "Semua", maka parameter -VolumeType harus diubah ke "Semua" sehingga OS dan disk data baru akan disertakan.
$KVRGname = 'MyKeyVaultResourceGroup'; $VMRGName = 'MyVirtualMachineResourceGroup'; $vmName = 'MySecureVM'; $KeyVaultName = 'MySecureVault'; $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname; $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri; $KeyVaultResourceId = $KeyVault.ResourceId; $sequenceVersion = [Guid]::NewGuid(); Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion -skipVmBackup;
Mengenkripsi volume data VM yang sedang berjalan menggunakan KEK: Nilai yang dapat diterima untuk parameter -VolumeType adalah Semua, OS, dan Data. Jika VM sebelumnya dienkripsi dengan jenis volume "OS" atau "Semua", maka parameter -VolumeType harus diubah ke Semua sehingga OS dan disk data baru akan disertakan.
$KVRGname = 'MyKeyVaultResourceGroup'; $VMRGName = 'MyVirtualMachineResourceGroup'; $vmName = 'MyExtraSecureVM'; $KeyVaultName = 'MySecureVault'; $keyEncryptionKeyName = 'MyKeyEncryptionKey'; $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname; $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri; $KeyVaultResourceId = $KeyVault.ResourceId; $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid; $sequenceVersion = [Guid]::NewGuid(); Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion -skipVmBackup;
Catatan
Sintaks untuk nilai parameter disk-encryption-keyvault adalah string pengidentifikasi lengkap: /subscriptions/[subscription-id-guid]/resourceGroups/[KVresource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name] Sintaks untuk nilai parameter key-encryption-key adalah URI lengkap ke KEK seperti di: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
Menonaktifkan enkripsi dan menghapus ekstensi enkripsi
Anda dapat menonaktifkan ekstensi enkripsi disk Azure, dan Anda dapat menghapus ekstensi enkripsi disk Azure. Ini adalah dua operasi yang berbeda.
Untuk menghapus Azure Disk Encryption, sebaiknya nonaktifkan enkripsi terlebih dahulu, lalu hapus ekstensi. Jika Anda menghapus ekstensi enkripsi tanpa menonaktifkannya, disk akan tetap dienkripsi. Jika Anda menonaktifkan enkripsi setelah menghapus ekstensi, ekstensi akan dipasang ulang (untuk melakukan operasi dekripsi) dan perlu dihapus lagi untuk kedua kalinya.
Peringatan
Anda tidak dapat menonaktifkan enkripsi jika disk OS dienkripsi. (Disk OS dienkripsi ketika operasi enkripsi asli menentukan volumeType=ALL atau volumeType=OS.)
Menonaktifkan enkripsi hanya berhasil ketika disk data dienkripsi tetapi disk OS tidak.
Nonaktifkan enkripsi
Anda dapat menonaktifkan enkripsi menggunakan Azure PowerShell, Azure CLI, atau dengan templat Azure Resource Manager. Menonaktifkan enkripsi tidak menghapus ekstensi (lihat Menghapus ekstensi enkripsi).
Menonaktifkan enkripsi disk dengan Microsoft Azure PowerShell: Untuk menonaktifkan enkripsi, gunakan cmdlet Disable-AzVMDiskEncryption.
Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
Menonaktifkan enkripsi dengan Azure CLI: Untuk menonaktifkan enkripsi, gunakan perintah az vm encryption disable.
az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "data"
Menonaktifkan enkripsi dengan templat Resource Manager:
- Klik Sebarkan ke Azure dari templat Menonaktifkan enkripsi disk pada mesin virtual Linux yang berjalan.
- Pilih langganan, grup sumber daya, lokasi, VM, jenis volume, persyaratan hukum, dan perjanjian.
- Klik Beli untuk menonaktifkan enkripsi disk pada komputer virtual Linux yang berjalan.
Menghapus ekstensi enkripsi
Jika Anda ingin menonaktifkan enkripsi disk dan menghapus ekstensi enkripsi, Anda harus menonaktifkan enkripsi sebelum menghapus ekstensi; lihat menonaktifkan enkripsi.
Anda dapat menghapus ekstensi enkripsi menggunakan Azure PowerShell atau Azure CLI.
Nonaktifkan enkripsi disk dengan Azure PowerShell: Untuk menghapus enkripsi, gunakan cmdlet Remove-AzVMDiskEncryptionExtension.
Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
Menonaktifkan enkripsi dengan CLI Azure: Untuk menghapus enkripsi, gunakan perintah az vm extension delete.
az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForLinux"
Skenario yang tidak didukung
Azure Disk Encryption tidak berfungsi untuk skenario, fitur, dan teknologi Linux berikut:
- Mengenkripsi VM tingkat dasar atau VM yang dibuat melalui metode pembuatan VM klasik.
- Menonaktifkan enkripsi pada drive OS atau drive data VM Linux saat drive OS dienkripsi.
- Mengenkripsi drive OS untuk Virtual Machine Scale Sets Linux.
- Mengenkripsi gambar kustom di Linux VMs.
- Integrasi dengan sistem manajemen kunci lokal.
- Azure Files (sistem file bersama).
- Sistem File Jaringan (NFS).
- Volume dinamis.
- Disk OS sementara.
- Enkripsi sistem file bersama/terdistribusi seperti (tetapi tidak terbatas pada): DFS, GFS, DRDB, dan CephFS.
- Memindahkan VM terenkripsi ke langganan atau wilayah lain.
- Membuat gambar atau snapshot VM terenkripsi dan menggunakannya untuk menyebarkan VM tambahan.
- Kernel Crash Dump (kdump).
- Oracle ACFS (Sistem File Klaster ASM).
- Disk NVMe seperti yang ada pada ukuran VM komputasi performa tinggi atau ukuran VM yang dioptimalkan Penyimpanan.
- VM dengan "nested mount points"; artinya, beberapa titik kait dalam satu jalur (seperti "/1stmountpoint/data/2stmountpoint").
- VM dengan drive data yang dipasang di atas folder OS.
- VM di mana volume logika root (OS disk) telah diperluas menggunakan disk data.
- VM seri M dengan disk Write Accelerator.
- Menerapkan ADE ke VM yang memiliki disk yang dienkripsi dengan Enkripsi di Host atau enkripsi sisi server dengan kunci yang dikelola pelanggan (SSE + CMK). Menerapkan SSE + CMK ke disk data atau menambahkan disk data dengan SSE + CMK yang dikonfigurasi ke VM yang dienkripsi dengan ADE juga merupakan skenario yang tidak didukung.
- Memigrasikan VM yang dienkripsi dengan ADE, atau pernah dienkripsi dengan ADE, ke Enkripsi di Host atau enkripsi sisi server dengan kunci yang dikelola pelanggan.
- Mengenkripsi VM dalam kluster failover.
- Enkripsi di disk ultra Azure.