Amazon Cognito 不向我的应用程序的用户提供 MFA 文本消息。如何解决此问题?

上次更新时间:2020 年 4 月 22 日

当我的 Amazon Cognito 用户池中的用户登录到我的应用程序时,他们未按预期方式使用一次性密码 (OTP) 收到 Multi-Factor Authentication (MFA) 文本消息。我该如何排查此类消息传输失败问题?

简短描述

Amazon Cognito 的 MFA SMS(文本)消息通过 Amazon Simple Notification Service (Amazon SNS) 发送。当不按预期方式从 Amazon SNS 发送 SMS 消息时,您可以使用 Amazon CloudWatch Logs 排查传输故障原因

传输失败问题通常由 AWS 账户达到它的 SMS 支出每月服务配额所导致。如果您的账户达到该服务配额,了解如何申请提高服务配额,然后开始监控您的账户的 SMS 使用情况。

解决方法

如果您还没有这么做,为您的 SMS 消息启用 CloudWatch Logs。然后,按照以下说明操作。

使用 CloudWatch 查看传输日志

CloudWatch 控制台检查 SMS 传输的提供方响应日志。在每个传输状态日志中,providerResponse 属性包含传输成功或失败的原因。

注意:如果您现在为 SMS 消息启用 CloudWatch Logs,您将不会看到您的账户在启用日志记录之前的过往 SMS 使用日志。

作为测试,您可以通过 Amazon SNS 将 SMS 消息发送到您自己的手机。如果测试消息未到达,请检查日志的提供方响应。

查看当月至今的 SMS 开支

查看您的账户的 Amazon SNS 指标以了解当月至今的 SMS 支出 (SMSMonthToDateSpentUSD)。

  1. 打开 CloudWatch 控制台
  2. 从左侧导航窗格中选择指标
  3. 所有指标下,选择 SNS,然后选择无维度指标
  4. 指标名称下,展开 SMSMonthToDateSpentUSD,然后选择仅绘制此指标的图形
    注意:指标图表选项卡上,确认统计设置为最大值
  5. 在图表中,记下指标值。

如需更多信息,见绘制指标的图表

检查 SMS 支出的每月服务配额

查看账户 SMS 支出的每月 Amazon SNS 服务配额。将其与您的账户的当月至今 SMS 支出进行比较,以确定它是否达到每月配额。

  1. 打开 Amazon SNS 控制台
  2. 在左侧导航窗格中,选择文本消息 (SMS)
  3. 文本消息首选项中,记下账户支出限额的值。

如需更多信息,见设置发送 SMS 消息的首选项Amazon Simple Notification Service 终端节点和配额

(可选)申请提高 SMS 支出的服务配额

如果账户达到 SMS 支出的每月 Amazon SNS 服务配额,但您想要发送更多消息,申请提高服务配额。如果您预计自己的每月 SMS 使用量将继续保持不变(或增加),提高服务配额还能避免此问题再次发生。

设置警报和监控 SMS 使用情况

除了提高服务配额,随时了解您的账户的 SMS 活动也有助于您避免达到每月的服务配额。请执行以下任意一项操作: