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

AWS OpenSearch(ES7.10)为何默认使用Cognito Auth角色而非组关联角色

解决Elasticsearch集群优先使用Cognito组关联AdminRole的问题

以下是针对你的问题的具体排查和解决步骤:

1. 验证Cognito身份池的角色解析规则

  • 登录AWS控制台,进入目标Cognito身份池的配置页面
  • 检查身份验证提供商下的Cognito用户池配置,确认「角色解析」设置为根据令牌中的角色优先选择(或对应选项:优先使用Cognito组映射的角色)
  • 再次确认AdminRole的优先级确实高于auth角色(你提到优先级为1,需确保没有配置错误)

2. 检查Elasticsearch的Cognito认证配置

  • 登录新集群的Kibana,进入Stack Management > Security > Identity Providers
  • 找到Cognito身份提供商的配置,确认已启用从JWT令牌中提取角色的设置:
    • 确保Roles key设置为cognito:groups(Cognito会将用户所属组信息放在JWT的该字段中)
    • 若通过elasticsearch.yml配置,需确认存在以下参数:
      opendistro_security.authc.jwt.roles_key: cognito:groups
      

3. 确认ES后端角色映射的准确性

  • 在Kibana的Stack Management > Security > Role Mappings中,检查关联admin组的映射:
    • 映射的「Backend roles」必须是Cognito管理员组的完整ARN,格式为:
      arn:aws:cognito-idp:{region}:{account-id}:userpool/{userpool-id}/group/{group-name}
    • 确保该映射已关联到ES的all_access和security_manager角色,且没有拼写错误(如区域、用户池ID等)

4. 检查AdminRole的IAM信任关系

  • 进入AWS IAM控制台,找到cognito-AdminRole的信任策略,确认其允许Cognito身份池扮演该角色,示例策略如下:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "cognito-identity.amazonaws.com"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "cognito-identity.amazonaws.com:aud": "{你的身份池ID}"
            },
            "ForAnyValue:StringLike": {
              "cognito-identity.amazonaws.com:amr": "authenticated"
            }
          }
        }
      ]
    }
    

5. 验证JWT令牌内容

  • 登录新集群时,通过浏览器开发者工具(Network面板)获取登录请求返回的JWT令牌
  • 使用JWT解码工具(如本地离线工具)解析令牌,确认:
    • cognito:groups字段包含你的管理员组名称
    • cognito:roles字段包含cognito-AdminRole的ARN
    • 若令牌中无AdminRole信息,问题出在Cognito身份池配置;若有但ES未识别,需检查ES的角色映射配置

6. 调整ES主用户配置

  • 暂时保留auth角色作为新集群的主用户,完成上述配置修正后,再移除该主用户设置
  • 重新登录测试,此时应自动使用Cognito组关联的AdminRole

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:06:32