initial commit
This commit is contained in:
77
08-Słownik-K8s/Admission Webhook.md
Normal file
77
08-Słownik-K8s/Admission Webhook.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Admission Webhook
|
||||
|
||||
#kubernetes #security #api #słownik
|
||||
|
||||
## Co to jest?
|
||||
|
||||
**Admission Webhook** to mechanizm Kubernetes pozwalający na **przechwycenie i walidację/modyfikację żądań do API servera** zanim zasób zostanie zapisany w etcd.
|
||||
|
||||
## Typy
|
||||
|
||||
### Validating Admission Webhook
|
||||
- **Sprawdza** czy żądanie jest prawidłowe
|
||||
- Może ALLOW lub DENY
|
||||
- Nie modyfikuje żądania
|
||||
- Przykład: "Czy AgentRun spełnia SympoziumPolicy?"
|
||||
|
||||
### Mutating Admission Webhook
|
||||
- **Modyfikuje** żądanie przed walidacją
|
||||
- Może dodawać, usuwać lub zmieniać pola
|
||||
- Przykład: "Dodaj domyślny SecurityContext do poda"
|
||||
|
||||
## Przepływ
|
||||
|
||||
```
|
||||
kubectl apply -f agentrun.yaml
|
||||
↓
|
||||
API Server:
|
||||
1. Authentication (kto?)
|
||||
2. Authorization / RBAC (czy może?)
|
||||
3. → Mutating Webhooks (modyfikacja)
|
||||
4. Schema Validation (OpenAPI)
|
||||
5. → Validating Webhooks (walidacja)
|
||||
6. Zapis do etcd
|
||||
```
|
||||
|
||||
## Kluczowe cechy
|
||||
|
||||
- **Synchroniczne** - żądanie czeka na odpowiedź webhooka
|
||||
- **Fail-open / fail-closed** - konfiguracja co robić gdy webhook jest niedostępny
|
||||
- **TLS required** - webhook musi serwować HTTPS (cert-manager w Sympozium)
|
||||
- **Scope** - filtrowanie po zasobach, operacjach, namespace'ach
|
||||
|
||||
## Przykład konfiguracji
|
||||
|
||||
```yaml
|
||||
apiVersion: admissionregistration.k8s.io/v1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
name: sympozium-webhook
|
||||
webhooks:
|
||||
- name: validate.sympozium.ai
|
||||
rules:
|
||||
- apiGroups: ["sympozium.ai"]
|
||||
resources: ["agentruns"]
|
||||
operations: ["CREATE", "UPDATE"]
|
||||
clientConfig:
|
||||
service:
|
||||
name: sympozium-webhook
|
||||
namespace: sympozium-system
|
||||
path: /validate-agent-pods
|
||||
failurePolicy: Fail # Odrzuć jeśli webhook niedostępny
|
||||
```
|
||||
|
||||
## Użycie w Sympozium
|
||||
|
||||
Sympozium używa admission webhook do enforcowania [[SympoziumPolicy]]:
|
||||
|
||||
- Sprawdza czy [[AgentRun]] spełnia politykę bezpieczeństwa
|
||||
- Waliduje tool gating (allow/deny per tool)
|
||||
- Enforces sandbox requirements
|
||||
- Sprawdza limity sub-agentów
|
||||
|
||||
Enforcement odbywa się **at admission time** (przed tworzeniem poda), nie at runtime. Więcej w [[Admission Webhooks i polityki]].
|
||||
|
||||
---
|
||||
|
||||
Powiązane: [[Admission Webhooks i polityki]] | [[SympoziumPolicy]] | [[CRD - Custom Resource Definition]]
|
||||
Reference in New Issue
Block a user