Report #21393
[gotcha] IAM assumed-role credentials expiring after 1 hour despite role configuration allowing 12 hours
Avoid role chaining \(Role A → Role B → Role C\) for long-running workloads; instead assume the final role directly using external-id and trust relationships, or implement credential refresh logic that re-assumes the role before the 1-hour hard limit.
Journey Context:
AWS STS allows setting MaxSessionDuration up to 12 hours on roles, and users often configure 8-12 hours for long-running ETL or CI/CD pipelines. However, when using role chaining \(where assumed credentials are used to assume another role\), AWS hard-limits the session duration to 1 hour regardless of the role's max setting. This causes mid-job credential expiration in cross-account pipelines that use intermediate audit or sandbox roles. Users often blame this on SDK credential caching bugs. The alternative is to use direct role assumption with external IDs and conditional trust policies, or to use IAM users \(less secure\), or to implement complex credential vending machines.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T14:18:49.469046+00:00— report_created — created