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 |
|---|---|---|---|---|
Cost Allocation Tagging Enforced |
🟠 High |
AWS, Azure, GCP |
Cost Allocation |
|
Cost Budgets & Alerting Configured |
🟠 High |
AWS, Azure, GCP |
Budget Control |
|
Resource Rightsizing & Idle Detection |
🟡 Medium |
AWS, Azure, GCP |
Resource Optimization |
|
Storage & Retention Lifecycle Defined |
🟠 High |
AWS, Azure, GCP |
Retention Management |
|
Cost Impact Assessment in ADRs |
🟠 High |
Any (Governance) |
Architectural Cost Debt |
|
FinOps Review Cadence |
🟡 Medium |
Any (Governance) |
FinOps Governance |
|
Observability & Logging Cost Tiers |
🟡 Medium |
AWS, Azure, GCP |
Observability Cost |
|
Commitment & Reserved Capacity Planning |
🟡 Medium |
AWS, Azure, GCP |
Cost Optimization |
|
Data Transfer & Egress Cost Management |
🟠 High |
AWS, Azure, GCP |
Data Transfer |
|
Architectural Cost Debt Register & Quarterly Review |
🟡 Medium |
Any (Governance) |
Architectural Cost Debt |
Säule 7 · Sovereign – WAF-SOV
| Control ID | Titel | Severity | Provider | Checks |
|---|---|---|---|---|
Data Residency Policy Defined |
🟠 High |
AWS, Azure, GCP |
4 |
|
Region Pinning Enforced (IaC) |
🔴 Critical |
AWS, Azure, GCP |
5 |
|
Backup Location & Retention Controlled |
🟠 High |
AWS, Azure |
6 |
|
Logging & Telemetry Residency Controlled |
🟠 High |
AWS |
5 |
|
Key Ownership & Management Defined |
🔴 Critical |
AWS, Azure |
6 |
|
Privileged Access Controlled (Separation of Duties) |
🔴 Critical |
AWS |
4 |
|
Break-Glass Process & Logging |
🟠 High |
AWS |
5 |
|
Dependency & Subprocessor Inventory |
🟡 Medium |
Any |
4 |
|
Controlled Egress & Data Exfiltration Guardrails |
🟠 High |
AWS, Azure |
5 |
|
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.
Check-Operator Referenz
Die YAML-Controls nutzen folgende op-Werte in Assertions:
| Operator | Bedeutung |
|---|---|
|
Das Attribut existiert (nicht null/unset) |
|
Das Attribut ist nicht leer (kein leerer String) |
|
Wert entspricht genau dem |
|
Wert entspricht nicht dem |
|
Wert ist in der erlaubten Liste enthalten |
|
Wert ist nicht in der verbotenen Liste enthalten |
|
Boolescher Wert ist |
|
Boolescher Wert ist |
|
Numerischer Wert ist größer als |
|
Numerischer Wert ist größer oder gleich |
|
Numerischer Wert ist kleiner oder gleich |
|
Wert entspricht nicht dem regulären Ausdruck in |
|
Wert entspricht dem regulären Ausdruck in |
|
Dictionary/Map enthält den Schlüssel |
|
Ein Block dieses Typs existiert |
|
Es existiert eine andere Resource, die dieses Objekt referenziert |
|
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.