AWS ElasticSearch 控制台:如何访问我的 ES 域中的索引选项卡

AWS ElasticSearch console: How to Access to Indices tab in my ES domain

我无法在 AWS ElasticSearch 控制台中访问我的 ES 域的索引选项卡。这是它在控制台中的样子:

即使我将我的 IAM ARN (arn:aws:iam::NNNNNNNNNNNNNN:root) 添加到控制台的访问策略,我仍然收到此错误:

/_stats: {
    "error":{
      "root_cause":[
         {
            "type":"security_exception",
            "reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
         }
      ],
      "type":"security_exception",
      "reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
   },
   "status":403
}

知道哪里出了问题吗?该域也具有使用主密码的访问控制。

请转到下图所示的操作下拉菜单,那里会显示当前附加到您的 Elasticsearch 域的访问策略。

在我的例子中,它看起来如下,我可以访问索引选项卡,请注意,具有 /* 的 Resources 键意味着允许访问我域中的所有端点和索引是一部分

注意:获得权限后可直接点击_cat/indices?v API获取所有指数详情

事实证明我的访问策略设置本身是正确的,但是如果您在域中使用基本身份验证配置了主用户帐户,则索引和集群运行状况将不起作用。在我切换到基于 ARN 的主账户后,它起作用了。

Google 员工:

自 2020/01 起,Amazon ES 采用了一种技巧来确定如何完成细粒度授权。

  • 如果您的主用户是 IAM 用户 ARN,您将隐式选择 IAM 方式
  • 如果您的主用户创建为具有自己的用户名和密码的 ES 用户,则您隐式选择了正常方式

影响是:

  • IAM-way 使用 AWS 令牌作为授权请求的方式
  • 普通方式采用 HTTP 身份验证
  • 如果您选择正常方式,那么 ES 将不会与 IAM 集成,也不会将 IAM 用户/角色映射到内部用户,即使它们看似映射到 Kibana UI
  • 如果您选择 IAM 方式,那么您将失去通过 Kibana 默认登录页面登录的能力,它将变得无法正常工作
  • 如果您仍想使用 IAM 方式和 Kibana UI,那么您将需要集成 Cognito

对于看到映射的 IAM 用户/角色但在访问域时发现他们未经授权的用户来说,这看起来非常混乱。

由于您可以更改 ES 域的主用户(停机时间),您可以来回更改它以避免与 Cognito 集成,但这很痛苦。

这应该在 official docs.

中更清楚地说明或更好地强调