4

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

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

可能是我在这里要说的内容不准确或完全是胡说八道。我在整个 AWS VPC 明智的部分和 ELK 中都非常新手。

架构: 这是“架构”:

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

资源:

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

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

解决方案:

选项 1:基于资源的策略

  1. 通过引入指定特定 IP 地址的条件来允许基于资源的弹性搜索策略。

这在以下线程中进行了讨论,但不幸的是对我不起作用。

Amazon Elastic Search 集群的正确访问策略

当我尝试在 Amazon 控制台中实现它时,Amazon 通知我,因为我正在使用 Security group ,所以我应该使用 security group 来解决它。

安全组规则:

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

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

选项 2:使用代理

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

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

资料来源:

我发现有人已经在以下链接中使用代理服务器为这个问题制作了开箱即用的解决方案:

使用可执行文件或 docker 容器。

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

选项 3:其他

你能建议其他解决方案吗?是否可以使用 Amazon 负载均衡器或 Amazon API 网关来完成此任务?

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

底线:

我需要能够从浏览器访问 Kibana,以便能够搜索弹性搜索索引。

非常感谢

4

1 回答 1

4

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

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

这是验证A SINGLE USER的好方法。这不是您正在构建的系统访问 ElasticSearch 的好方法。

于 2018-04-10T19:44:15.407 回答