← All posts

The strictest guardrail is often the weakest one

5 min read
architecturegovernancesecurity

There’s a failure I keep running into in security reviews, cloud governance, FinOps, and platform teams. It shows up in all of them and belongs to none, so I’ve started calling it the routed-around control.

It goes like this. A control gets tightened until it blocks legitimate work, and the organisation quietly goes around it. Shadow accounts appear. A pipeline skips the gate. The break-glass credential becomes the normal credential. The cookie banner gets clicked through without anyone reading it.

The control is still in the architecture diagram. It’s just no longer in the path.

Work flows through a hard-deny control to production, while a dashed shadow path goes around it. its dashboard 100% compliant Work Control set to hard-deny Production some requests compliant only the shadow path: everything that couldn’t get through
The control is still there. It just isn’t where the work goes anymore.

Why this one is sneaky

The surprising part is that the strictest setting often makes the weakest control. A guardrail isn’t strong because of how much it blocks. It’s strong because of how much it blocks while people still go through it.

The mechanism is boringly predictable:

  1. A real risk is found, and a control goes into the path.
  2. The control is set to its safest value: hard-deny, mandatory review, maximum verification. You can defend that setting on every dimension except the one that decides the outcome.
  3. Legitimate work hits it. A GPU job, a new region, an urgent fix, an admin task at 2am.
  4. The exception path is missing, slow, or undefined. This is the step everything turns on.
  5. The work happens anyway, outside the control.
  6. The control now reports success.

That last step is what makes it dangerous. The control only sees compliant traffic, because the non-compliant traffic stopped coming through it. Its metrics improve as its coverage collapses. You can’t detect the problem from the control’s own telemetry, because the problem is everything the control no longer sees.

As strictness rises, blocking rises but the share of work passing through falls; real protection peaks at a workable middle setting. routed-around zone blocks what passes through it share of work still passing through real protection the workable setting stricter →
Illustrative, not measured. The workable setting is something you find empirically, not by policy.

It’s everywhere once you see it

  • Policy-as-code. Over-strict hard-mandatory rules with no exception path either stop delivery or push teams into shadow infrastructure.
  • Privileged access. Just-in-time elevation has to be fast. A rule of thumb I’ve seen cited is roughly thirty seconds. Any slower and admins keep a standing credential somewhere.
  • CI/CD security gates. Noisy gates with lots of false positives teach everyone that the gate is wrong, and then it gets disabled.
  • Cost guardrails. A tight allow-list on instance types blocks the one legitimate GPU job, and that job moves to an account nobody is watching.
  • Central review boards. If every change goes through one queue, teams build around the queue.
  • Consent banners. Nobody “bypasses” a cookie banner in the infrastructure sense. They click through it, which has the same effect: the control is present, unusable, and not actually collecting consent.

How to tell if it’s happening

  • Measure the exception path, not just the block rate. Is there one? How long does it take? If a waiver takes three days, the bypass is your exception path.
  • Look outside the gate. Count resources created outside IaC, accounts outside the vending process, repos without the pipeline, admin sessions outside PAM. Coverage is something you measure across the whole estate, not a number your tool reports.
  • Check break-glass usage. Routine break-glass is the bypass, made official.
  • Watch for the incident ratchet. Controls tighten after incidents and almost never loosen. Ask whether the current setting was ever tested for workability, or only for safety.

What to do instead

Start advisory, then enforce. Run in warn mode first and see what legitimate work actually looks like before you block it.

Build the exception path before the block. Give it an owner, an SLA, and an audit trail. With those in place, hard-deny is survivable.

Enable instead of gating. A central team that ships a self-service golden path gets adopted. The same team run as a queue gets bypassed. The control moves from the gate into the paved road.

Tune to risk, not to maximum. Maximum verification everywhere spends the whole friction budget on low-risk paths and leaves nothing for the high-risk ones.

And don’t overcorrect

This is easy to misuse. “People will route around it” is a testable claim, not a licence to weaken any control someone finds annoying. Measure the bypass; don’t assume it.

Some controls also really are absolute: regulatory prohibitions, data residency, segregation of duties. For those, the answer isn’t a softer setting. It’s making the compliant path fast enough that nobody needs a way around it.

Guardrails without self-service are friction. Self-service without guardrails is chaos. The goal is a setting people will actually use.