KI-Infrastruktur

Sicherung des Agent-Datenverkehrs durch Richtlinien und Überwachbarkeit

Abubakar Siddiq Ango
Abubakar Siddiq Ango Senior Developer Advocate
16. Juni 2026 3 Minuten Lesezeit Mittelstufe
AI-Infrastruktur agentic-ai Sicherheit Beobachtbarkeit

Voraussetzungen

  • „Installation eines Agent-Gateways auf Kubernetes“ (Teil 2) abgeschlossen – agentgateway und das agentgateway-proxy Die Gateways laufen
  • kubectl ist installiert und konfiguriert

Einführung

Im Verlauf dieser Serie hat sich das Gateway zum gemeinsamen Zugangspunkt für Ihre Tools, Modelle und Agenten entwickelt. Damit ist es der ideale Ort, um festzulegen, wer welche Funktionen aufrufen darf, und der einzige Ort, an dem Sie erfahren können, was genau passiert ist. In diesem Tutorial fügen Sie dem Gateway eine Authentifizierungsrichtlinie hinzu und lesen die Protokolle aus, die es bei jeder Anfrage erstellt.

Schritt 1 – Ein Backend zum Schutz freigeben

Falls Sie noch eine Route aus einem früheren Tutorial haben, verwenden Sie diese. Andernfalls stellen Sie das httpbin-Beispiel bereit und leiten Sie die Route dorthin weiter:

kubectl apply -f https://raw.githubusercontent.com/kgateway-dev/kgateway/refs/heads/main/examples/httpbin.yaml

kubectl apply -f- <<'EOF'
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: httpbin
  namespace: httpbin
spec:
  parentRefs:
    - name: agentgateway-proxy
      namespace: agentgateway-system
  hostnames: ["www.example.com"]
  rules:
    - backendRefs:
        - name: httpbin
          port: 8000
EOF

Schritt 2 – API-Schlüssel-Authentifizierung erzwingen

Speichern Sie einen oder mehrere Schlüssel in einem Secret:

kubectl apply -f- <<'EOF'
apiVersion: v1
kind: Secret
metadata:
  name: apikey
  namespace: agentgateway-system
  labels:
    app: httpbin
type: extauth.solo.io/apikey
stringData:
  api-key: N2YwMDIxZTEtNGUzNS1jNzgzLTRkYjAtYjE2YzRkZGVmNjcy
EOF

Fügen Sie ein AgentGateway-Richtlinie das einen gültigen Schlüssel erfordert. Dieser richtet sich an die gesamte agentgateway-proxy Gateway, sodass alle Routen abgedeckt sind:

kubectl apply -f- <<'EOF'
apiVersion: agentgateway.dev/v1alpha1
kind: AgentgatewayPolicy
metadata:
  name: apikey-auth
  namespace: agentgateway-system
spec:
  targetRefs:
    - group: gateway.networking.k8s.io
      kind: Gateway
      name: agentgateway-proxy
  traffic:
    apiKeyAuthentication:
      mode: Strict
      secretRef:
        name: apikey
EOF

Schritt 3 – Das Tor testen

Portweiterleitung für den Proxy einrichten:

kubectl port-forward deployment/agentgateway-proxy -n agentgateway-system 8080:80

Eine Anfrage ohne Schlüssel wird abgelehnt:

curl -s -o /dev/null -w "HTTP %{http_code}\n" localhost:8080/headers -H "host: www.example.com"
HTTP 401

Die gleiche Anfrage mit einem gültigen Berechtigung: Inhaber Schlüsselübergaben:

curl -s -o /dev/null -w "HTTP %{http_code}\n" localhost:8080/headers \
  -H "host: www.example.com" \
  -H "Authorization: Bearer N2YwMDIxZTEtNGUzNS1jNzgzLTRkYjAtYjE2YzRkZGVmNjcy"
HTTP 200

Das Gateway setzte die Richtlinie durch, bevor die Anfrage das Backend erreichte.

Schritt 4 – Lesen Sie die Zugriffsprotokolle

agentgateway protokolliert jede von ihm bearbeitete Anfrage. Sie können diese Protokolle auf dem Proxy einsehen:

kubectl logs deploy/agentgateway-proxy -n agentgateway-system--tail=5
... route=httpbin/httpbin http.method=GET http.host=www.example.com http.path=/headers
    http.status=401 protocol=http error="Fehler bei der API-Schlüssel-Authentifizierung: Kein API-Schlüssel gefunden"
    reason=APIKeyAuth duration=1ms
... route=httpbin/httpbin endpoint=10.244.0.7:8080 http.method=GET http.host=www.example.com
    http.path=/headers http.status=200 protocol=http duration=4 ms

In jeder Zeile werden die Route, die Methode, der Host, der Pfad, der Status, das Protokoll und die Dauer erfasst – sowie bei abgelehnten Anrufen der genaue Grund (APIKeyAuth). Diese Protokollierung umfasst den MCP-, LLM- und A2A-Datenverkehr, wobei in jeder Zeile das jeweilige Protokoll angegeben ist, sodass ein einziger Datenstrom die Fragen beantwortet: „Was haben die Agenten getan und was war erlaubt?“

Für verteilte Traces über verschiedene Agenten und Tools hinweg exportiert AgentGateway OpenTelemetry; siehe die unten verlinkte Dokumentation zum Tracing.

Weiterführende Informationen

  • Detailliertere Regeln. Sie können den Geltungsbereich einer Richtlinie auf eine einzelne HTTPRoute, und das CEL-basierte RBAC legt fest, welcher Aufrufer welches Tool oder Modell verwenden darf.
  • Andere Authentifizierungsmethoden. Bei der JWT-Authentifizierung werden Token Ihres Identitätsanbieters überprüft.
  • Traces und Metriken. Richten Sie das Gateway auf einen OpenTelemetry-Collector aus, um End-to-End-Traces und Metriken im Prometheus-Stil zu erhalten.

Aufräumen

kubectl delete agentgatewaypolicy apikey-auth -n agentgateway-system
kubectl delete secret apikey -n agentgateway-system
kubectl delete httproute httpbin -n httpbin

So entfernen Sie den gesamten Labor-Cluster:

kind delete cluster --name agw-lab

Zusammenfassung der Serie

Sie haben mit einem leeren Cluster begonnen und am Ende ein Agent-Gateway eingerichtet, das Tools (MCP), Modelle (LLM) und Agenten (A2A) über eine zentrale Stelle weiterleitet, wobei die Authentifizierung erzwungen und jede Anfrage protokolliert wird. Diese Konfiguration läuft auf jedem von Ihnen betriebenen Kubernetes-Cluster und basiert auf Open-Source-Komponenten.

Zusammenfassung

  • Ein AgentGateway-Richtlinie mit traffic.apiKeyAuthentication überprüft die Schlüssel am Gateway; a targetRef beschränkt es auf ein Gateway oder eine einzelne Route.
  • Schlüssel befinden sich in einem „Secret“ vom Typ extauth.solo.io/apikey; Kunden senden Authorization: Bearer <key>.
  • Das Gateway protokolliert jede Anfrage – Route, Status, Protokoll, Dauer und den Authentifizierungsgrund – für den MCP-, LLM- und A2A-Datenverkehr.
  • CEL RBAC, JWT-Authentifizierung und OpenTelemetry-Tracing erweitern dies für den Produktiveinsatz.