Katabarwa Labs
← Blog

Keep Azure Policy exemptions from living forever (or expiring silently)

Azure governance · August 29, 2026 · 5 min read

An Azure Policy exemption is usually born as a favor: a team needs to ship, a policy blocks them, and someone grants a waiver "just for now." Then two things go wrong in opposite directions. Exemptions created with an expiry date lapse silently, and the moment they do, the policy starts enforcing again, which can break deployments that relied on the waiver. Exemptions created with no expiry never lapse at all and quietly become permanent holes in the very guardrails the policy was supposed to provide. Either way, nobody gets told.

Why Azure cannot tell you this out of the box

The DIY approach: enumerate exemptions on a schedule and classify them

The fix is an inventory job, not a policy change. Exemptions are ordinary ARM resources (Microsoft.Authorization/policyExemptions), so a scheduled job with nothing more than Reader access can do the whole thing:

The catch is ownership: this is one more script to write, schedule, permission, and keep running, and the day it quietly stops is the day an exemption quietly lapses.

A ready-made option: Policy Exemption Tracker

Our tool for this: Policy Exemption Tracker on the Azure Marketplace. It runs as a managed application inside your own subscription, so nothing leaves your tenant.

Policy Exemption Tracker is that pattern packaged. Every day at 08:00 UTC it lists every Azure Policy exemption and reports the lifecycle to your Teams channel as an Adaptive Card: expired (the policy is now enforcing again, so recent deployments may fail), expiring soon (within thresholds you set, 30 / 14 / 7 / 1 days by default), and no expiry set (permanent exemptions, which are latent security gaps). It is read-only: the app runs under a system-assigned managed identity that needs only the Reader role at subscription scope, and alerts go only to a Teams webhook you configure.

Key facts

Related reading: set an Entra ID account to expire (temporary access that actually ends).


Written by the team at Katabarwa Labs. We build small, single-purpose Azure tools that run entirely inside your own tenant. Questions: abaho@llmgraph.ai.