我想允许EC2实例承担来自其他帐户的角色。 EC2附加了一个角色,允许它从另一个名为myAdmin的帐户中承担任何角色。如果其他帐户上的myAdmin角色将我的帐号列为可信实体,那么我可以成功承担该角色。
但是,其他帐户上的myAdmin角色也要求任何人使用MFA对该角色进行身份验证,因为该角色为该帐户提供了管理员访问权限。此情况会导致假定角色操作失败。
我假设它失败了,因为显然EC2实例没有使用MFA进行身份验证(实例配置文件只是在实例化时附加到它)。我尝试使用以下python(boto)代码传递根帐户的MFA序列号和令牌,但没有运气。
sts_conn = boto.sts.STSConnection()
role_creds = sts_conn.assume_role(role_arn='arn:aws:iam::OTHER_ACCT_NUM:role/myAdmin',
role_session_name='myAdminSession',
mfa_serial_number='arn:aws:iam::MY_ACCT_NUM:mfa/root-account-mfa-device',
mfa_token=TOKEN)
我收到以下错误:
boto.exception.BotoServerError: BotoServerError: 403 Forbidden
<ErrorResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<Error>
<Type>Sender</Type>
<Code>AccessDenied</Code>
<Message>MultiFactorAuthentication failed, unable to validate MFA code. Please verify your MFA serial number is valid and associated with this user.</Message>
</Error>
<RequestId>d108e1aa-a2a2-11e5-9bbf-8fce06e22779</RequestId>
</ErrorResponse>
我认为这会失败,因为根MFA凭据与EC2实例凭据并不真正关联。
MFA凭据是否可以与EC2实例配置文件一起使用,以承担需要MFA的角色? 如果是这样,我将如何做到这一点?