Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Network Policies in Kubernetes

14. 09. 2025 Aktualisiert: 27. 03. 2026 1 Min. Lesezeit intermediate

Ohne Network Policies kann in Kubernetes jeder Pod mit jedem anderen Pod ueber alle Namespaces hinweg kommunizieren. Ein kompromittierter Pod hat somit uneingeschraenkten Zugriff auf Datenbanken, interne APIs und andere Dienste. Default Deny mit explizitem Erlauben ist die Grundlage von Zero Trust in Kubernetes — jede Kommunikation muss explizit erlaubt werden. Laterale Bewegung nach der Kompromittierung eines einzelnen Pods wird dadurch erheblich erschwert.

Default Deny

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all
spec:
  podSelector: {}
  policyTypes: [Ingress, Egress]

Diese Policy blockiert jeglichen ein- und ausgehenden Verkehr fuer alle Pods im Namespace. Sie ist der Ausgangspunkt — von hier fuegen Sie explizite Ausnahmen hinzu. Ohne policyTypes haette ein leerer podSelector keine Wirkung. Setzen Sie Default Deny in jedem Namespace und fuegen Sie dann spezifische Regeln hinzu, um die notwendige Kommunikation zu erlauben.

Spezifische Kommunikation erlauben

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-api
spec:
  podSelector:
    matchLabels:
      app: api
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 8080
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: postgres
    ports:
    - port: 5432

Diese Policy besagt: Ein Pod mit dem Label app: api akzeptiert Ingress-Verkehr nur von Pods mit dem Label app: frontend auf Port 8080 und darf Egress-Verkehr nur an Pods app: postgres auf Port 5432 senden. Jede andere Kommunikation bleibt durch die Default-Deny-Policy blockiert.

Praktische Tipps

Beginnen Sie im Audit-Modus — stellen Sie Policies mit einem Logging-CNI-Plugin (Cilium) bereit und beobachten Sie, welche Kommunikation stattfindet. Fuegen Sie dann schrittweise Einschraenkungen hinzu. Vergessen Sie nicht Egress-Regeln fuer DNS (Port 53 zu kube-dns) — ohne sie koennen Pods keine Domainnamen aufloesen. Verwenden Sie Namespace-Selektoren fuer die Kommunikation zwischen Namespaces.

Wichtigste Erkenntnis

Default Deny All, dann explizit erlauben. Network Policies erfordern ein CNI-Plugin mit Policy-Unterstuetzung (Calico, Cilium, Weave Net). Vanilla Kubernetes mit kubenet unterstuetzt keine Network Policies.

securitykubernetesnetwork policy
Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.