WAF-OPS-020 – Infrastructure as Code Enforced
Beschreibung
Alle Cloud-Infrastruktur MUSS als Code (Terraform, Pulumi, AWS CDK) definiert sein. Manuelle Ressourcenerstellung durch Cloud-Konsole MUSS für Produktion und Staging verboten sein. IaC-Definitionen MÜSSEN versioniert, reviewed und durch CI/CD deployt werden.
Rationale
Manuell erstellte Infrastruktur kann nicht zuverlässig reproduziert werden, kann nicht reviewed werden und kann nicht auditiert werden. Snowflake-Server sind ein Hauptrisiko für Reliability und Operational Debt. IaC eliminiert Configuration Drift, ermöglicht Audit-Trails und erlaubt Disaster-Recovery in Minuten statt Wochen.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Configuration Drift |
Manuelle Konsolen-Änderungen erzeugen unsichtbare Abweichungen zwischen IaC-Definition und Realität. |
Snowflake-Server |
Manuell konfigurierte Systeme können nach Ausfall nicht reproduziert werden. |
Fehlende Peer-Review |
Ohne IaC und Pull-Requests gibt es keine zweiten Augen für Infrastruktur-Änderungen. |
DR-Versagen |
Disaster-Recovery-Tests scheitern weil tatsächliche Infrastruktur vom dokumentierten IaC abweicht. |
Anforderung
-
Alle Produktions- und Staging-Infrastruktur MUSS als IaC definiert sein
-
Manuelle Änderungen MÜSSEN durch IAM-Policy oder Service Control Policy (SCP) eingeschränkt sein
-
Remote-State-Backend mit Locking MUSS konfiguriert sein (kein lokaler State)
-
Alle IaC-Änderungen MÜSSEN Pull-Request-Review durchlaufen
-
State-Bucket MUSS Versioning aktiviert haben für Rollback-Fähigkeit
Implementierungsanleitung
-
Remote-State konfigurieren: S3+DynamoDB (AWS), Azure Storage Account, GCS Bucket – mit Locking
-
State-Bucket absichern: Versioning aktivieren; Encryption at Rest; Access-Logging
-
Konsolen-Zugriff einschränken: SCP oder IAM-Permission-Boundary für Produktions-Accounts
-
Modul-Bibliothek aufbauen: Wiederverwendbare Module für Networking, Compute, Security
-
Drift-Erkennung aktivieren:
terraform plantäglich per EventBridge Schedule; Alert bei Drift -
Brownfield-Import: Bestehende Ressourcen per
terraform importin State übernehmen
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Manuell |
Keine IaC; Infrastruktur manuell via Konsole oder CLI erstellt. |
2 |
Inkonsistentes IaC |
Teile der Infrastruktur als IaC; manuelle Ressourcen koexistieren; kein Remote State. |
3 |
IaC vollständig enforced |
100% Produktions-Infrastruktur als IaC; Remote State; manuelle Änderungen eingeschränkt. |
4 |
Drift Detection & Policy Enforcement |
Drift täglich erkannt und alarmiert; Policy-as-Code in CI; Modul-Bibliothek vorhanden. |
5 |
GitOps |
Git-State = Single Source of Truth; Automatische Drift-Remediation; IaC Coverage 100%. |
Terraform Checks
waf-ops-020.tf.aws.s3-terraform-state-backend
Prüft: Terraform-Remote-State im S3 Backend konfiguriert (nicht lokaler State).
| Compliant | Non-Compliant |
|---|---|
|
|
waf-ops-020.tf.aws.s3-state-bucket-versioning
Prüft: S3 State-Bucket hat Versioning aktiviert.
# Compliant
resource "aws_s3_bucket_versioning" "state" {
bucket = aws_s3_bucket.terraform_state.id
versioning_configuration {
status = "Enabled" # Nicht Suspended
}
}
Remediation: Remote-State-Backend mit S3+DynamoDB Locking konfigurieren. State-Bucket-Versioning aktivieren.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Terraform-Repository mit Remote-State-Konfiguration (backend.tf mit S3/Azure/GCS). |
Config |
✅ Pflicht |
State-Backend-Konfiguration mit aktiviertem Versioning und Locking. |
Process |
Optional |
Drift-Detection-Report (letzte 30 Tage, Drift-Events mit Resolutionszeiten). |
Governance |
Optional |
SCP oder IAM-Policy die direkte Console-Änderungen in Produktions-Accounts verhindert. |
Regulatorisches Mapping
| Framework | Controls |
|---|---|
ISO/IEC 20000-1:2018 |
8.2.3 – Change management; 8.3.4 – Release management; 8.4.1 – Service delivery; 8.4.2 – Service reporting |
ITIL 4 |
SVS – Service value system; DP – Design principle; OV – Operation value chain; CW – Continual improvement |
AWS Well-Architected Framework |
Operational Excellence Pillar – Prepare; Operational Excellence Pillar – Deploy; Operational Excellence Pillar – Monitor; Operational Excellence Pillar – Improve |
DORA |
DORA 2024 – Technical practices; DORA 2024 – Organizational culture |
SOC 2 Type II |
CC4.1 – Monitoring activities; CC7.1 – Infrastructure and software monitoring; CC7.2 – Evaluation of system changes |
Google SRE Book |
Chapter 2 – SRE: The role of an SRE; Chapter 3 – Service Level Objectives; Chapter 4 – Eliminating toil |
PCI DSS v4.0 |
Req 6.4 – Secure development lifecycle; Req 6.5 – Secure coding practices; Req 6.6 – Application security |
FinOps Foundation |
Core Module – Financial accountability; Management Layer – Cost governance |
BSI C5:2020 |
OPS-01 – Operational monitoring; OPS-02 – Operational control; OPS-03 – Operational capacity; OPS-04 – Change management |
NIST SP 800-53 |
CM-1 – Configuration management policy; CM-2 – Configuration management; CM-6 – Configuration settings; CM-8 – Information system integration; CA-7 – Continuous monitoring |
NIST CSF 2.0 |
GV.PO – Policy; RC.RP – Recovery planning; DE.CM – Continuous monitoring |
TISAX |
Information security – Change management |
ANSSI SecNumCloud |
Domain – Change management |
BIO |
BIO – Veranderingenbeheer |
ENS High |
op.exp.6 – Gestión de cambios |
UK NCSC CAF |
A4 – Policy and assurance; A5 – Continual improvement |
CMMC 2.0 |
CM.L2-3.4.1 – Establish baseline configurations; CA.L2-3.12.1 – Periodically assess security controls |
IRAP |
ISM – Change management |
CCCS PBMM |
CM-2 – Baseline configuration; CA-7 – Continuous monitoring |
MAS TRM |
Ch.3 – Technology risk governance; Ch.9 – Change management |
ISMAP |
Operational excellence and continuous improvement |
FISC |
Operational measures – Change management |