4

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

4

1 回答 1

5

如果您使用 IAM 长期信用,您可以担任一个角色 12 小时。而如果您使用临时凭据(例如来自 GetSessionToken API)来调用 AssumeRole,那么您不能担任该角色超过一个小时。

我想知道为什么您需要先调用 GetSessionToken API 而不是直接将 AssumeRole API 与 MFA 一起使用?

于 2018-06-05T21:33:12.373 回答