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

kee*_*kee 6 amazon-web-services elasticsearch amazon-iam aws-elasticsearch

我无法在 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
}
Run Code Online (Sandbox Code Playgroud)

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

kee*_*kee 11

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


dz9*_*902 8

对于谷歌员工:

自 2020 年 1 月起,Amazon ES 采用一种技巧来确定如何进行细粒度授权。

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

其影响是:

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

对于那些看到映射的 IAM 用户/角色但在访问域时却发现它们未经授权的用户来说,这看起来非常令人困惑。

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

这一点应该在官方文档中更清楚地说明,或者更好地强调。

在此输入图像描述

在此输入图像描述