Files
Artista-Filmcamp/k8s/08-networkpolicy.yaml
T
Nick SzaunigandClaude Opus 5.5 66247cfbf9
Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 1m53s
fix(security): NetworkPolicy vor der App wieder aktiv (Traefik in kube-system)
Traefik laeuft im Cluster in kube-system ohne Host-Netzwerk (geprueft).
Die App ist damit nur noch fuer Traefik-Pods aus kube-system erreichbar
(Namespace + Label), was die Umgehung der Login-/2FA-Rate-Limits per
gefaelschtem X-Real-Ip aus anderen Pods verhindert.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-28 11:34:36 +02:00

50 lines
1.5 KiB
YAML

# Datenbank: nur fuer Pods mit dem Label db-client=true erreichbar
# (App inkl. Migration, Worker, Admin-Anlage).
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: artista-modelcamp-postgres
namespace: artista
spec:
podSelector:
matchLabels:
app: artista-modelcamp-postgres
policyTypes: ["Ingress"]
ingress:
- from:
- podSelector:
matchLabels:
db-client: "true"
ports:
- port: 5432
---
# Website: nur ueber Traefik erreichbar. Traefik laeuft in diesem Cluster
# (RKE2) in kube-system und NICHT im Host-Netzwerk — geprueft mit:
# kubectl get pods -A -l 'app.kubernetes.io/name in (traefik,rke2-traefik)' \
# -o custom-columns=NS:.metadata.namespace,HOSTNET:.spec.hostNetwork
# Namespace UND Label muessen passen; das Label allein koennte jeder setzen.
# Der Zertifikats-Solver von cert-manager ist ein eigener Pod und davon nicht
# betroffen.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: artista-modelcamp-app
namespace: artista
spec:
podSelector:
matchLabels:
app: artista-modelcamp-app
policyTypes: ["Ingress"]
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
podSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values: [traefik, rke2-traefik]
ports:
- port: 3000