Amazon の新しいホスト型 Elasticsearchでmongo-connectorを使用しようとしています。
通常の Elasticsearch Shield などではなく、Amazon のかなり複雑な認証スキームを使用していると思います。
(関連する GH の問題: https://github.com/mongodb-labs/mongo-connector/issues/337 )
Amazon の新しいホスト型 Elasticsearchでmongo-connectorを使用しようとしています。
通常の Elasticsearch Shield などではなく、Amazon のかなり複雑な認証スキームを使用していると思います。
(関連する GH の問題: https://github.com/mongodb-labs/mongo-connector/issues/337 )
試したことがあると思いますが、最も簡単な方法は、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 ユーザーへのアクセスを許可/拒否することで保護されている場合、リクエストに署名する必要がありelastic_doc_manager.py
ます。これは、何らかの方法で変更する必要があることを意味します。最も簡単なオプションは、次のように記述することです。 Amazon が提供する Python ボイラープレート コードを拡張elastic_doc_manager.py
しelastic_aws_doc_manager.py
て使用し、ES ドキュメント マネージャーによって作成された各リクエストに署名する専用のドキュメント マネージャー。
ただし、mongo_connector
es_doc_manager.py
公式の Elasticsearch Python クライアントを使用しており、誰かがそれを微調整して AWS Elasticsearch への署名リクエストで機能するようにするという良いアイデアを思いついたので、カスタムelastic_aws_doc_manager.py
ドキュメント マネージャーの作成ははるかに簡単になります。
これをメインに組み込みelastic_doc_manager.py
、AWS Elasticsearch サービスを使用するときに構成オプションを提供する必要があると固く信じています。