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

为何AWS Cognito admin-get-user无法查询外部用户?

AWS Cognito admin-get-user 返回UserNotFoundException的解决方案

你遇到的核心问题是混淆了用户的Username和email属性,以下是具体原因和解决办法:

  • admin-get-user需要的是用户实际的Username,而非邮箱
    很多时候,即使用户用邮箱注册,Cognito用户池也会自动生成一个随机UUID作为用户的Username(而非直接用邮箱),邮箱只是用户的一个属性字段。你在控制台看到的user@email.com是email属性,但admin-get-user接口要求传入的是用户的Username值,不是邮箱。

    解决步骤:

    1. 在你的list-users代码中,打印完整的用户对象,提取目标用户的Username字段:
      for user in response['Users']:
          print(user)  # 输出包含Username、Attributes等的完整用户数据
      
    2. 将这个Username值替换到admin-get-user的调用参数中:
      response = client.admin_get_user(
          UserPoolId='user-pool-id',
          Username='实际的Username值'  # 比如类似"a1b2c3d4-xxxx-xxxx-xxxx-1234567890ab"的UUID
      )
      
  • 其他可能的排查方向

    • 检查用户状态:确认控制台中该用户的状态为ENABLED,如果是ARCHIVED或其他异常状态,可能导致admin-get-user无法查询(不过这种情况控制台会明确显示状态)。
    • 验证权限和配置:确保调用接口的IAM实体(用户/角色)拥有cognito-idp:AdminGetUser权限,同时确认代码中的region_name和UserPoolId与控制台完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:45:02