WAF-REL-020 – Health Checks & Readiness Probes Configured
Beschreibung
Alle Produktions-Services MÜSSEN Health Check Endpoints exponieren und Readiness-/Liveness-Probes konfigurieren. Load Balancer MÜSSEN Health Checks mit explizit konfigurierten Pfaden, Intervallen und Schwellenwerten nutzen – keine Cloud-Provider-Defaults.
Kein Deployment ohne funktionierende Health Checks. Dies ist eine nicht-verhandelbare Voraussetzung für automatisches Failover und Zero-Downtime Deployments.
Rationale
Ohne Health Checks werden fehlerhafte Instanzen weiterhin mit Traffic versorgt. Kubernetes ohne Readiness Probe sendet Traffic an Pods, die noch nicht bereit sind oder bereits ausgefallen sind. Load Balancer ohne explizite Health Check Konfiguration verwenden Defaults, die oft zu tolerant (30s Interval, keine Path-Validierung) sind.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Traffic auf fehlerhafte Instanzen |
Ohne Health Check routet LB weiterhin Requests an Instanzen, die Fehler zurückgeben. |
Deadlock unentdeckt |
Ohne Liveness Probe läuft ein deadlockter Prozess ewig weiter und blockiert Ressourcen. |
Premature Traffic |
Ohne Readiness Probe erhält ein nicht-initialisierter Pod Traffic und erzeugt Fehler. |
Default-Timeout zu tolerant |
Cloud-Provider-Defaults sind oft 30s Interval und 3 Fehlschläge – zu lang für schnelle Recovery. |
Anforderung
Alle Services MÜSSEN:
-
/health/liveEndpoint exponieren (Liveness: Prozess lebt) -
/health/readyEndpoint exponieren (Readiness: Traffic-fähig, Abhängigkeiten OK) -
Kubernetes:
readinessProbeundlivenessProbemit gemesseneninitialDelaySecondskonfigurieren -
Load Balancer Health Checks: expliziter Path, Interval, Timeout, Healthy/Unhealthy Threshold
-
Keine Cloud-Provider-Defaults für Health Check Konfiguration
Implementierungsanleitung
-
Endpoints implementieren:
/health/live(nur Prozess),/health/ready(Deps prüfen) -
initialDelaySeconds messen: Startup-Zeit des Services messen, Puffer addieren
-
Intervalle konfigurieren:
interval=15s,timeout=5s,failureThreshold=3 -
ALB Health Check:
path=/health/ready,interval=15,matcher=200 -
Liveness NUR für Prozess-Liveness: Keine externe Abhängigkeiten in Liveness-Probe prüfen
-
Testen: Health Check Failure in Staging simulieren und Verhalten beobachten
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Keine Health Checks |
Keine Probes; LB verwendet TCP-Ping als Health Check. |
2 |
Basis LB Health Check |
ALB Health Check auf "/" konfiguriert; keine Kubernetes Probes. |
3 |
ReadinessProbe + LivenessProbe |
Beide Probes mit gemessenen Delays; LB prüft /health/ready; Fehler erzeugen Alerts. |
4 |
Deep Health Checks |
Readiness prüft echte Abhängigkeiten; StartupProbe für langsame Services. |
5 |
Synthetisches Monitoring |
Externe Validierung der Health Endpoints; Health-Check-Latenz als SLI. |
Terraform Checks
waf-rel-020.tf.aws.alb-target-group-health-check
Prüft: ALB Target Group hat expliziten health_check Block mit Path, Interval und Thresholds.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: health_check Block mit explizitem path, interval, timeout,
healthy_threshold und unhealthy_threshold hinzufügen.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Terraform oder Kubernetes-Manifeste mit Readiness- und Liveness-Probe-Konfiguration. |
Config |
✅ Pflicht |
Load Balancer Health Check Konfiguration mit explizitem Path und Thresholds. |
Process |
Optional |
Test-Ergebnisse: Health Check Failure in Staging simuliert und dokumentiert. |