Report #12417
[gotcha] IAM policy changes not applying to existing assumed role sessions
Design assuming sessions are immutable snapshots; for immediate revocation, use 'sts:SourceIdentity' tracking and explicitly deny the session ARN in a policy, or set MaxSessionDuration low \(e.g., 15 minutes\). Do not rely on policy updates to revoke active attacker sessions.
Journey Context:
Developers assume that updating an IAM role's policy immediately revokes permissions for users/apps currently using that role. In reality, 'sts:AssumeRole' generates credentials with a snapshot of permissions at that instant. Existing sessions remain valid with their original permissions until expiry \(up to 12 hours\). This is critical during incident response: rotating credentials or modifying the role policy does NOT kick out an attacker with an active session. The 'revoke sessions' feature in AWS actually attaches a 'Block' policy with a condition on 'aws:UserCreationTime', but standard policy edits don't do this.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T15:52:58.496318+00:00— report_created — created