Skip to content

How to Audit Azure Blobs by Access Tier and Metadata

· 3 min read · Updated

Audit Azure Blob Storage by access tier and metadata

Use Blob Inventory for account-wide questions

The Azure portal is fine when you need to inspect one container. It is a poor way to answer questions about the whole account, such as:

  • How much data is in Hot, Cool, Cold, and Archive?
  • Which old blobs are still on Hot?
  • Which objects have a legal hold or encryption status?
  • How large are the current versions, snapshots, and previous versions?

Azure's built-in feature for that job is Blob Inventory. It writes a scheduled CSV or Apache Parquet report into a container in the storage account.[1]

What the report can contain

An inventory policy controls the fields and records in the report. Microsoft documents fields including:

  • Name and blob type
  • Creation and last-modified time
  • Last access time
  • Content length and content type
  • ETag and content MD5
  • Access tier and tier-change time
  • Lease status
  • Server-encryption status
  • Metadata

The policy can include current blobs, snapshots, versions, and deleted records. Filters can narrow the report by blob type, age, and path prefix.

Because Azure generates the report from a declared policy, it is more reliable than scraping rows from the portal.

The schedule is the main limitation

Blob Inventory runs daily or weekly, and you can't trigger a report on demand.

Create the destination container before enabling the policy, choose the fields you need, and wait for the scheduled report. Microsoft does not promise a fixed delivery hour, so don't build a process around it that needs the answer within minutes.

If you need to browse and act on files now, use the portal, CLI, SDK, or a file browser. Inventory suits repeatable audits and trend analysis.

Start with a small policy

An inventory policy can contain up to 100 rules. Begin with one: a report for current block blobs that includes only the fields your first question needs. CSV is easy to inspect. Parquet suits a large report that an analytics tool will process.

After the first output arrives:

  1. Confirm that the expected containers and prefixes appear.
  2. Check the tier values against a few known blobs.
  3. Compare the total content length with an independent account estimate.
  4. Add snapshots, versions, or deleted records only if the audit needs them.

Using inventory with Blober

Use Blob Inventory when you need a scheduled account report. Use Blober when you need to act now: browse selected containers, filter records, preview a transfer, change tiers, reorganize files, or move data between Azure and other providers.

The two work well in sequence. Let the inventory find a group of blobs, such as old blobs still on Hot, then select them in Blober and change their tier or move them. The reporting policy stays a report, and you don't have to build a transfer script on top of it.

Frequently asked questions

How often does Azure Blob Inventory run? Daily or weekly. Microsoft does not promise a fixed delivery hour, so it fits scheduled audits better than questions you need answered right now.

Can the inventory report show each blob's access tier? Yes. Access tier and tier-change time are fields a policy can include, alongside size, dates, ETag, lease status, encryption status, and metadata.

Should I export CSV or Parquet? CSV is easier to open and read. Parquet is the better choice for a large report that an analytics tool will process.

Does the report include snapshots and old versions? It can. A policy can include current blobs, snapshots, versions, and deleted records, and filters can narrow it by blob type, age, and path prefix.