безопасный доступ к док-контейнеру снаружи, не подвергая его - PullRequest
0 голосов
/ 30 января 2019

В настоящее время я настраиваю кластер Docker Swarm Mode с несколькими узлами и стеками, работающими на указанных узлах.

Единственными точками входа узлов являются порты 80, 443 (передний прокси-сервер) и 22 (ssh).Все мои контейнеры изолированы снаружи и подключены к сетям наложения Docker (частный VLAN между узлами) для связи между контейнерами.Это прекрасно работает, пока мне не нужно обращаться к сервису извне.

schema

Моя текущая дилемма заключается в том, как безопасно администрировать mysqlбаза данных работает на моем кластере Swarm Mode с удаленной рабочей станции без доступа к порту 3306 в Интернет.В идеале я хотел бы иметь возможность просто ввести имя контейнера / службы в Workbench, чтобы добраться до нужного контейнера, вместо того, чтобы вручную выяснять ip.Предоставление доступа SSH к конечному компьютеру недопустимо.

До сих пор я руководил настройкой сервера openvpn в моем кластере, который мог бы получить доступ ко всем сетевым контейнерам, к которым я хочу получить доступ извне, и войти вэто vpn на моей рабочей станции, но я не уверен, что это лучший подход

Как бы вы могли безопасно удаленно использовать свои сервисы, не подвергая их воздействию?

1 Ответ

0 голосов
/ 30 января 2019

Одним из удобных подходов является VPN.Но вам нужно выставить свои сервисы, а затем на межсетевом экране шлюза / узла запретить доступ к Интернету для внутреннего доступа.Если вы делаете NAT назначения, просто не публикуйте внутренние сервисы (например, mysql).

Затем вы можете назначить внутреннее DNS-имя для каждой службы, которое указывает на все узлы в кластере, поэтому независимо от того, на каком узле работает контейнер, вы можете подключиться к DNS-имени.Таким образом, вам просто нужно подключить VPN (который добавит внутренние настройки DNS на вашу рабочую станцию) и подключить рабочую среду к mysql или любому другому внутреннему приложению.

...