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

YAML Control Details

Diese Seite ist die Referenz aller YAML-Kontrolldateien des WAF Frameworks. Die YAML-Dateien enthalten maschinenlesbare Checks, die vom WAF Checker Tool direkt gegen Terraform-Code ausgeführt werden können.

Säule 2 · Cost Optimization – WAF-COST

Control ID Titel Severity Provider Kategorie

WAF-COST-010

Cost Allocation Tagging Enforced

🟠 High

AWS, Azure, GCP

Cost Allocation

WAF-COST-020

Cost Budgets & Alerting Configured

🟠 High

AWS, Azure, GCP

Budget Control

WAF-COST-030

Resource Rightsizing & Idle Detection

🟡 Medium

AWS, Azure, GCP

Resource Optimization

WAF-COST-040

Storage & Retention Lifecycle Defined

🟠 High

AWS, Azure, GCP

Retention Management

WAF-COST-050

Cost Impact Assessment in ADRs

🟠 High

Any (Governance)

Architectural Cost Debt

WAF-COST-060

FinOps Review Cadence

🟡 Medium

Any (Governance)

FinOps Governance

WAF-COST-070

Observability & Logging Cost Tiers

🟡 Medium

AWS, Azure, GCP

Observability Cost

WAF-COST-080

Commitment & Reserved Capacity Planning

🟡 Medium

AWS, Azure, GCP

Cost Optimization

WAF-COST-090

Data Transfer & Egress Cost Management

🟠 High

AWS, Azure, GCP

Data Transfer

WAF-COST-100

Architectural Cost Debt Register & Quarterly Review

🟡 Medium

Any (Governance)

Architectural Cost Debt

Säule 7 · Sovereign – WAF-SOV

Control ID Titel Severity Provider Checks

WAF-SOV-010

Data Residency Policy Defined

🟠 High

AWS, Azure, GCP

4

WAF-SOV-020

Region Pinning Enforced (IaC)

🔴 Critical

AWS, Azure, GCP

5

WAF-SOV-030

Backup Location & Retention Controlled

🟠 High

AWS, Azure

6

WAF-SOV-040

Logging & Telemetry Residency Controlled

🟠 High

AWS

5

WAF-SOV-050

Key Ownership & Management Defined

🔴 Critical

AWS, Azure

6

WAF-SOV-060

Privileged Access Controlled (Separation of Duties)

🔴 Critical

AWS

4

WAF-SOV-070

Break-Glass Process & Logging

🟠 High

AWS

5

WAF-SOV-080

Dependency & Subprocessor Inventory

🟡 Medium

Any

4

WAF-SOV-090

Controlled Egress & Data Exfiltration Guardrails

🟠 High

AWS, Azure

5

WAF-SOV-100

Exit Plan & Portability Tested

🟡 Medium

AWS, Any

5

WAF-COST – Details

WAF-COST-010 – Cost Allocation Tagging Enforced

Datei: controls/WAF-COST-010.yml | Narrative: WAF-COST-010

Checks prüfen: Pflicht-Tags (cost-center, owner, environment, workload) auf Compute-, Storage- und Datenbankressourcen für AWS, Azure und GCP. CI-Gate blockiert Ressourcen ohne vollständiges Tagging.

WAF-COST-020 – Cost Budgets & Alerting Configured

Datei: controls/WAF-COST-020.yml | Narrative: WAF-COST-020

Checks prüfen: aws_budgets_budget mit Alert-Threshold (80 %, 100 %); azurerm_consumption_budget_resource_group; google_billing_budget pro Billing Account. Kein Environment ohne definiertes Budget.

WAF-COST-030 – Resource Rightsizing & Idle Detection

Datei: controls/WAF-COST-030.yml | Narrative: WAF-COST-030

Checks prüfen: Compute-Ressourcen tragen rightsizing-reviewed-Tag mit Datum; kein persistentes Deployment ohne Rightsizing-Dokumentation. Ergänzende Automatisierung via AWS Compute Optimizer / Azure Advisor.

WAF-COST-040 – Storage & Retention Lifecycle Defined

Datei: controls/WAF-COST-040.yml | Narrative: WAF-COST-040

Checks prüfen: S3-Buckets müssen lifecycle_rule definiert haben; CloudWatch Log Groups retention_in_days muss gesetzt und > 0 sein; Azure Storage Lifecycle Policy; GCP Bucket Lifecycle Rules. Keine Infinite-Retention ohne explizite Compliance-Begründung.

WAF-COST-050 – Cost Impact Assessment in ADRs

Datei: controls/WAF-COST-050.yml | Narrative: WAF-COST-050

Governance-Control (prozessual). Checks prüfen: ADR-Dateien im Repository enthalten eine cost-impact-Sektion mit TCO-Schätzung, Lock-in-Score (1–5), Datentransfer-Kosten, Ops-Aufwand und Exit-Kosten. Fehlende Cost-Sektion = Verletzung (Architektonische Kostenschuld).

WAF-COST-060 – FinOps Review Cadence

Datei: controls/WAF-COST-060.yml | Narrative: WAF-COST-060

Governance-Control. Checks prüfen: Monatlicher Engineering-Review und quartalsweiser Architecture-Board-Review sind dokumentiert (Meeting-Notes im Repository); Action Items mit Owner und Due Date nachverfolgt.

WAF-COST-070 – Observability & Logging Cost Tiers

Datei: controls/WAF-COST-070.yml | Narrative: WAF-COST-070

Checks prüfen: CloudWatch Log Groups retention_in_days ≤ 365 für operative Logs (kein Infinite); Tiering-Tag log-tier (hot/warm/cold/archive) vorhanden; kein DEBUG-Level in Production ohne explizite Sampling-Rate.

