【问题标题】:AWS Cognito - Enabling MFA | Error: MFA cannot be turned off if an SMS role is configuredAWS Cognito - 启用 MFA |错误:如果配置了 SMS 角色,则无法关闭 MFA
【发布时间】:2018-11-13 20:18:12
【问题描述】:

我正在尝试为现有 AWS Cognito 用户池启用 MFA。 我正在编辑用户池配置,但尝试保存新配置会导致 MFA cannot be turned off if an SMS role is configured 错误(见图)。我不明白那个错误信息,Google 也帮不上忙。

问题:我做错了什么,如何为现有用户池启用 MFA?

【问题讨论】:

  • 您使用的是哪个 aws 区域?
  • 爱尔兰(eu-west-1)
  • 奇怪,我猜你已经为 MFA 选择了可选的。就我而言,它在 eu-central-1 中不起作用,但对于 eu-west-1 没关系。
  • 您可能还需要提高 AWS 每月支出限额。
  • SNS消费限额已经提高了,我觉得不是问题。我通过导出所有用户、创建启用 MFA 的新用户池然后导入用户解决了这个问题。如果系统包含许多用户和高流量,则此解决方案可能不理想。

标签: amazon-web-services amazon-cognito multi-factor-authentication


【解决方案1】:

SNSRole 是自动添加的,不能通过任何可用参数更改,以后也不能修改。当前的解决方法是手动修改 yaml 配置并删除该部分。

  • 放大添加授权
  • 完成所有配置
  • 打开文件 backend/auth//-cloudformation-template.yml
  • 在 Resources > UserPool > Properties 中删除 Resources 和 SmsConfiguration 中的 SNSRole 行
  • 放大推送

来自:https://github.com/aws-amplify/amplify-js/issues/2906

【讨论】:

  • 这条路好像不存在了。我在我的项目中找不到它。
  • @Min 你确定吗?路径取决于您选择的名称。
  • 是的,我确定。这就是我所看到的: amplify/backend/auth//build/-cloudformation-template.json 。我从这个 json 模板中删除了提到的资源,但它没有检测到任何变化。看来你提到了不同的补丁,你的模板是 yml
【解决方案2】:

提供的解决方案(手动删除角色)对我不起作用。

我从放大 cli 中找到了解决方案。

运行这个

amplify update auth

其中一个问题是您是否要禁用 MFA。 然后

amplify push auth

将您的更改移动到云端

【讨论】:

    【解决方案3】:

    转到 IAM 并确保您没有意外创建 SMS 角色。 台阶下:

    You must provide a role to allow Amazon Cognito to send SMS messages
    

    如果您按创建角色,那么这将产生您提到的错误。我想为了继续,您需要正确配置您的 SMS。

    为了解决这个问题,我必须删除一个链接到我的用户池的 SMS 角色 (IAM)

    因此,通过删除 SMS 角色,我能够继续创建新的用户池。

    您可以通过登录控制台来做到这一点。转到仪表板下方左侧的 IAM 转到 Roles。从列表中选择与您的用户池关联的 SMS 角色并将其删除。

    【讨论】:

    • 3 年后,令人难以置信的是他们让这个过程变得如此困难
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2018-11-02
    • 2019-02-24
    • 1970-01-01
    • 2019-02-25
    • 2019-01-31
    • 2017-05-15
    相关资源
    最近更新 更多