我正在将我们的 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
使用持续一个多小时的临时凭证?