AWS Cognito signUp接口调用超时,adminCreateUser正常问题求助
AWS Cognito signUp 接口超时排查指南
先明确两类接口的核心差异
adminCreateUser是带AWS SigV4签名的管理类接口,依赖IAM凭证鉴权,多数场景下可通过VPC内网端点连通,无需走公网signUp是无AWS凭证的公开客户端接口,仅靠App ClientId鉴权,必须走Cognito的公网公开端点,和管理API的连通路径完全独立
逐点排查
- 检查运行环境的出站网络策略
- 同环境下
adminCreateUser正常,仅能证明内网到Cognito管理端点的连通性没问题,不代表公网出站链路正常 - 直接在代码运行的环境测试到对应区域Cognito公开端点(
cognito-idp.{region}.amazonaws.com)的连通性,确认最近是否有出站防火墙、NACL、安全组的规则变更,出现静默丢弃signUp请求流量的规则调整 - 如果代码部署在VPC内,重点确认公网出口状态:很多场景下VPC仅创建了Cognito管理类的内网端点,公开接口流量必须通过NAT网关出公网,若NAT网关故障、带宽打满、公网ACL拦截,就会出现signUp超时、adminCreateUser走内网正常的典型现象
- 同环境下
- 排查SDK初始化配置变更
- 核对
cognitoserviceprovider的初始化参数是否被误改:比如是否手动指定了仅支持管理API访问的端点、是否给无签名的公开请求误加了无效的AWS鉴权配置,导致SDK一直等待响应直到超时 - 对比两个接口的实际请求路径,确认是否存在配置不兼容的问题
- 核对
- 检查用户池及App Client的配置变更
- 确认
process.env.DEFAULT_CLIENT_ID对应的App Client是否被篡改、关联到了错误的用户池 - 检查用户池最近是否新增了WAF规则、源IP静默丢弃策略、自定义域名解析变更,导致请求不返回任何响应直接被丢包
- 确认
- 验证代码回调触发状态
- 对照现有日志确认:调用signUp前的日志
initiating cognito user creation for是否正常输出,signUp回调内的日志cognito user created for是否完全没有触发 - 如果回调完全未触发,说明请求在网络层就已经超时,根本没有到达Cognito服务,不存在代码逻辑阻塞的问题
- 对照现有日志确认:调用signUp前的日志
高频踩坑场景
- VPC环境下仅部署了Cognito管理类的内网端点,未配置公开接口的公网出口,导致走内网的管理API正常,走公网的注册请求超时
- 企业网络出站代理最近更新了规则,仅放行带AWS签名的管理API流量,拦截了无签名的公开API流量
- Cognito用户池最近开启了高级安全特性的静默拦截规则,将运行环境的出口IP加入丢包列表,不返回错误码直接丢弃请求导致超时
内容的提问来源于stack exchange,提问作者Shadab Faiz
相关产品推荐
相关产品推荐

