Controls (WAF-OPS)
Diese Seite bietet eine narrative Übersicht aller 10 Controls der Operational Excellence Säule. Für vollständige Terraform-Beispiele und detaillierte Implementierungsanleitungen siehe die Best Practices.
WAF-OPS-010 – CI/CD Pipeline Defined & Automated
Severity: High | Kategorie: Deployment-Automatisierung | Automatisierbar: Hoch
Intent
Jeder Produktions-Workload muss eine definierte, versionierte CI/CD-Pipeline haben. Manuelle Deployments in Produktion sind nicht zulässig.
Anforderung
-
Pipeline-Definitionen MÜSSEN in Version-Control gespeichert sein
-
Alle Deployments in alle Umgebungen MÜSSEN automatisiert sein
-
Branch-Protection MUSS direkte Commits auf Produktions-Branches verhindern
-
Approval-Gates MÜSSEN vor Production-Deployments konfiguriert sein
Terraform Checks (Auszug)
-
waf-ops-010.tf.aws.codepipeline-exists– AWS CodePipeline mit Source, Build und Deploy-Stage -
waf-ops-010.tf.azurerm.devops-pipeline-exists– Azure DevOps Build-Definition mit Repository-Referenz -
waf-ops-010.tf.google.cloudbuild-trigger-exists– GCP Cloud Build Trigger mit Build-Konfigurationsdatei
Evidenz
-
Pipeline-Definitionen-Dateien in Version-Control
-
Branch-Protection-Konfiguration
Zugehörige Best Practice: CI/CD-Pipeline aufbauen und absichern
WAF-OPS-020 – Infrastructure as Code Enforced
Severity: High | Kategorie: Infrastructure as Code | Automatisierbar: Hoch
Intent
Alle Cloud-Infrastruktur muss als Code definiert sein. Manuelle Ressourcenerstellung durch Cloud-Konsole ist in Produktion und Staging verboten.
Anforderung
-
Alle Produktions- und Staging-Infrastruktur MUSS als IaC definiert sein
-
Manuelle Änderungen MÜSSEN durch IAM/SCP-Policy eingeschränkt sein
-
Remote-State-Backend mit Locking MUSS konfiguriert sein
-
Alle IaC-Änderungen MÜSSEN Pull Request-Review durchlaufen
Terraform Checks (Auszug)
-
waf-ops-020.tf.aws.s3-terraform-state-backend– Terraform Remote-State im S3 Backend -
waf-ops-020.tf.aws.s3-state-bucket-versioning– S3 State-Bucket mit aktiviertem Versioning -
waf-ops-020.tf.azurerm.terraform-state-storage– Azure Storage Account für State mit Blob-Versioning
Evidenz
-
Terraform-Repository mit Remote-State-Konfiguration
-
S3/Azure Storage State-Backend mit Versioning
Zugehörige Best Practice: Infrastructure as Code konsequent umsetzen
WAF-OPS-030 – Observability Stack Configured
Severity: High | Kategorie: Observability | Automatisierbar: Hoch
Intent
Jeder Produktions-Workload muss strukturierte Logs emittieren, Metriken exponieren und Distributed Tracing unterstützen. Ein zentralisierter Observability-Stack muss konfiguriert sein.
Anforderung
-
Alle Services MÜSSEN strukturierte JSON-Logs mit Trace-ID emittieren
-
Distributed Tracing MUSS konfiguriert und instrumentiert sein (OpenTelemetry, X-Ray)
-
RED-Metriken MÜSSEN für jeden Service exportiert sein
-
Log-Retention MUSS mindestens 30 Tage betragen (empfohlen: 90 Tage Applikation, 365 Tage Audit)
Terraform Checks (Auszug)
-
waf-ops-030.tf.aws.cloudwatch-log-group-retention– CloudWatch Log Groups mit Retention-Policy -
waf-ops-030.tf.aws.xray-tracing-enabled– Lambda Functions mit aktivem X-Ray Tracing -
waf-ops-030.tf.azurerm.log-analytics-workspace– Azure Log Analytics Workspace mit Retention
Evidenz
-
Log-Group-Konfiguration mit Retention-Einstellungen
-
Tracing-Konfiguration in Applikationscode
Zugehörige Best Practice: Observability-Stack aufbauen
WAF-OPS-040 – Alerting on Symptoms, Not Causes
Severity: High | Kategorie: Alerting | Automatisierbar: Hoch
Intent
Alle Produktions-Alerts müssen auf nutzer-sichtbaren Symptomen basieren (Fehlerrate, Latenz, Verfügbarkeit), nicht auf internen Ursachen (CPU, Memory). Jeder Page-Alert braucht ein Runbook.
Anforderung
-
Alerts MÜSSEN symptom-basiert sein (Fehlerrate, Latenz, Verfügbarkeit)
-
Jeder paging Alert MUSS eine Runbook-URL in der Beschreibung haben
-
SLOs MÜSSEN für alle kritischen Services definiert sein
-
Alert-Noise-Metrik MUSS tracked werden (Ziel: < 10 Pages/Woche/Ingenieur)
Terraform Checks (Auszug)
-
waf-ops-040.tf.aws.cloudwatch-alarm-symptom-based– CloudWatch Alarm mit Beschreibung und Alarm-Action -
waf-ops-040.tf.azurerm.monitor-alert-symptom– Azure Monitor Alert mit Beschreibung und Action Group -
waf-ops-040.tf.google.monitoring-alert-symptom– GCP Monitoring Alert Policy mit Notification Channels
Evidenz
-
Alert-Regel-Definitionen mit symptom-basierten Metriken
-
SLO-Definitionen für kritische Services
Zugehörige Best Practice: Alerting auf Symptome statt Ursachen
WAF-OPS-050 – Change Management & Deployment Risk Assessment
Severity: Medium | Kategorie: Change Management | Automatisierbar: Mittel
Intent
Alle Produktionsänderungen müssen durch einen definierten Change-Management-Prozess mit Risikobewertung, Approval-Workflow und Post-Deployment-Verifikation laufen.
Anforderung
-
Change-Kategorien MÜSSEN definiert sein (Standard, Normal, Notfall)
-
High-Risk-Changes MÜSSEN Multi-Personen-Approval erfordern
-
Deployment-Freeze-Policies MÜSSEN für kritische Perioden konfiguriert sein
-
Change-Records MÜSSEN mit Deployment-Artefakten verknüpft sein
Terraform Checks (Auszug)
-
waf-ops-050.tf.aws.codepipeline-manual-approval– CodePipeline mit manueller Approval-Stage vor Production -
waf-ops-050.tf.azurerm.devops-environment-approval– Azure DevOps Environment mit Approval-Checks
Evidenz
-
Change-Management-Policy
-
Branch-Protection und Approval-Konfiguration
Zugehörige Best Practice: CI/CD-Pipeline aufbauen und absichern
WAF-OPS-060 – Runbook & Operational Documentation Coverage
Severity: Medium | Kategorie: Dokumentation | Automatisierbar: Niedrig
Intent
Jeder Produktions-Workload muss Runbooks für alle bekannten Fehlerfälle haben. Runbooks müssen versioniert, regelmäßig reviewed und mit Alerts verknüpft sein.
Anforderung
-
Alle paging Alerts MÜSSEN mit Runbooks verknüpft sein
-
Runbooks MÜSSEN in Version-Control gespeichert und regelmäßig reviewed sein (quartalsweise)
-
Runbook-Coverage-Metrik MUSS tracked werden (Ziel: >= 90% für kritische Services)
-
Runbooks MÜSSEN ohne Authentifizierungsbarriere für On-Call-Engineers zugänglich sein
Terraform Checks (Auszug)
-
waf-ops-060.tf.aws.cloudwatch-alarm-runbook-annotation– CloudWatch Alarms mit Runbook-URL in Description -
waf-ops-060.tf.aws.prometheus-alert-runbook-label– Prometheus Alert Rules mitrunbook_url-Annotation
Evidenz
-
Runbook-Verzeichnis mit Versionsverlauf
-
Runbook-Coverage-Report
Zugehörige Best Practice: Runbooks und Betriebsdokumentation pflegen
WAF-OPS-070 – Post-Incident Review Process
Severity: Medium | Kategorie: Incident-Learning | Automatisierbar: Niedrig
Intent
Jeder Produktions-Incident mit Nutzerauswirkung oder SLO-Verletzung muss ein Blameless Postmortem innerhalb von 5 Arbeitstagen auslösen. Action Items werden verfolgt und abgeschlossen.
Anforderung
-
Alle SEV-1/P1 Incidents und SLO-Verletzungen MÜSSEN ein Postmortem auslösen
-
Postmortems MÜSSEN blameless sein und Action Items mit Owners produzieren
-
Action Items MÜSSEN in JIRA oder equivalent getrackt werden
-
Postmortems MÜSSEN innerhalb von 5 Arbeitstagen fertiggestellt sein
Terraform Checks (Auszug)
-
waf-ops-070.tf.aws.incident-management-sns-topic– SNS Topic für Incident-Benachrichtigungen -
waf-ops-070.tf.azurerm.action-group-incident– Azure Monitor Action Group mit konfigurierten Empfängern
Evidenz
-
Post-Incident-Review-Policy
-
Postmortem-Archiv (letzte 3 Monate)
Zugehörige Best Practice: Blameless Postmortems und kontinuierliches Lernen
WAF-OPS-080 – Feature Flag & Safe Deployment Patterns
Severity: Medium | Kategorie: Deployment-Sicherheit | Automatisierbar: Hoch
Intent
Produktions-Deployments müssen Progressive-Delivery-Muster (Canary, Blue/Green, Feature Flags) verwenden. Rollback muss innerhalb von 5 Minuten ohne neues Deployment möglich sein.
Anforderung
-
Alle Production-Deployments MÜSSEN Canary, Blue/Green oder Feature Flags verwenden
-
Rollback MUSS in < 5 Minuten ohne neues Deployment möglich sein
-
Neue Features MÜSSEN hinter Feature Flags deployt werden
-
Auto-Rollback MUSS bei Fehlerrate-Anstieg konfiguriert sein
Terraform Checks (Auszug)
-
waf-ops-080.tf.aws.codedeploy-deployment-config– CodeDeploy mit Canary oder Linear-Konfiguration (nicht AllAtOnce) -
waf-ops-080.tf.aws.appconfig-feature-flag– AWS AppConfig Application für Feature Flags -
waf-ops-080.tf.azurerm.traffic-manager-canary– Azure Traffic Manager mit Weighted Routing für Canary
Evidenz
-
Load Balancer / Deployment-Konfiguration mit Progressive Delivery
-
Feature Flag Service Konfiguration
Zugehörige Best Practice: Sichere Deployments
WAF-OPS-090 – Configuration Drift Detection & Remediation
Severity: High | Kategorie: Configuration Management | Automatisierbar: Hoch
Intent
Alle Produktions-Infrastruktur muss kontinuierlich gegen ihre IaC-Definition verglichen werden. Drift wird automatisch erkannt, gemeldet und innerhalb definierter SLAs behoben.
Anforderung
-
Automatische Drift-Erkennung MUSS mindestens täglich laufen
-
Drift-Alerts MÜSSEN das zuständige Team innerhalb von 1 Stunde benachrichtigen
-
Notfall-Konsolen-Änderungen MÜSSEN innerhalb von 24 Stunden in IaC überführt werden
-
Drift-SLAs MÜSSEN definiert sein (kritisch: 4h, major: 24h, minor: 1 Sprint)
Terraform Checks (Auszug)
-
waf-ops-090.tf.aws.config-rule-enabled– AWS Config Recorder mit Compliance Rules -
waf-ops-090.tf.aws.cloudtrail-enabled– CloudTrail als Multi-Region Trail mit Log-Validierung -
waf-ops-090.tf.azurerm.policy-assignment-drift– Azure Policy Initiative Assignment auf Subscription
Evidenz
-
Drift-Detection-Konfiguration (EventBridge Schedule, AWS Config)
-
Drift-SLA-Policy
Zugehörige Best Practice: Infrastructure as Code konsequent umsetzen
WAF-OPS-100 – Operational Debt Register & Review
Severity: Medium | Kategorie: Operational Governance | Automatisierbar: Niedrig
Intent
Alle bekannten Operational Debt-Posten müssen in einem version-controlled Register dokumentiert, quartalsweise reviewed und mit Sprint-Kapazität für Abbau geplant werden.
Anforderung
-
Operational Debt Register MUSS in Version-Control gespeichert sein
-
Jeder Eintrag MUSS Severity, Toil-Stunden, Owner und Zieldatum haben
-
Quarterly Review MUSS stattfinden mit Priorisierung und Kapazitätszuweisung
-
Sprint-Kapazität für Debt-Abbau MUSS explizit zugewiesen sein (mindestens 10%)
Terraform Checks (Auszug)
-
waf-ops-100.tf.aws.eventbridge-ops-review-schedule– EventBridge Scheduled Rule für quartalsliche Review-Erinnerungen -
waf-ops-100.tf.aws.ssm-automation-runbook– SSM Automation Documents für repetitive Operational Tasks
Evidenz
-
Operational Debt Register (version-controlled)
-
Quarterly-Review-Protokoll
Zugehörige Best Practice: Runbooks und Betriebsdokumentation pflegen