VM Scale Set should enable automatic OS upgrades
Medium
Azure
General
virtualmachinescalesets-vmss
Applies to
Microsoft.Compute/virtualMachineScaleSets
What CGPulse checks
A resource passes this rule when enableAutomaticOSUpgrade must equal true. Anything else is reported as a finding with the evaluated property value attached as evidence.
How to fix it
Enable automatic OS upgrades to receive critical security patches. In Azure Portal: VMSS > Upgrade policy > enable Automatic OS upgrades. See: https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-automatic-upgrade
CLI
az vmss update --ids "{id}" --set upgradePolicy.automaticOSUpgradePolicy.enableAutomaticOSUpgrade=trueTerraform
resource "azurerm_linux_virtual_machine_scale_set" "{name}" {
name = "{name}"
resource_group_name = "{rg}"
location = var.location
sku = "Standard_DS1_v2"
instances = 2
admin_username = "adminuser"
upgrade_mode = "Automatic"
automatic_os_upgrade_policy {
enable_automatic_os_upgrade = true
disable_automatic_rollback = false
}
rolling_upgrade_policy {
max_batch_instance_percent = 20
max_unhealthy_instance_percent = 20
max_unhealthy_upgraded_instance_percent = 5
pause_time_between_batches = "PT0S"
}
source_image_reference {
publisher = "Canonical"
offer = "0001-com-ubuntu-server-jammy"
sku = "22_04-lts"
version = "latest"
}
os_disk {
caching = "ReadWrite"
storage_account_type = "Standard_LRS"
}
network_interface {
name = "{name}-nic"
primary = true
ip_configuration {
name = "internal"
primary = true
subnet_id = azurerm_subnet.{name}.id
}
}
}
Compliance frameworks
Is your environment compliant with this rule?
CGPulse checks it — and 621 others — against your Azure and AWS accounts with read-only access.
Related Azure rules
- Action Group should be enabled
- Activity Log Alert should be enabled
- AKS cluster logs should be sent to Log Analytics
- AKS cluster must enable RBAC
- AKS cluster must enable RBAC
- AKS cluster should be a private cluster
- AKS cluster should disable local accounts
- AKS cluster should enable Azure RBAC for Kubernetes