WAF++ WAF++
Back to WAF++ Homepage

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

  1. Remote-State konfigurieren: S3+DynamoDB (AWS), Azure Storage Account, GCS Bucket – mit Locking

  2. State-Bucket absichern: Versioning aktivieren; Encryption at Rest; Access-Logging

  3. Konsolen-Zugriff einschränken: SCP oder IAM-Permission-Boundary für Produktions-Accounts

  4. Modul-Bibliothek aufbauen: Wiederverwendbare Module für Networking, Compute, Security

  5. Drift-Erkennung aktivieren: terraform plan täglich per EventBridge Schedule; Alert bei Drift

  6. Brownfield-Import: Bestehende Ressourcen per terraform import in 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
terraform {
  backend "s3" {
    bucket         = "my-org-tf-state"
    key            = "service/prod/terraform.tfstate"
    region         = "eu-central-1"
    dynamodb_table = "terraform-state-lock"
    encrypt        = true
  }
}
terraform {
  # Kein Backend – lokaler State
  # WAF-OPS-020 Violation:
  # kein Remote State, kein Locking
}

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