Ohne Network Policies kann jeder Pod mit jedem anderen kommunizieren. Default Deny + explizites Erlauben ist die Grundlage.
Default Deny¶
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all spec: podSelector: {} policyTypes: [Ingress, Egress]
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
Wichtigste Erkenntnis¶
Default Deny All, dann explizit erlauben. Erfordert ein CNI-Plugin (Calico, Cilium).