What it is
A managed-disk snapshot left in place long after the reason for taking it has passed. A snapshot is a full point-in-time copy of a disk, billed on the storage it occupies. It has no expiry and no lifecycle policy of its own, so it keeps charging until a human removes it.
Why it happens
Snapshots are cheap and easy to create: before a risky change, ahead of a migration, as a one-off backup, or automatically by a script. None of that comes with cleanup. Azure never expires a snapshot for you, and there is no built-in retention policy on the snapshot itself.
So they accumulate. A snapshot from a migration two years ago looks identical to one taken last night, and nobody is sure which are still needed. Individually the monthly charge is small enough to ignore, which is exactly why the pile grows.
What it costs / blast radius
Standard HDD snapshot storage is roughly $0.05/GB per month at list price, and snapshots bill on the used size of the source data. (List price; tier and region vary.) One forgotten 512 GB snapshot is around $25/month, or $300/year, for a copy of a disk that may no longer exist. The real cost is the accumulation: years of pre-change and pre-migration snapshots, each too small to notice on its own, adding up across every subscription.
See it
// sizeGB below is the PROVISIONED disk size; snapshots actually bill on
// used/incremental size, so treat it as an upper bound, not the exact charge.
Resources
| where type =~ 'microsoft.compute/snapshots'
| extend created = todatetime(properties.timeCreated)
| where created < ago(30d)
| project name, resourceGroup, subscriptionId, location,
sizeGB = properties.diskSizeBytes / 1024 / 1024 / 1024,
ageDays = datetime_diff('day', now(), created)
| order by ageDays desc# Snapshots are independent of their source disk — deleting one is safe
az snapshot delete --name disk-prod-04-snap-2024 --resource-group rg-prodHow StratoLens helps
StratoLens inventories every snapshot across every subscription, surfaces the stale ones with their age and monthly storage cost, and keeps the history so you can see when each was taken. A retention question that usually ends in a shrug gets an answer, and the check runs continuously inside your own tenant instead of depending on someone remembering to look.