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