initial commit
This commit is contained in:
69
05-Bezpieczeństwo/Admission Webhooks i polityki.md
Normal file
69
05-Bezpieczeństwo/Admission Webhooks i polityki.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Admission Webhooks i polityki
|
||||
|
||||
#sympozium #security #admission #webhook
|
||||
|
||||
## Koncepcja
|
||||
|
||||
Polityki Sympozium są enforcowane **at admission time** - przed utworzeniem poda, nie at runtime. To gwarantuje że żaden AgentRun nie ominie polityki.
|
||||
|
||||
## Przepływ
|
||||
|
||||
```
|
||||
kubectl apply -f agentrun.yaml
|
||||
↓
|
||||
K8s API Server → Admission Webhook
|
||||
↓
|
||||
Webhook:
|
||||
1. Odczytuje policyRef z SympoziumInstance
|
||||
2. Ładuje SympoziumPolicy
|
||||
3. Sprawdza:
|
||||
├── Sandbox requirements (required? image? resources?)
|
||||
├── Agent Sandbox requirements (runtime class allowed?)
|
||||
├── Tool gating (allow/deny/ask per tool)
|
||||
├── Feature gates (memory? web-endpoint? channels?)
|
||||
├── Subagent limits (maxDepth? maxConcurrent?)
|
||||
└── Network policy rules
|
||||
4. ALLOW → AgentRun created
|
||||
DENY → AgentRun rejected z clear error message
|
||||
```
|
||||
|
||||
## Kluczowe różnice vs runtime enforcement
|
||||
|
||||
| Aspekt | Admission-time | Runtime |
|
||||
|--------|---------------|---------|
|
||||
| Timing | Przed tworzeniem zasobu | Po uruchomieniu |
|
||||
| Obejście | Niemożliwe (K8s API layer) | Możliwe (process-level) |
|
||||
| Feedback | Natychmiast (synchroniczny) | Opóźniony (async) |
|
||||
| Overhead | Tylko przy tworzeniu | Ciągły monitoring |
|
||||
|
||||
## Tool Gating
|
||||
|
||||
```yaml
|
||||
toolGating:
|
||||
defaultAction: deny
|
||||
rules:
|
||||
- tool: read_file
|
||||
action: allow
|
||||
- tool: execute_command
|
||||
action: deny
|
||||
- tool: write_file
|
||||
action: ask # Human-in-the-loop
|
||||
```
|
||||
|
||||
Trzy akcje:
|
||||
- `allow` - tool dozwolony
|
||||
- `deny` - tool zablokowany (webhook reject)
|
||||
- `ask` - wymaga human approval (future feature)
|
||||
|
||||
## Presetowe polityki
|
||||
|
||||
```
|
||||
config/policies/
|
||||
├── permissive.yaml # Dev/demo: all allowed
|
||||
├── default.yaml # General: execute_command requires approval
|
||||
└── restrictive.yaml # Production: deny-by-default, whitelist
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Powiązane: [[SympoziumPolicy]] | [[Model bezpieczeństwa Defence-in-Depth]] | [[Efemeryczny RBAC per-run]]
|
||||
Reference in New Issue
Block a user