Přeskočit na obsah
_CORE
AI & agentní systémy Podnikové informační systémy Cloud & Platform Engineering Datová platforma & integrace Bezpečnost & compliance QA, testování & observabilita IoT, automatizace & robotika Mobilní & digitální produkty Bankovnictví & finance Pojišťovnictví Veřejná správa Obrana & bezpečnost Zdravotnictví Energetika & utility Telco & média Průmysl & výroba Logistika & e-commerce Retail & věrnostní programy
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN DE
Pojďme to probrat

Network Policies v Kubernetes

14. 09. 2025 Aktualizováno: 27. 03. 2026 1 min čtení intermediate

Bez network policies může v Kubernetes každý pod komunikovat s každým jiným podem ve všech namespacech. Kompromitovaný pod tak má přístup k databázi, interním API a dalším službám bez omezení. Default deny s explicitním povolením je základ zero-trust přístupu v Kubernetes — každá komunikace musí být explicitně povolena. Lateral movement po kompromitaci jednoho podu je tak výrazně ztížen.

Default deny

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

Tato politika blokuje veškerý příchozí i odchozí provoz pro všechny pody v namespace. Je to výchozí bod — od něj přidáváte explicitní výjimky. Bez policyTypes by prázdný podSelector neměl žádný efekt. Nastavte default deny v každém namespace a pak přidávejte specifická pravidla pro povolení potřebné komunikace.

Povolení specifické komunikace

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

Tato politika říká: pod s labelem app: api přijímá ingress provoz pouze od podů s labelem app: frontend na portu 8080 a smí posílat egress provoz pouze na pody app: postgres na portu 5432. Veškerá ostatní komunikace zůstává blokována default deny politikou.

Praktické tipy

Začněte audit módem — nasaďte politiky s logging CNI pluginem (Cilium) a sledujte, jaká komunikace probíhá. Pak postupně přidávejte omezení. Nezapomínejte na egress pravidla pro DNS (port 53 na kube-dns) — bez nich pody nebudou schopny resolvovat doménová jména. Používejte namespace selectors pro komunikaci mezi namespacemi.

Klíčový takeaway

Default deny all, pak povolujte explicitně. Network policies vyžadují CNI plugin s podporou policies (Calico, Cilium, Weave Net). Vanilla Kubernetes s kubenet network policies nepodporuje.

securitykubernetesnetwork policy
Sdílet:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.