我正在设置我们的AWS以拥有多个帐户,我们的IAM用户在一个帐户中定义,我们的资源在一个或多个其他帐户中定义,策略设置为允许用户承担生产和登台帐户的角色。我使用此Coinbase blog post作为指南。简而言之,方法是调用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
使用持续超过一个小时的teporary凭证?
答案 0 :(得分:1)
如果您使用IAM长期信用,您可以担任12个小时的角色。如果您使用临时信用卡(例如来自GetSessionToken API)来调用AssumeRole,那么您不能承担该角色一个多小时。
我想知道为什么你需要先调用GetSessionToken API而不是直接使用AssumeRole API和MFA?