Как предотвратить прямой доступ к развернутым службам API, предоставляемым входным контроллером nginx - PullRequest
0 голосов
/ 07 декабря 2018

Я развернул приложение на aws с использованием контроллера kops и ingress nginx.

Из того, что я понял, похоже, что контроллер ввода позволяет публично выставлять все службы, развернутые в кластере.Поэтому меня интересует безопасность и аутентификация.

Какая архитектура у моего проекта?Я получил 3 службы, развернутые в кластере:

  1. -client-ui (front-end)

  2. -authentication-api (создает / создает/ проверяет токен JWT и вызывает другие службы, такие как data-api)

  3. -data-api (API, который создает / считывает / обновляет / удаляет конфиденциальные данные в БД)

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

В этом случае data-api долженбыть доступным только из аутентификации-API.Поэтому, если в моем браузере я наберу www.client-ui.com/data/getXXX, очевидно, я не смогу получить доступ к этой конечной точке.Я должен быть в состоянии сделать это только через authentication-api, если его токен jwt был проверен.

Поэтому я полагаю, что некоторые apis должны быть доступны только из кластера, а некоторые публично!?

Не могли бы вы объяснить, как я могу это сделать?

Спасибо

1 Ответ

0 голосов
/ 07 декабря 2018

В зависимости от провайдера облачных сервисов для входящих сервисов существуют разные аннотации.Вам нужен внутренний балансировщик нагрузки для конкретного входного ресурса.В вашем случае (AWS) это должно быть:

annotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true"

См .:

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