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

Open Search集成Cognito后出现CORS头缺失及403权限问题

问题诊断与解决方案

核心问题定位

登录后弹出"forbidden"提示、浏览器控制台出现Cognito API调用的CORS错误(403状态码,缺少Access-Control-Allow-Origin响应头)及页面空白的问题,本质是Cognito用户池未配置允许OpenSearch域发起跨域请求,导致OpenSearch控制台页面调用Cognito身份验证相关API时被浏览器拦截。

分步解决方法

1. 配置Cognito用户池的CORS规则

  • 进入AWS控制台,打开Cognito服务,找到目标用户池
  • 切换到**"App integration"标签页,找到"Domain name"**板块下的CORS配置入口
  • 在**"Allowed origins"**中添加你的OpenSearch域完整URL(格式示例:https://your-opensearch-domain.us-east-1.es.amazonaws.com)
  • 确保**"Allowed methods"**包含GET、POST(Cognito身份验证API的核心调用方法)
  • 保存配置后,等待5-10分钟让设置生效

2. 验证Cognito身份池关联IAM角色的权限

  • 打开IAM控制台,找到为Cognito身份池配置的认证角色
  • 检查角色的权限策略,确保包含以下Cognito API调用权限:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cognito-idp:GetUser",
                    "cognito-idp:ListUsers",
                    "cognito-identity:GetCredentialsForIdentity",
                    "cognito-identity:GetId"
                ],
                "Resource": [
                    "arn:aws:cognito-idp:us-east-1:YOUR_ACCOUNT_ID:userpool/YOUR_USER_POOL_ID",
                    "arn:aws:cognito-identity:us-east-1:YOUR_ACCOUNT_ID:identitypool/YOUR_IDENTITY_POOL_ID"
                ]
            }
        ]
    }
    
  • 若权限不足,更新策略后重新测试

3. 补充检查OpenSearch域的CORS配置

  • 进入OpenSearch服务控制台,找到目标集群
  • 切换到**"Security"标签页,在"CORS"**板块:
    • 确认**"Enable CORS"**已勾选
    • 在**"Allowed origins"**中添加Cognito用户池的域名(格式示例:https://your-cognito-domain.auth.us-east-1.amazoncognito.com)
    • 保存配置并等待集群更新完成

额外排查点

  • 测试前清除浏览器缓存,或使用无痕模式验证
  • 确认OpenSearch域与Cognito所有资源均处于us-east-1区域,避免跨区域调用的额外限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:50:01