CAMPUX Cloud Bootcamp
Field notes · Governance
Tagging strategy

An Azure tagging strategy that actually gets used

By Victor Thomson16 July 20266 min read

Tags are little name-value stickers you put on resources — and they are the difference between a cloud bill that says "$40,000" and one that says which team, project, and environment spent it. But they only work if they exist and stay consistent.

Six months into a busy Azure estate, someone asks the inevitable question: "which team is spending all this?" If your resources are tagged, you group the cost report by team and answer in ten seconds. If they are not, you are guessing from resource names. Tags are how you avoid that. Microsoft's definition is simple: they are "metadata elements that you apply to your Azure resources... key-value pairs that help you identify resources based on settings that are relevant to your organization," like Environment = Production or cost-center = 4021.

What to tag for

A good tagging scheme answers the questions you will actually be asked. The common, high-value dimensions:

Their biggest payoff is cost management: tags flow into Cost Analysis, so you can group and filter spend by team, environment, or project without any extra tooling. As covered in the note on cutting Azure costs, spending drops when people can see the bill they are responsible for — and tags are what make that visibility possible.

The gotcha that breaks naive tagging: no inheritance

People assume a resource picks up its resource group's tags. It does not. Microsoft is explicit: "Resources don't inherit the tags you apply to a resource group or a subscription." Tag a resource group team = payments and the VMs inside it are still untagged. That single surprise is why hand-tagging always drifts — someone forgets, and the cost report has a big "untagged" bucket. The fix is not discipline; it is enforcement.

Enforce with policy, don't rely on memory

Because tags are not inherited and humans forget, a tagging strategy that depends on everyone remembering will rot. The answer is Azure Policy. You can:

That is the key move (see Azure Policy effects): enforcement that either blocks the untagged resource or quietly fixes it, rather than a wiki page nobody reads. Tagging without policy is a good intention; tagging with policy is a system.

A tag nobody enforces is a tag half your resources will be missing. Policy is what turns a convention into a guarantee.

A few practical rules

The takeaway

Tagging is unglamorous and it is the difference between an estate you can reason about and one you cannot. Decide a short, consistent set of tags for cost, ownership, and environment; enforce them with Azure Policy so they actually exist and stay uniform; and remember they do not inherit, so the resource — not just its group — must carry them. Do that and "which team spent this, on which environment?" becomes a filter, not a forensic investigation. "A small tag taxonomy enforced by policy — deny untagged, modify to inherit cost-center — feeding Cost Analysis" is the answer of someone who has run a governed cloud, not just a tidy one.

Further reading — the Microsoft docs
Drilled in Class 8 — RBAC & Azure Policy. Back to all field notes →