You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将eu-central-1的Cognito与us-east-1的SNS对接实现短信MFA?

解决方案:跨区域对接Cognito与SNS(无需迁移Cognito)

好消息:你完全不需要把eu-central-1的Cognito用户池迁移到us-east-1就能启用短信MFA,这种跨区域集成是完全可行的,下面是具体的配置步骤:

1. 确认Cognito服务角色的跨区域权限

首先要确保你的Cognito用户池关联的服务角色拥有访问us-east-1区域SNS的权限。你需要给这个角色添加一条权限策略,明确允许它在us-east-1区域调用SNS的Publish操作,示例策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "arn:aws:sns:us-east-1:YOUR_AWS_ACCOUNT_ID:*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "sns:MessageAttributes/AWS.SNS.SMS.SMSType": ["Transactional", "Promotional"]
                }
            }
        }
    ]
}
  • 替换YOUR_AWS_ACCOUNT_ID为你的实际AWS账号ID
  • 条件部分是可选的,用来限制短信类型(事务性/推广性),可根据你的业务需求调整

2. 确认us-east-1的SNS配置(已有额度的基础上)

你已经在us-east-1创建了SNS短信额度,现在需要确保你有一个可用的SNS主题(推荐用主题来做,比直接发布更灵活)。如果还没创建,在us-east-1区域的SNS控制台创建一个标准主题,记录下主题的ARN(格式类似arn:aws:sns:us-east-1:123456789012:my-cognito-sms-topic)。

3. 配置Cognito用户池使用自定义SNS主题

登录AWS控制台,进入eu-central-1区域的Cognito用户池:

  • 切换到MFA和验证页面,启用短信MFA选项
  • 向下滚动到短信设置区域,选择使用自定义Amazon SNS主题
  • 输入你在us-east-1创建的SNS主题ARN
  • 点击保存配置

4. 测试短信MFA功能

创建一个测试用户并启用MFA,尝试触发短信验证流程:

  • 检查是否能正常收到短信
  • 可以到us-east-1区域的SNS控制台查看消息发送记录,确认Cognito是否成功调用了跨区域的SNS服务

注意事项

  • 跨区域调用会产生少量的跨区域数据传输费用,你可以在AWS账单页面查看具体明细
  • 确保us-east-1的SNS短信额度足够,避免因额度不足导致短信发送失败
  • 如果遇到权限报错,检查Cognito服务角色的信任关系是否允许cognito-idp.amazonaws.com扮演该角色,同时确认权限策略中的资源ARN和区域是否正确

内容的提问来源于stack exchange,提问作者Saad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:43:58