Files
obsidian-sympozium/08-Słownik-K8s/Admission Webhook.md
2026-03-25 00:05:57 +01:00

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