2.2 KiB
2.2 KiB
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
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