Check ID: vm_desired_sku_size
Provider: Azure
Service: vm
Severity: MEDIUM
Resource type: microsoft.compute/virtualmachines

What this check verifies

Azure virtual machines are compared against an organization allowlist of VM size SKUs defined in desired_vm_sku_sizes. Instances using sizes outside this list are flagged as non-standard.

Risk

Unrestricted VM sizes enable over-provisioned or exotic SKUs, leading to:
  • Sudden cost spikes and quota exhaustion (availability)
  • Use of hardware lacking required security features (confidentiality/integrity)
  • Abuse by compromised accounts for cryptomining at scale

Recommendation

Adopt a least privilege, policy-enforced allowlist of VM size SKUs per workload tier and region.
  • Deny creation of non-approved sizes across scopes
  • Require exception reviews with time-bound overrides
  • Reassess the list regularly for cost, performance, and compliance
  • Monitor provisioning and cost anomalies for drift

Remediation

az vm resize —resource-group <RESOURCE_GROUP> —name <VM_NAME> —size <desired-sku-1>

References

Where this check fires

This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable by Check ID = vm_desired_sku_size. 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