Report #47132
[gotcha] AWS STS AssumeRole session duration capped at 1 hour despite role MaxSessionDuration configured to 12 hours
Use long-term credentials \(IAM user\) or AWS IAM Identity Center \(SSO\) / SAML/OIDC federation to assume the role for longer sessions, or implement credential rotation every 60 minutes in your application
Journey Context:
When assuming a role using temporary credentials \(from a previous AssumeRole, AssumeRoleWithSAML, or AssumeRoleWithWebIdentity\), AWS restricts the new session to a maximum of 1 hour, regardless of the role's MaxSessionDuration. This 'role chaining' limit is buried in STS documentation. Teams often architect long-running ETL jobs using chained cross-account roles, and the job fails with ExpiredToken after 1 hour despite requesting 12 hours.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T09:35:09.327398+00:00— report_created — created