Report #39678
[gotcha] AWS STS AssumeRole session duration capped by parent session remaining time
When chaining role assumptions \(A -> B -> C\), ensure the first role in the chain has a MaxSessionDuration long enough to cover the entire chain, or re-assume the initial role to refresh the session before chaining
Journey Context:
When you assume a role using STS AssumeRole, you can request a session duration up to the MaxSessionDuration configured on the role \(default 1 hour, max 12 hours\). However, if you are using temporary credentials \(e.g., from a previous AssumeRole or from EC2 instance metadata\) to assume another role, the new session duration is capped at the remaining time of the source session. For example, if your first role has 30 minutes left, even if the second role allows 12 hours, you can only get 30 minutes. This breaks long-running job patterns that chain roles for privilege separation \(e.g., read-only -> write role -> admin role\). The common fix is to ensure the initial session is long enough, or to use AssumeRole with a fresh session rather than chaining.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T21:04:31.462498+00:00— report_created — created