Check ID:
Provider: Azure
Service:
Severity: MEDIUM
Categories:
Resource type:
vm_scaleset_not_emptyProvider: Azure
Service:
vmSeverity: MEDIUM
Categories:
resilienceResource type:
microsoft.compute/virtualmachinescalesetsWhat this check verifies
Azure VM scale sets with0 VM instances are identified as empty.
Risk
Orphaned scale sets degrade governance and can hide stale autoscale or permissive identities. If reactivated, they may launch VMs from outdated images, exposing vulnerable services and enabling lateral movement, impacting confidentiality and availability. They also create inventory sprawl and unnecessary spend.Recommendation
Decommission empty scale sets or consolidate capacity. Apply resource lifecycle and governance policies to prevent drift; require tagging and owners, review regularly. Manage capacity through IaC, enforce least privilege on scale set identities, and use change control to avoid unintended autoscale activations. If retained temporarily, document purpose and review date.Remediation
- CLI
- Terraform
- Dashboard steps
az vmss scale —resource-group <resource-group> —name <scale-set-name> —new-capacity 1
References
- https://learn.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/azure/VirtualMachines/empty-vm-scale-sets.html
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = vm_scaleset_not_empty. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks