2.8 KiB
2.8 KiB
SympoziumPolicy
#sympozium #crd #policy #security
Definicja
SympoziumPolicy definiuje polityki governance nad zachowaniem agentów: sandbox requirements, network isolation, tool access i resource limits.
Plik: api/v1alpha1/sympoziumpolicy_types.go
Spec
apiVersion: sympozium.ai/v1alpha1
kind: SympoziumPolicy
metadata:
name: restrictive
spec:
sandboxPolicy:
required: true # Sandbox obowiązkowy
defaultImage: sandbox:v1
maxCPU: "1"
maxMemory: "1Gi"
allowHostMounts: false
seccompProfile:
type: RuntimeDefault
agentSandboxPolicy: # Agent Sandbox (gVisor/Kata)
required: true
defaultRuntimeClass: gvisor
allowedRuntimeClasses: [gvisor, kata]
subagentPolicy:
maxDepth: 3 # Max zagnieżdżenie sub-agentów
maxConcurrent: 5 # Max równoległych
toolGating:
defaultAction: deny # deny/allow/ask
rules:
- tool: read_file
action: allow
- tool: execute_command
action: deny
- tool: write_file
action: ask
featureGates:
memory: true
web-endpoint: false
channels: true
networkPolicy:
denyAll: true # Deny-all egress
allowDNS: true # Wyjątek: DNS
allowEventBus: true # Wyjątek: NATS
allowedEgress: # Dodatkowe wyjątki
- host: "api.openai.com"
port: 443
Enforcement
Polityki są enforced przez admission webhook - nie at runtime, ale at admission time (przed utworzeniem poda):
AgentRun CR → API Server → Admission Webhook → SympoziumPolicy check
├── PASS → CR created
└── DENY → CR rejected
Presetowe polityki
| Polityka | Kto | Kluczowe reguły |
|---|---|---|
| Permissive | Dev, demo | Wszystkie tools dozwolone, brak sandbox requirement |
| Default | Ogólne użycie | execute_command wymaga approval, reszta dozwolona |
| Restrictive | Produkcja | Wszystko domyślnie denied, whitelist, sandbox required |
NetworkPolicy
Polityka networkPolicy generuje Kubernetes NetworkPolicy:
- denyAll: true - agent pods nie mają dostępu do internetu ani innych podów
- allowDNS: true - wyjątek dla rozwiązywania nazw
- allowEventBus: true - wyjątek dla NATS (tylko IPC bridge)
- allowedEgress - whitelist konkretnych endpointów (np. API providerów LLM)
Status
status:
boundInstances: 5 # Ile instancji używa tej polityki
Powiązane: Model bezpieczeństwa Defence-in-Depth | Admission Webhooks i polityki | NetworkPolicy i izolacja sieciowa