Control: Virtual machines and virtual machine scale sets should have encryption at host enabled
Description
Use encryption at host to get end-to-end encryption for your virtual machine and virtual machine scale set data. Encryption at host enables encryption at rest for your temporary disk and OS/data disk caches. Temporary and ephemeral OS disks are encrypted with platform-managed keys when encryption at host is enabled. OS/data disk caches are encrypted at rest with either customer-managed or platform-managed key, depending on the encryption type selected on the disk.
Usage
Run the control in your terminal:
powerpipe control run terraform_azure_compliance.control.compute_vm_and_scale_set_encryption_at_host_enabledSnapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run terraform_azure_compliance.control.compute_vm_and_scale_set_encryption_at_host_enabled --shareSQL
This control uses a named query:
(select  address as resource,  case    when (attributes_std -> 'encryption_at_host_enabled') is null then 'alarm'    when (attributes_std -> 'encryption_at_host_enabled')::boolean then 'ok'    else 'alarm'  end status,  split_part(address, '.', 2) || case    when (attributes_std -> 'encryption_at_host_enabled') is null then ' ''encryption_at_host_enabled'' is not defined'    when (attributes_std -> 'encryption_at_host_enabled')::boolean then ' encryption at host enabled'    else ' encryption at host disabled'  end || '.' reason    , path || ':' || start_linefrom  terraform_resourcewhere  type = 'azurerm_linux_virtual_machine_scale_set' or  type = 'azurerm_windows_virtual_machine_scale_set')union(select  address as resource,  case    when (attributes_std -> 'encryption_at_host_enabled') is null then 'alarm'    when (attributes_std -> 'encryption_at_host_enabled')::boolean then 'ok'    else 'alarm'  end status,  split_part(address, '.', 2) || case    when (attributes_std -> 'encryption_at_host_enabled') is null then ' ''encryption_at_host_enabled'' is not defined'    when (attributes_std -> 'encryption_at_host_enabled')::boolean then ' encryption at host enabled'    else ' encryption at host disabled'  end || '.' reason    , path || ':' || start_linefrom  terraform_resourcewhere  type = 'azurerm_windows_virtual_machine' or  type = 'azurerm_linux_virtual_machine')