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

AWS CognitoIdentityCredentials调用S3时未设置访问值报错排查

报错Unauthenticated access is not supported for this identity pool的核心原因是你发起凭证请求时没有携带有效登录凭证,且当前身份池未开启未认证用户访问权限,按以下步骤排查即可:

  • 第一步:核对Cognito身份池的未认证访问配置
    进入AWS Cognito控制台,打开报错环境对应的身份池,在「基本信息」页查看未认证访问的开关状态:
    • 如果你的业务允许未登录用户访问S3资源,直接打开该开关即可
    • 如果业务要求必须登录后才能访问,说明你当前的代码缺少登录凭证的传递逻辑
  • 第二步:补全认证场景下的凭证参数
    若要求用户登录后访问,你需要在用户完成Cognito用户池登录、拿到有效会话后,将用户池返回的JWT令牌传入CognitoIdentityCredentials的Logins字段,完整代码示例如下:
    AWS.config.credentials = new AWS.CognitoIdentityCredentials(
      {
        IdentityPoolId: this.cognito.identityPoolId,
        RoleArn: this.cognito.roleArn,
        // 传入用户池登录凭证
        Logins: {
          [`cognito-idp.${this.awsRegion}.amazonaws.com/${this.cognito.userPoolId}`]: 登录后获取的idToken值
        }
      },
      {
        region: this.awsRegion
      }
    );
    
  • 第三步:核对身份池关联IAM角色的信任策略
    打开IAM控制台,找到报错环境所用的roleArn对应的角色,检查信任策略是否允许Cognito身份池服务代入角色,且条件中的身份池ID和你实际传入的完全匹配。
  • 第四步:检查身份池的角色分配规则
    若你配置了基于用户属性的角色选择规则,需要确认规则匹配逻辑正确,且配置了兜底的默认认证角色,避免匹配失败导致凭证下发失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 21:15:05