Поместите ElasticSearch в прокси на AWS? - PullRequest
0 голосов
/ 14 декабря 2018

В этой статье (а также в книгах и других источниках информации о ES) утверждается, что ES стоит за прокси-сервисом:

https://dzone.com/articles/securing-your-elasticsearch-cluster-properly

Очень распространенная ошибка, которую явидите, люди говорят: «Привет, Elasticsearch - это REST over HTTP, давайте просто получим к нему доступ напрямую из наших умных клиентов HTML».Ну, вы действительно не хотите этого делать.

Есть одностраничное приложение, которое должно запрашивать Elastic и получать JSON для отображения?Пропустите его через программный фасад, который может выполнять фильтрацию запросов, аудит-запись и, самое главное, защищать ваши данные паролем.

Без этого (а) вы наверняка привязываетесь к общедоступному IP-адресу и не должны't, (b) вы рискуете нежелательными изменениями ваших данных, (c) и худшим - вы не можете контролировать, кто получает доступ к тому, что и все ваши данные видимы для всеобщего обозрения.То, что происходит сейчас с этими кластерами Elasticsearch.

Кроме того, не раскрывайте документ и структуру индекса и не соединяйте своего тонкого клиента с системой хранения данных, обслуживающей его данные.Ваш javascript на стороне клиента действительно не должен говорить на Elastic DSL.

Ваши клиенты должны взаимодействовать с вашим программным обеспечением на стороне сервера, которое, в свою очередь, преобразует все запросы на стороне клиента в Elasticsearch DSL, выполняет запрос, а затемвыборочно трансформируйте ответ Elasticsearch обратно в то, чего ожидают ваши клиенты.И, очевидно, ваше серверное приложение может затем проверять логин пользователя, когда это необходимо для аутентификации и авторизации его действий с данными, задолго до того, как будет получен какой-либо доступ к Elasticsearch.Выполнение этого любым другим способом просто подвергает вас ненужному риску, а ваши данные - жадным хакерам.

Я полностью согласен со всеми сказанными здесь вещами, когда запускаю свою собственную ES в частном облаке.Но что вы обычно делаете, когда запускаете его на AWS?Я совершенно новичок во всем мире, где нет серверов, и недавно я наткнулся на видеоролики Учебника Google Firebase, в которых люди утверждали, что могут делать запросы от клиента непосредственно к БД.Это часто встречается и в AWS?

1 Ответ

0 голосов
/ 26 февраля 2019

Проработав некоторое время с AWS, я должен устранить недоразумение.AWS не равен безсерверному.Они предлагают множество облачных решений, и FAAS / функция как услуга (AWS Lambda) - только одно из них.

И независимо от того, работаете ли вы с FAAS, IAAS или PAAS, у вас всегда может быть сценарий использования.где вы хотите показать только фрагмент интерфейса Elasticsearch для внешнего мира.Если вы получаете Software-As-A-Service, например, ElasticCloud (размещенный компанией Elastic на AWS) или развертываете свой собственный Elastic Cluster с лицензией X-PACK, то вы можете рассмотреть возможность использования функций безопасности XPACK / ограничений индекса.Однако это касается только безопасности, а не простоты.Людям, работающим во внешнем интерфейсе, необходимо знать внутреннюю структуру / сопоставления индекса и то, как выполнять (эффективные) запросы в ES.

Я даже не уверен, может ли X-PACK предотвратить тяжелые вычислительные запросы (например, запросы сценариев, агрегации и глубокое разбиение на страницы), поэтому, если вы предоставляете API всему Интернету, этого может быть недостаточно.

Теперь то, что делают парни из видеороликов Firebase (формируя запросы на стороне клиента), приятно и делает приложение гибким, но теперь оно может подходить для каждого варианта использования.Например, если вы хотите предоставить публичный API для клиентов с собственным клиентом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...