у меня есть NodeJS
приложение с экспресс.js
как бэкенд-фреймворк, развернутый в облаке с помощью Kubernetes. K8s работает поверх шаблона Ubuntu. Приложение, развернутое в Kubernetes, оказание услуг
тип NodePort
. Это означает, что приложение использует внешний IP-адрес узлов K8s. В моем случае в настоящее время используется внешний IP-адрес одного из главных узлов.
Затем я назначил DNS-имя хоста для приложения, используя Cloudflare Tunnel (он же Argo Tunnel). Он отлично работает, так как я могу получить доступ к приложению из-за пределов кластера K8s с разрешенным DNS-именем хоста. Однако я также могу получить доступ к приложению напрямую из abcd: 31130
.
Вот фрагмент из config.yml
файл, используемый при создании туннеля Cloudflare:
туннель: ***********8ab68bscjbi9cddhujhdhbh
файл учетных данных: /home/sebastian/.cloudflared/***********8ab68bscjbi9cddhujhdhbh.json
вход:
- имя хоста: myapp.test.io
сервис: http://a.b.c.d:31130
- сервис: http_status:404
Меня беспокоит то, как запретить или заблокировать прямой IP-доступ к приложению, поскольку я не хочу раскрывать IP-адрес и усложнять себе жизнь с точки зрения безопасности?
Я также сомневаюсь, что это нужно настраивать из кластера Cloudflare или K8s. Любые отзывы и предложения будут оценены.