Puncte:0

Interziceți accesul IP direct la o aplicație implementată în Kubernetes

drapel ru

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.

Puncte:1
drapel br

Din perspectiva kubernetes, Ingress-controller este o modalitate standard de a expune backend HTTP prin conexiunea TLS de la cluster la client.

Puteți publica aplicația folosind certificate TLS. Când creați certificatul TLS, puteți specifica numele alternative pe care le-ați permite aplicației dvs. Alte nume sau adrese IP nu vor avea voie să acceseze site-ul web.

Iată un exemplu de nume alternative. Putem elimina adresele IP dacă nu dorim să permitem accesul folosind IP.

X509v3 Nume alternativ al subiectului:
                DNS:kmaster, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, Adresă IP: 10.96.0.1, Adresă IP: 172.16.16.100

Exemple de intrare TLS https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/tls-termination

Nume alternative https://kubernetes.io/docs/tasks/administer-cluster/certificates/#openssl

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.