# NetworkPolicy #kubernetes #security #network #słownik ## Co to jest? **NetworkPolicy** to zasób Kubernetes definiujący **reguły firewalla na poziomie podów**. Kontroluje jaki ruch sieciowy (ingress/egress) jest dozwolony do/z podów. ## Domyślne zachowanie Bez NetworkPolicy: **wszystko jest dozwolone** - każdy pod może komunikować się z każdym innym podem i z internetem. Z NetworkPolicy: reguły definiują whitelist - ruch nie pasujący do żadnej reguły jest **blokowany**. ## Przykład deny-all ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all-egress spec: podSelector: matchLabels: sympozium.ai/component: agent policyTypes: - Egress egress: [] # Pusty = BLOCK ALL ``` ## Przykład z wyjątkami ```yaml spec: podSelector: matchLabels: sympozium.ai/component: agent policyTypes: - Egress egress: # Pozwól DNS - to: - namespaceSelector: {} ports: - port: 53 protocol: UDP # Pozwól NATS - to: - podSelector: matchLabels: app: nats ports: - port: 4222 ``` ## Wymagania NetworkPolicy wymaga **CNI plugin** wspierającego Network Policies: - Calico - Cilium - Weave Net - Antrea **Flannel** domyślnie NIE wspiera NetworkPolicy. ## Użycie w Sympozium Sympozium używa NetworkPolicy do **izolacji agent podów**: ``` Agent pod: Egress: DENY ALL Wyjątki: - DNS (UDP 53) - NATS event bus (TCP 4222) - Skonfigurowane egress rules z SympoziumPolicy ``` Dzięki temu agent nie może: - Sięgnąć do internetu - Komunikować się z innymi podami - Exfiltrować danych Jedyny punkt wyjścia to IPC Bridge → NATS (kontrolowany kanał). Więcej: [[NetworkPolicy i izolacja sieciowa]] --- Powiązane: [[NetworkPolicy i izolacja sieciowa]] | [[SympoziumPolicy]] | [[Model bezpieczeństwa Defence-in-Depth]]