【问题标题】:connecting amazon's elasticsearch with mongo-connector将亚马逊的弹性搜索与 mongo-connector 连接起来
【发布时间】:2016-01-28 21:43:58
【问题描述】:

我正在尝试将 mongo-connector 与亚马逊的新 hosted Elasticsearch 一起使用。

我相信它没有使用普通的 Elasticsearch Shield 等,而是使用了亚马逊相当复杂的身份验证方案。

(GH相关问题:https://github.com/mongodb-labs/mongo-connector/issues/337

【问题讨论】:

    标签: mongodb amazon-web-services elasticsearch amazon-elasticsearch


    【解决方案1】:

    我猜您已经尝试过了,但最简单的方法是在您的 Amazon Elasticsearch 配置中将您的访问策略修改为 “允许对域的开放访问”。当然,这意味着您的 ES 集群对世界开放,因此对于测试目的可能没问题,但在生产环境中则不行。

    您还可以选择“允许来自特定 IP 的访问”,这将“保护”您的集群,只接受来自指定 IP 地址的请求。就我个人而言,我发现这种模式是最容易使用的,因为您可以获得安全访问(前提是您是 IP 地址上唯一的人),并且您不需要遍历整个 AWS签署请求的东西。虽然,如果您在 VPC 中,该选项显然不会起作用。

    在您的搜索域上配置上述任何访问策略后,您无需在 mongo-connector 端执行任何特殊操作,只需使用标准命令行启动您的 mongo-connector,复制将开箱即用。

    mongo-connector -m localhost:27017 -t search-<yourdomain>.us-west-2.es.amazonaws.com:80 -d elastic_doc_manager
    

    现在,如果您的搜索域通过允许/拒绝访问特定 AWS 账户或 IAM 用户“ 保护,您将需要 sign your requests,这意味着 elastic_doc_manager.py 需要以某种方式修改为这样做。最简单的选择是将write a dedicated doc manager 扩展为elastic_aws_doc_manager.py 并使用Amazon-provided Python boilerplate code 对ES 文档管理器发出的每个请求进行签名,这很简单,但仍然需要大量工作。

    但是,由于 mongo_connector es_doc_manager.py 使用官方的 Elasticsearch Python 客户端,并且有人拥有 nice idea to tweak it and make it work for signing requests to AWS Elasticsearch,因此编写自定义 elastic_aws_doc_manager.py 文档管理器变得更加简单。

    我坚信这甚至应该内置到主 elastic_doc_manager.py 中,并在使用 AWS Elasticsearch 服务时提供配置选项。

    【讨论】:

    • @AaronYodaiken 你能实现我的建议吗?
    猜你喜欢
    • 2012-07-28
    • 2016-12-16
    • 2018-10-04
    • 2015-02-04
    • 2013-01-06
    • 2017-08-25
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多