Я использую кластер Docker Swarm и пытаюсь найти лучший способ соединения и размещения некоторых контейнеров, реализующих мое приложение.

Архитектура все еще в значительной степени "монолитная" (или классический контроллер модели-представления), я имею в виду обратный веб-прокси, сервер приложений и базу данных; серверу приложений может потребоваться подключение к Интернету; давайте предположим, что есть второй компонент сервера приложений, который подключается к БД и должен также подключаться к Интернету. Как это:

         } -> web revproxy -> app1-> db <- app2
internet }                     /            /
         } <=================='------------'     

Я думаю об этих улучшениях, особенно с точки зрения безопасности:

  • 1,0. Что касается компонентов, я вижу, что одного не хватает: соединения из app1 и app2 не должны выполняться напрямую; нужен прямой прокси с фиксированным ACL.
  • 2,0. Что касается сетей, я должен создать столько пользовательских сетей докеров, сколько необходимо для достижения ситуации, когда единственными контейнерами, совместно использующими сеть, являются поставщик и потребитель услуги в этой сети. Так:
    • 2.1. сеть для revproxy и app1
    • 2.2. сеть для app1 и db
    • 2,3. сеть для app2 и дб
    • 2,4. сеть для app1, app2 и fwproxy. Но так как это может быть слишком много разных контейнеров в одной сети, я могу разделить дальше и получить два разных контейнера fwproxy, один из которых авторизует подключения к Интернету из app1, а другой - подключения app2, и поэтому эта сеть будет разделена на две части:
    • 2.4.1. сеть для app1 и fwproxy1
    • 2.4.2. сеть для app2 и fwproxy2
  • 3.0. что касается размещения, я должен поместить web revproxy и новые fwproxy(s) в докер-узел, который находится во внешней сети DMZ (поэтому я не говорю в этом пункте о сетях докеров, которые я описал ранее, эта DMZ является DMZ, где вы может положить Docker узлы, ваши машины)
    • 3.1. таким образом, revproxy может получать входящий трафик (например, из внешнего баланса нагрузки).
    • 3.2. или правилами fw проще управлять (например, если fwproxy будет размещен во внутренних сетях вместо DMZ, то при подключении к Интернету необходимо будет напрямую пересекать два края брандмауэра).

Итак, мой вопрос, в основном, вы считаете какую-то часть моих рассуждений неверной?

Заранее спасибо.

0