Empty S3 buckets

An empty bucket costs practically nothing — which is exactly why it is still there. The reason to remove it is security, not the invoice.

What this problem is

This is the one item on this list that does not enter as dollar savings, and we want to be explicit about it: S3 bills for data stored and for requests. A bucket with no objects has neither, so its cost is essentially zero. Promising savings here would be inflating a number, and we do not do that.

The reason to clean up is different, and more serious than fifty cents of invoice: bucket names are global and reusable. If anything still points at that bucket — a CNAME record, a URL in documentation, a reference in old code, a policy in another account — and you delete it, the name becomes free for anyone to claim. Whoever claims it then serves content at an address your organisation trusted. That is the classic subdomain takeover mechanism.

So an empty bucket is a hygiene item, and the right decision depends on what still points at it. Our report marks these findings as hygiene, at zero value, separated from the ones that return money — and the guard never suggests deleting a bucket that serves an active CloudFront distribution.

How we detect it

We list buckets with ListAllMyBuckets, resolve each one's region, and read the stored size CloudWatch publishes per bucket. We cross that with CloudFront's ListDistributions so we never propose removing a bucket backing an active distribution.

  • Empty S3 buckets

What it costs

An empty bucket costs approximately $0 a month: S3 bills per GB stored and per request, and there is neither. That is why this finding appears as hygiene, with no dollar value.

Public AWS list prices, us-east-1, subject to change. The figure in your report is computed against your resources in your regions.

How it appears in the report

9 empty S3 buckets hygiene · nothing recoverable $0.00/mo

An illustrative example, with invented resources and figures. In the report each finding carries the real resource, its region, and the fix command where a safe one exists.

Does your account have this?

The scan is read-only and shows you what it found before you pay for anything.

Run a free scan