From d813d56514351faca866474f1f832d4f8de9679b Mon Sep 17 00:00:00 2001 From: Nick Szaunig Date: Mon, 28 Sep 2026 11:02:22 +0200 Subject: [PATCH] fix(security): NetworkPolicy der App an Namespace und Label binden Nur Label-Abgleich ueber alle Namespaces liess jeden Pod mit Label app.kubernetes.io/name=traefik zu. Jetzt muss zusaetzlich der Namespace traefik oder kube-system sein (Namespace-Namen sind nicht faelschbar). Co-Authored-By: Claude Opus 5.5 (1M context) --- k8s/07-networkpolicy.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/k8s/07-networkpolicy.yaml b/k8s/07-networkpolicy.yaml index f60181a..171392d 100644 --- a/k8s/07-networkpolicy.yaml +++ b/k8s/07-networkpolicy.yaml @@ -1,6 +1,7 @@ # Datenbank nur fuer App und Worker erreichbar; App nur ueber Traefik. -# Traefik wird am Pod-Label erkannt, egal in welchem Namespace es laeuft -# (eigene Installation "traefik" oder RKE2-Paket "rke2-traefik"). +# Traefik wird an Namespace (traefik oder kube-system) UND Pod-Label erkannt +# (eigene Installation "traefik" oder RKE2-Paket "rke2-traefik"). Laeuft +# Traefik in einem anderen Namespace: dessen Namen unten ergaenzen. # Pruefen: kubectl get pods -A -l 'app.kubernetes.io/name in (traefik,rke2-traefik)' apiVersion: networking.k8s.io/v1 kind: NetworkPolicy @@ -30,7 +31,13 @@ spec: app: artista-modelcamp-app ingress: - from: - - namespaceSelector: {} + # Namespace UND Pod-Label muessen passen: ein Label allein koennte + # jeder setzen, der irgendwo Pods starten darf. + - namespaceSelector: + matchExpressions: + - key: kubernetes.io/metadata.name + operator: In + values: [traefik, kube-system] podSelector: matchExpressions: - key: app.kubernetes.io/name