Amazon AWS эластичный поиск Kibana доступ из браузера

Я знаю, что этот вопрос уже обсуждался ранее, но я чувствую, что мой вопрос немного другой.

Я пытаюсь выяснить, как мне разрешить доступ к Kibana через саморегулируемый упругий поиск AWS, который есть в моей учетной записи AWS.

Может быть, то, что я собираюсь сказать здесь, является неточным или полным вздором. Я довольно новичок во всем мудром разделе AWS VPC и застрял в ELK.

Архитектура: вот "Архитектура":

  1. У меня есть VPC.
  2. В рамках VPC у меня есть несколько подсетей.
  3. Каждый сервер отправляет свои данные в эластичный поиск, используя хранилище журналов, которое запускается на самом сервере. Для простоты предположим, что у меня есть один сервер.
  4. URL-адрес эластичного поиска, который можно найти в консоли Amazon, преобразуется во внутренний IP-адрес в указанной мной подсети.

Ресурсы:

Я нашел следующую ссылку, которая предлагает использовать один из двух вариантов:

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

Решения:

Вариант 1: политика на основе ресурсов

  1. Либо разрешить политику на основе ресурсов для упругого поиска, введя условие, которое указывает определенный IP-адрес.

Это обсуждалось в следующей теме, но, к сожалению, у меня не получилось.

Правильная политика доступа для Amazon Elastic Search Cluster

Когда я пытаюсь реализовать его в консоли Amazon, Amazon уведомляет меня, что, поскольку я использую группу безопасности, я должен разрешить ее с помощью группы безопасности.

Правила группы безопасности:

Я попытался установить правило, позволяющее общему IP-адресу моего персонального компьютера (маршрутизатора) получать доступ к портам эластичного поиска Amazon или даже открывать все порты для моего общедоступного IP-адреса.

Но это не сработало. Я был бы рад получить более подробное объяснение, почему, но я предполагаю, что это потому, что эластичный поиск имеет только внутренний IP, а не общедоступный IP, и поскольку он инкапсулирован в VPC, я не могу получить к нему доступ извне, даже если я определю правило для публичного IP-адреса для доступа к нему.

Вариант 2. Использование прокси

Я отказываюсь использовать это решение, если у меня нет другого выбора.

Я предполагаю, что если я установлю другой сервер с общедоступным и внутренним IP-адресом в той же подсети и VPC, что и для эластичного поиска, и использую его в качестве прокси-сервера, то я смог бы получить доступ к этому серверу извне, определив те же правила, что и для недавно созданной группы безопасности. Как предложенная статья.

Источники:

Я нашел готовое решение, которое кто-то уже сделал для этой проблемы, используя прокси-сервер, по следующей ссылке:

Использование исполняемого файла или контейнера Docker.

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

Вариант 3: Другое

Можете ли вы предложить другое решение? Можно ли использовать Amazon Load балансировщик или Amazon API gateway для выполнения этой задачи?

Мне просто нужно подтверждение концепции, а не то, что входит в производственную среду.

Нижняя линия:

Мне нужно иметь возможность получить доступ к Kibana из браузера, чтобы иметь возможность искать эластичные поисковые индексы.

большое спасибо

1 ответ

Лучший способ - только что выпущенная аутентификация 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.

Другие вопросы по тегам