AWS 假设角色的凭证持续时间超过一个小时

Dav*_*Ham 6 amazon-web-services amazon-iam aws-sts

我正在将 AWS 设置为拥有多个账户,我们的 IAM 用户在一个账户中定义,我们的资源在一个或多个其他账户中定义,并设置策略以允许用户在生产和临时账户中担任角色。我使用这篇Coinbase 博客文章作为指南。简而言之,方法是调用aws sts get-session-token以获取临时凭据(如果使用 MFA,则必须执行此操作),然后使用这些凭据来调用assume-role所需的角色。

但是,assume-role使用临时凭据的持续时间似乎不能超过一小时。当我运行这个时:

aws sts assume-role --role-arn arn:aws:iam::<REDACTED>:role/power-user --role-session-name my_session --duration <DURATION> 如果我使用的持续时间超过一小时,则会收到此错误: An error occurred (ValidationError) when calling the AssumeRole operation: The requested DurationSeconds exceeds the 1 hour session limit for roles assumed by role chaining.

如果我的开发团队必须每小时输入一次 MFA 代币,这对我的开发团队来说将是一个困难。有没有办法获得assume-role持续一个多小时的临时凭证?

小智 7

如果您使用 IAM 长期凭证,您可以担任角色 12 小时。然而,如果您使用临时凭证(例如来自 GetSessionToken API)来调用 AssumeRole,则您承担该角色的时间不能超过一个小时。

我想知道为什么您需要先调用 GetSessionToken API,而不是直接通过 MFA 使用 AssumeRole API?