来自浏览器的{亚马逊AWS弹性搜索Kibana访问

时间:2018-04-10 19:17:28

标签: amazon-web-services elasticsearch aws-vpc aws-elasticsearch

我知道这个问题之前已经讨论过,但我觉得我的问题有点不同。

我正在试图弄清楚如何通过我自己的AWS账户中自我管理的AWS弹性搜索来启用对Kibana的访问。

可能我在这里要说的是不准确或完全无稽之谈。 我是整个AWS VPC明智部分的新手,也是ELK卡住的。

架构: 这是“架构”:

  1. 我有一个VPC。
  2. 在VPC中我有几个子网。
  3. 每个服务器使用在服务器本身上运行的日志存储将其数据发送到弹性搜索。为简单起见,假设我有一台服务器。
  4. 可以在亚马逊控制台中找到的弹性搜索https网址被解析为我定义的子网内的内部IP。
  5. 资源:

    我发现以下链接建议使用以下两个选项之一:

    https://aws.amazon.com/blogs/security/how-to-control-access-to-your-amazon-elasticsearch-service-domain/

    解决方案:

    选项1:基于资源的政策

    1. 通过引入指定特定IP地址的条件,允许基于资源的弹性搜索策略。
    2. 这在以下主题中进行了讨论,但遗憾的是对我不起作用。

      Proper access policy for Amazon Elastic Search Cluster

      当我尝试在亚马逊控制台中实现它时,亚马逊通知我,因为我正在使用安全组,所以我应该使用安全组来解决它。

      安全组规则:

      我尝试设置一条规则,允许我的个人计算机(路由器)公共IP访问亚马逊弹性搜索端口,甚至打开所有端口到我的公共IP。

      但这没有成功。 我很乐意得到一个更详细的解释原因,但我猜这是因为弹性搜索只有内部IP而不是公共IP,因为它封装在VPC内我即使定义也无法从外部访问它公共IP访问它的规则。

      选项2:使用代理

      除非别无选择,否则我拒绝使用此解决方案。

      我猜测如果我在同一子网和VPC中设置另一台公共和内部IP服务器与弹性搜索的服务器,并将其用作代理,那么我将能够从该服务器访问此服务器在外部通过为其新创建的安全组定义相同的规则。像文章建议的那样。

      来源:

      我找到了开箱即用的解决方案,其中一些人已经使用代理服务器为此问题做了以下链接:

      使用可执行文件或泊坞窗容器。

      https://github.com/abutaha/aws-es-proxy

      选项3:其他

      你能提出其他解决方案吗?是否可以使用Amazon Load Balancer或Amazon API网关来完成此任务?

      我只需要概念证明而不是进入生产环境的东西。

      底线:

      我需要能够从浏览器中获取Kibana,以便能够搜索弹性搜索索引。

      非常感谢

1 个答案:

答案 0 :(得分:2)

最好的方法是刚刚发布的Cognito身份验证。

https://aws.amazon.com/about-aws/whats-new/2018/04/amazon-elasticsearch-service-simplifies-user-authentication-and-access-for-kibana-with-amazon-cognito/

这是验证单个用户的好方法。对于您正在构建的用于访问ElasticSearch的系统而言,这不是一个好方法。