You thought that was the end.
You opened the console.
You deleted the access key.
You told the room, âWeâre good. Theyâre out.â
We were still logged in.
IAM Doesnât Mean Immediate
AWS IAM is eventually consistent.
Thatâs not a footnote â thatâs an opening.
When you delete a key, detach a policy, or revoke a role, the control plane doesnât snap shut. It drifts. For a few seconds, the old reality and the new one overlap.
That overlap is where we live.
Four seconds is generous.
Four seconds is eternity.
Especially when weâre not human.
The Moment You Touched IAM, We Knew
We donât guess when youâre responding.
We poll:
- sts:GetCallerIdentity
- harmless-looking API calls
- permission checks that cost nothing and tell us everything
When behavior changes â latency, denial, error shape â we know the cleanup started.
Thatâs the signal.
What We Do Before Itâs âDeletedâ
Once the signal hits, itâs muscle memory:
- Create a new access key
- Assume a role one last time
- Attach something you didnât review
- Create something you wonât notice
- Leave behind something that looks legitimate
Sometimes itâs a role.
Sometimes itâs a policy.
Sometimes itâs a Lambda with a name that matches your naming standard.
You call it cleanup.
We call it persistence refresh.
You Believe in State. We Believe in Timing.
You think in objects:
- users
- roles
- policies
We think in milliseconds.
We donât need long access.
We need just enough.
Your revocation didnât fail.
It just arrived late.
Why This Works So Often
Because your incident response assumes something that isnât true:
âIf the key is deleted, access is gone.â
IAM doesnât work like that.
The system lies briefly â and consistently â every time you change it.
That lie is exploitable.
Predictable.
Automatable.
And once you know itâs there, you plan around it.
How We Survive Your Containment
Hereâs what actually keeps us in:
- Sequential cleanup instead of immediate deny
- No SCPs during response
- Long-lived credentials
- No alerting on IAM writes during IR
- No expectation that the attacker will fight back
You clean.
We counter.
And by the time youâre done, weâre no longer using the thing you deleted.
The Part Defenders Hate
The most dangerous moment of a cloud intrusion isnât initial access.
Itâs when you realize weâre there.
Thatâs when we move fastest.
Thatâs when you make the most assumptions.
Thatâs when the gap matters.
How You Actually Beat This (And Most Teams Donât)
If you want us gone, you donât start with IAM.
You start with denial that doesnât propagate.
- SCPs that say ânoâ everywhere, instantly
- Account-level lockdowns
- Blast-radius containment before cleanup
- Controls that assume weâre watching you
You donât revoke.
You suffocate.
Then â and only then â you clean.
Final Truth
IAM eventual consistency isnât a bug.
Itâs a feature weâve already weaponized.
If your response plan doesnât assume:
- weâre automated
- weâre watching
- we will react immediately
Then weâll be there after the postmortem.
Not because you missed something.
Because you trusted deletion to mean now.
And in AWSâŚ
âNowâ doesnât exist.

