Build1 distinct publisher3 min readPublished
The loop reads Bedrock invocation logs through Athena, prices them at published rates, and denies Claude Opus at 80 percent of an engineer's daily budget. It transfers only if every model call carries a federated user identity.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
The load-bearing detail is that IAM evaluates the policy on every call, so the engineer's SSO session credentials stay valid and the next `bedrock:InvokeModel` simply returns a deny [10]. Nothing has to be restarted and no token has to be refreshed [13]. A spend control that required re-authentication would be a spend control engineers route around, and the whole design rests on that property.
Then the arithmetic on the loop. The handler is on a 15-minute EventBridge schedule [7], which is 96 evaluations a day [16]. Between two evaluations, nothing in this architecture limits spend. The tier band is 20 percentage points of the daily budget wide, because Opus is denied at 80 percent and Sonnet at 100 [11][17]. So the smallest unit of overshoot is one interval at an engineer's peak burn rate, and if 15 minutes of Sonnet clears a fifth of the daily budget, the Opus denial never functions as an early brake. The AWS post says restrictions take effect within minutes [13], which is true of the enforcement action. The decision behind it can be a quarter of an hour behind the spend, plus whatever latency Bedrock adds delivering invocation logs to S3 [5].
Two things have to be true for the dollar figure to mean what you want it to mean. First, the Athena view computes per-user daily spend by multiplying logged token counts against published model rates [6]. That is a list-price reconstruction from logs, and it will diverge for anyone whose Bedrock pricing is not the published rate. Second, the customer managed policies target specific users through a `saml:sub` condition key [9]. Bedrock traffic arriving under anything that is not a federated user identity has no `saml:sub` for the condition to match, so a shared application role or a CI role sits outside the budget while still landing on the bill. Given the premise in the post, that one engineer in an agentic loop can burn more tokens in a few hours than a team burns in a week [15], the unattributed lane is where I would look first.
The Haiku carve-out is the good engineering here. Opus and Sonnet get denied at their thresholds, Haiku never does, and the engineer keeps a low-cost model to work with [11][12]. The model degrades, but the capability stays available. The one-time Slack DM per tier [8] means the engineer finds out why their agent got worse from a message rather than from a stack trace.
The object to watch in operations is the CMP itself. It hangs off the IAM permission set [10], and the Lambda holds `iam:CreatePolicyVersion` against it [9]. That makes a malformed policy version an organisation-wide deny, propagating with the same speed and the same absence of re-authentication that makes the intended case work. If you build this, the exceptions table in DynamoDB [7] and the documented time-boxed exception process [14] serve as the release valve you will need the first time the measurement is wrong, not as paperwork.
Ranked by verification strength, evidence, and original report placement.
Jamf is trusted by more than 76,000 organizations to manage and secure Apple devices at scale.
Jamf's solution tracks each engineer's daily Amazon Bedrock spending, then applies tiered model restrictions as they approach their budget.
The architecture is built from IAM Customer Managed Policies, an Amazon Athena-based cost view, and a serverless AWS Lambda enforcement loop.
When an engineer calls bedrock:InvokeModel through their AWS IAM Identity Center SSO session, Amazon Bedrock logs invocations, including model ID, input and output token counts, and user identity, to a configured Amazon S3 bucket.
An Amazon Athena view named bedrock_cost_today reads those logs and computes per-user daily spend by multiplying token counts against published model rates; Athena queries the raw logs in place, avoiding a separate data pipeline.
An AWS Lambda enforcement handler runs every 15 minutes on an Amazon EventBridge schedule, reads the current day's spend from the Athena view, and cross-references an Amazon DynamoDB exceptions table holding custom, time-boxed limits granted to individual engineers.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · September 1, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Query-aware compression: AWS bets a second model call is cheaper than a fat RAG prompt1 distinct publisher
build
Four agents, five stages, one manifest row: AWS's migration pipeline is a handoff problem1 distinct publisher
build
S3 to Lambda is async and at-least-once: the 3% that vanished after eight quiet months1 distinct publisher
build
Multi-protocol storage deletes the sync job, and leaves the trigger problem behind1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Mechanically precise, single-sourced
The technical spine is specific enough to argue with — a named Athena view, the exact IAM call that rewrites the policy, the condition key that scopes it to one person, the two thresholds — and sample code is published, which is more than most vendor write-ups risk. But it is one post, co-authored with the customer it praises, and the softer claims lean on nobody: 76,000 organizations is Jamf's own line, and 'productivity climbed' is the whole of the outcome reporting.
One shop, one repo
A single named company running it in production, plus reference code anyone can clone. That is a real deployment and more than a demo, but there is no second adopter, no indication of how many engineers are governed, and no dollar amount for what the caps changed. Adoption of the pattern by others is, at this point, aspiration.
'Real-time' is a quarter-hour poll
The headline promise is real-time enforcement; the mechanism is a scheduled job that wakes 96 times a day and reads logs that arrive on their own timetable. Against Jamf's own worry — an agentic loop burning a week of tokens in an afternoon — that gap matters, and the post never bounds the overshoot. 'Production-tested' is doing similar work without a single number behind it. The overstatement is in the adjectives, not the architecture, which is why this reads as a lean rather than a stretch.
Provider publishes, customer stars
The cloud vendor whose consumption is being capped is also the one telling the story, and the story's conclusion is that governance makes it safe to widen AI access — which is to say, to grow usage. Jamf gets an engineering-credibility showcase in return. None of that makes the architecture wrong; it does mean the failure modes are the parts left out, and they are.
Trustworthy on wiring, thin on results
Take the how-it-works at close to face value: it is too specific to fake, it matches how IAM permission sets and Customer Managed Policies actually behave, and the code is out there. Treat the results with reserve — nothing about savings, engineer experience, or coverage of non-federated access paths has been established, and there is no second account to check any of it against.