Am un NodeJS
aplicatie cu expres.js
ca un cadru de backend implementat pe cloud folosind Kubernetes. K8s rulează pe un șablon Ubuntu. Aplicația implementată în Kubernetes este de serviciu
tip NodePort
. Aceasta înseamnă că aplicația folosește adresa IP externă a nodurilor K8s. În cazul meu, în prezent folosește o adresă IP externă a unuia dintre nodurile master.
Am atribuit apoi un nume de gazdă DNS pentru aplicație folosind Cloudflare Tunnel (alias Argo Tunnel). Funcționează perfect, deoarece pot accesa aplicația din afara clusterului K8s cu numele de gazdă DNS care a fost rezolvat. Totuși, pot accesa aplicația direct de la a.b.c.d: 31130
.
Iată un fragment din config.yml
fișier utilizat la crearea tunelului Cloudflare:
tunel: ************8ab68bscjbi9cddhujhdhbh
fișierul de acreditări: /home/sebastian/.cloudflared/***********8ab68bscjbi9cddhujhdhbh.json
intrare:
- numele gazdă: myapp.test.io
serviciu: http://a.b.c.d:31130
- serviciu: http_status:404
Preocuparea mea aici este cum să refuz sau să blochez accesul direct IP la aplicație, deoarece nu vreau să dezvălui adresa IP și să-mi îngreunez viața din punct de vedere al securității?
Îndoiala mea este dacă acest lucru trebuie configurat din interiorul clusterului Cloudflare sau K8s. Orice feedback și sugestie ar fi apreciat.