WAF-COST-080 – Commitment & Reserved Capacity Planning

Datei: controls/WAF-COST-080.yml | Narrative: WAF-COST-080

Checks prüfen: Baseline-Compute-Instanzen (persistenter Workload) tragen Tag capacity-commitment mit Wert reserved oder savings-plan. On-Demand-Only-Deployments ohne Commitment-Tag werden als Optimierungskandidat markiert.

WAF-COST-090 – Data Transfer & Egress Cost Management

Datei: controls/WAF-COST-090.yml | Narrative: WAF-COST-090

Checks prüfen: VPC Endpoint für S3 in AWS-VPCs vorhanden; keine direkten Internet-Gateway-Routen für interne Compute-Ressourcen; CDN-Ressource (aws_cloudfront_distribution / Azure CDN / google_compute_backend_bucket) für public-facing Storage konfiguriert.

WAF-COST-100 – Architectural Cost Debt Register & Quarterly Review

Datei: controls/WAF-COST-100.yml | Narrative: WAF-COST-100

Governance-Control. Checks prüfen: Datei cost-debt-register.yml im Repository vorhanden; jeder Eintrag enthält owner, annual_impact_eur, status und resolution_date; Quarterly-Review-Eintrag für das aktuelle Quartal mit Architecture-Board-Sign-off vorhanden.


WAF-SOV – Details

Check-Operator Referenz

Die YAML-Controls nutzen folgende op-Werte in Assertions:

Operator Bedeutung

attribute_exists

Das Attribut existiert (nicht null/unset)

not_empty

Das Attribut ist nicht leer (kein leerer String)

equals

Wert entspricht genau dem expected-Wert

not_equals

Wert entspricht nicht dem expected-Wert

in

Wert ist in der erlaubten Liste enthalten

not_in

Wert ist nicht in der verbotenen Liste enthalten

is_true

Boolescher Wert ist true

is_false

Boolescher Wert ist false

greater_than

Numerischer Wert ist größer als expected

greater_than_or_equal

Numerischer Wert ist größer oder gleich expected

less_than_or_equal

Numerischer Wert ist kleiner oder gleich expected

not_matches

Wert entspricht nicht dem regulären Ausdruck in pattern

matches

Wert entspricht dem regulären Ausdruck in pattern

key_exists

Dictionary/Map enthält den Schlüssel key

block_exists

Ein Block dieses Typs existiert

has_associated_resource

Es existiert eine andere Resource, die dieses Objekt referenziert

json_not_contains_pattern

JSON-String enthält kein Pattern (Regex-basiert)


WAF-SOV-010 – Data Residency Policy Defined

Datei: controls/WAF-SOV-010.yml

Checks prüfen: Data-Residency-Tagging auf Ressourcen; explizite Region/Location-Attribute in Provider-Blöcken für AWS, Azure und GCP.

WAF-SOV-020 – Region Pinning Enforced (IaC)

Datei: controls/WAF-SOV-020.yml

Checks prüfen: Explizite Region in Provider-Blöcken; Validation-Blöcke in Region/Location-Variablen; keine hardkodierten non-sovereign Regionen.

WAF-SOV-030 – Backup Location & Retention Controlled

Datei: controls/WAF-SOV-030.yml

Checks prüfen: RDS/Aurora backup_retention_period >= 7; DynamoDB PITR aktiviert; Backup Vault in genehmigter Region; S3 Versioning für Backup-Buckets.

WAF-SOV-040 – Logging & Telemetry Residency Controlled

Datei: controls/WAF-SOV-040.yml

Checks prüfen: CloudTrail multi-region mit Log-File-Validation; CloudWatch Log Group Retention nicht 0 und >= 30 Tage; VPC Flow Logs für alle VPCs; CloudWatch-Integration.

WAF-SOV-050 – Key Ownership & Management Defined

Datei: controls/WAF-SOV-050.yml

Checks prüfen: KMS Key Rotation aktiviert; Deletion Window >= 14 Tage; S3 nutzt aws:kms (nicht AES256); EBS und RDS Storage verschlüsselt; Azure Key Vault mit Purge Protection.

WAF-SOV-060 – Privileged Access Controlled (Separation of Duties)

Datei: controls/WAF-SOV-060.yml

Checks prüfen: Keine IAM-Policy mit Action:* und Resource:* kombiniert; kein AdministratorAccess an normale Rollen; IAM Passwort-Policy konfiguriert; keine langlebigen Access Keys.

WAF-SOV-070 – Break-Glass Process & Logging

Datei: controls/WAF-SOV-070.yml

Checks prüfen: CloudTrail multi-region, log-validation, global events; CloudTrail S3 nicht öffentlich; CloudWatch Alarm für Root-Account-Aktivität; Alarm für IAM-Policy-Änderungen.

WAF-SOV-080 – Dependency & Subprocessor Inventory

Datei: controls/WAF-SOV-080.yml

Checks prüfen: Alle required_providers mit Version Constraint; required_version gesetzt; Module-Versionen gepinnt; keine unapproved Git-Module.

WAF-SOV-090 – Controlled Egress & Data Exfiltration Guardrails

Datei: controls/WAF-SOV-090.yml

Checks prüfen: Security Groups ohne 0.0.0.0/0 Egress; VPC Endpoint für S3 vorhanden; VPC Flow Logs aktiviert; Network ACL keine offene Egress; Azure NSG kein offener Outbound.

WAF-SOV-100 – Exit Plan & Portability Tested

Datei: controls/WAF-SOV-100.yml

Checks prüfen: S3 Buckets mit Lifecycle Policy; S3 Versioning aktiviert; Data-Resources mit portability-class Tag; High-Lock-In Services mit exit-strategy Tag; RDS Deletion Protection.