【问题标题】:Getting {"Message":"User: anonymous is not authorized to perform: es:ESHttpGet"} error even with open domain access policy即使使用开放域访问策略,也会出现 {"Message":"User:anonymous is not authorized to perform:es:ESHttpGet"} 错误
【发布时间】:2021-04-22 06:11:42
【问题描述】:

我的 AWS Elasticsearch 域有这样的访问策略

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::xxxxxxxxxxxx:user/some-user"
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:ap-south-1:xxxxxxxxxxxx:domain/some-cluster/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "0.0.0.0/0"
        }
      }
    }
  ]
}

即使使用此策略,我也无法访问 kibana。 AWS ES 是否对其访问策略进行了一些更改?

【问题讨论】:

  • “我无法访问 kibana”- 不具体。你究竟是如何尝试的?你会得到什么错误。
  • 我正在尝试使用控制台上提供的 aws 提供的链接
  • 进展如何?根据我的回答,您知道为什么它不起作用以及如何解决吗?

标签: amazon-web-services aws-elasticsearch


【解决方案1】:

不能直接访问 ES 仅通过具有此政策的链接。原因是您必须使用有效的 sigv4 签名来签署您的请求。根据您的政策,对 ES 的每个请求都必须由只能访问它的 some-user 签名。

这是为了确保只有该用户可以访问它,正如您在策略中指定的那样。因此,您不能使用 kibana。来自docs

Kibana 本身不支持 IAM 用户和角色

您必须以编程方式访问您的 ES,以便对请求进行签名。一个流行的工具是aws-requests-auth for python。

【讨论】:

    猜你喜欢
    • 2022-01-28
    • 2020-10-25
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多