Amazon web services 如何强制IAM用户使用多因素身份验证来使用控制台?

Amazon web services 如何强制IAM用户使用多因素身份验证来使用控制台?,amazon-web-services,amazon-iam,Amazon Web Services,Amazon Iam,我想要求IAM用户在登录AWS控制台时使用MFA。我知道这是可以做到的,但不确定登录控制台时是否可以达到同样的效果。Update 您可以使用基于指定aws:MultiFactorAuthAge密钥的强制执行您的要求,如“IAM策略和MFA条件”一节中所述-您可以在两个级别强制执行此要求: 存在-要简单地验证用户是否已通过MFA身份验证,请检查aws:MultiFactorAuthAge密钥是否不为空。(如果 用户尚未通过MFA身份验证,此密钥不存在且 因此为空。) 持续时间-如果希望仅在MFA

我想要求IAM用户在登录AWS控制台时使用MFA。我知道这是可以做到的,但不确定登录控制台时是否可以达到同样的效果。

Update 您可以使用基于指定aws:MultiFactorAuthAge密钥的强制执行您的要求,如“IAM策略和MFA条件”一节中所述-您可以在两个级别强制执行此要求:

  • 存在-要简单地验证用户是否已通过MFA身份验证,请检查aws:MultiFactorAuthAge密钥是否不为空。(如果 用户尚未通过MFA身份验证,此密钥不存在且 因此为空。)
  • 持续时间-如果希望仅在MFA身份验证后的指定时间内授予访问权限,请使用数字条件类型来比较 将密钥的时间设置为一个值(例如3600秒)
因此,所有AWS操作的通用IAM策略(仅测试是否存在MFA身份验证)可能如下所示:

{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“行动”:“*”,
“资源”:“*”,
“条件”:
{
“Null”:{“aws:MultiFactorAuthAge”:“false”}
}
}
]
}
初步答复 这是一种“它只起作用”的情况,即对于受MFA保护的访问,没有什么可以做的,特别是控制台依次使用API,并使用登录用户的IAM凭据调用每个API操作(一旦用户配置并启用了MFA设备,登录页面将要求自动输入MFA令牌)-另请参阅通过控制台使用MFA保护的API一节:

AWS为控制台中的操作评估MFA保护的API策略,例如终止亚马逊EC2实例。使用MFA设备设置IAM用户并启用MFA保护的API策略。然后,用户只需通过MFA身份验证登录控制台,并遵守MFA保护的API策略。对于已经拥有分配MFA设备后,控制台体验不会改变(某些受MFA保护的API的可选时间限制除外,这些API需要更频繁的重新身份验证)。有关使用MFA设备设置IAM用户的更多信息,请参阅


与此同时,AWS本身也提供了一段时间,使他们能够自己管理MFA设备。这与Steffen的更新答案非常相似,但在细节上有所不同

它的工作原理是

  • 基于此创建IAM策略,基本上禁止除IAM操作之外的所有操作,除非没有活动的MFA登录
  • 将策略分配给您相关的IAM用户或更好的IAM组
  • 在您创建IAM用户并向他们传递其初始凭据后,用户将收到一封电子邮件,表明您无权执行此操作。在除访问IAM安全控制台之外的所有操作上
  • 在注册MFA设备、注销并使用新的MFA令牌再次登录后,他们将能够按预期操作所有操作

  • 也许我解释得不够清楚。我知道一旦你登录到控制台,对API的请求将使用同一个会话,因此如果登录的用户使用MFA进行身份验证,那么这将影响控制台的请求。但我的问题是如何强制用户使用MFA登录控制台。这就是首先,我试图暗示,一旦用户配置并启用了MFA设备,登录页面将要求自动输入MFA令牌——换句话说,一旦配置并启用了MFA设备,您就不能在没有MFA令牌的情况下登录控制台。如果没有,则各自受保护的API操作将简单地拒绝工作并抱怨缺少身份验证,就像当用户(即使没有MFA)没有获得所需的IAM权限时一样。好的,我的问题应该是:“如何强制IAM用户配置和启用MFA设备”@Andres-我用一个例子更新了我的答案,说明了如何在IAM策略中强制使用MFA,很抱歉让这个错误发生(并且最初误解了您的问题,尽管事实上您的要求已立即明确说明)。谢谢@SteffenOpel。我想知道您是否也知道如何让用户自己启用MFA设备?作为管理员,我可以为他们设置它(通过电话/短信进行合作),但如果他们使用设备在远程位置,则有点麻烦。