Description:
Migrate blob-based VHDs to Managed Disks on Virtual Machines to exploit the default
features of this configuration. The features include:
1. Default Disk Encryption
2. Resilience, as Microsoft will managed the disk storage and move around if underlying hardware goes faulty
3. Reduction of costs over storage accounts
Rationale:
Managed disks are by default encrypted on the underlying hardware, so no additional encryption is required for basic protection. It is available if additional encryption is required. Managed disks are by design more resilient that storage accounts.
For ARM-deployed Virtual Machines, Azure Adviser will at some point recommend moving VHDs to managed disks both from a security and cost management perspective.
Impact:
There are additional costs for managed disks based off of disk space allocated. When converting to managed disks, VMs will be powered off and back on.
Audit:
From Azure Portal
1. Using the search feature, go to Virtual Machines
2. Click the Manage view dropdown, then select Edit columns
3. Add Uses managed disks to the selected columns
4. Select Save
5. Ensure all virtual machines listed are using managed disks
From PowerShell
Get-AzVM | ForEach-Object {"Name: " + $_.Name;"ManagedDisk Id: " + $_.StorageProfile.OsDisk.ManagedDisk.Id;""}
Example output:
Name: vm1
ManagedDisk Id: /disk1/id
Name: vm2
ManagedDisk Id: /disk2/id
If the 'ManagedDisk Id' field is empty the os disk for that vm is not managed.
Remediation:
From Azure Portal
1. Using the search feature, go to Virtual Machines
2. Select the virtual machine you would like to convert
3. Select Disks in the menu for the VM
4. At the top select Migrate to managed disks
5. You may follow the prompts to convert the disk and finish by selecting Migrate to start the process
NOTE VMs will be stopped and restarted after migration is complete.
From PowerShell
Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
ConvertTo-AzVMManagedDisk -ResourceGroupName $rgName -VMName $vmName
Start-AzVM -ResourceGroupName $rgName -Name $vmName
Default Value:
Managed disks or are an option upon the creation of VMs.
References:
1. https://docs.microsoft.com/en-us/azure/virtual-machines/windows/convertunmanaged-to-managed-disks
3. https://docs.microsoft.com/en-us/azure/virtual-machines/faq-for-disks
4. https://azure.microsoft.com/en-us/pricing/details/managed-disks/