WAF-COST-020 – Cost Budgets & Alerting Configured
Beschreibung
Cost-Budgets MÜSSEN als IaC-Ressourcen definiert sein – nicht manuell im Cloud-Console-UI. Budget-Alerts MÜSSEN bei 80% und 100% des Limits automatisch ausgelöst und an den Workload-Owner sowie das FinOps-Team geroutet werden.
Manuell im UI gesetzte Budgets sind nicht versioniert, nicht reproduzierbar und können ohne Audit-Trail geändert oder gelöscht werden.
Rationale
Budget-Überschreitungen, die erst in der Monatsrechnung entdeckt werden, sind zu spät: Die Kosten sind bereits angefallen. Frühzeitige Alerts bei 80% ermöglichen proaktives Handeln, bevor das Budget ausgeschöpft ist. IaC-definierte Budget-Ressourcen sind versioniert, reviewbar und Teil des Infrastructure-as-Code-Workflows.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Späte Entdeckung |
Budget-Überschreitungen werden erst nach Monatsabschluss in der Abrechnung sichtbar. |
Nicht-reproduzierbare Konfiguration |
Im UI manuell gesetzte Budgets sind nicht versioniert; Verlust bei Account-Änderungen möglich. |
Fehlende Prognose |
Ohne Forecasting-Alerts werden drohende Überschreitungen nicht erkannt, bevor sie eintreten. |
Falsche Benachrichtigungsempfänger |
Alerts, die an veraltete E-Mail-Adressen gehen, lösen keine operative Reaktion aus. |
Anforderung
-
Budget-Ressourcen MÜSSEN in Terraform definiert sein (
aws_budgets_budget,azurerm_consumption_budget_*,google_billing_budget) -
Alerts MÜSSEN bei 80% (ACTUAL) und 100% (ACTUAL) konfiguriert sein
-
Empfänger MÜSSEN: Team-Owner-Kanal + FinOps-Team
-
Ein Forecasting-Alert (FORECASTED, 110%) ist empfohlen
-
Budget-Ressourcen MÜSSEN quartalsweise auf Angemessenheit reviewed werden
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Kein Budget |
Keine Budget-Limits; Kosten nur in Monatsrechnung sichtbar. |
2 |
Budget manuell gesetzt |
Budget-Limits existieren, aber im Console-UI konfiguriert; nicht versioniert. |
3 |
Budget als IaC, Alerts konfiguriert |
|
4 |
Forecasting-Alerts und Anomalie-Detection |
Forecasted-Alert konfiguriert; AWS Cost Anomaly Detection o.ä. aktiv; Alerts triggern Tickets. |
5 |
Predictive Budget Management |
Budgets automatisch auf Basis von ML-Prognosen angepasst; Real-Time-Burn-Rate-Dashboard. |
Terraform Checks
waf-cost-020.tf.aws.budgets-budget-exists
Prüft: aws_budgets_budget Ressource muss als IaC existieren.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: aws_budgets_budget Ressource in Terraform anlegen. budget_type = "COST",
time_unit = "MONTHLY". Notification-Blöcke für 80% und 100% mit Team-E-Mail als Empfänger.
waf-cost-020.tf.azurerm.consumption-budget-defined
Prüft: Azure azurerm_consumption_budget_resource_group muss existieren.
# Compliant
resource "azurerm_consumption_budget_resource_group" "main" {
name = "payment-service-monthly-budget"
resource_group_id = azurerm_resource_group.main.id
amount = 5000
time_grain = "Monthly"
time_period {
start_date = "2025-01-01T00:00:00Z"
}
notification {
enabled = true
threshold = 80
operator = "GreaterThan"
threshold_type = "Actual"
contact_emails = ["payments-team@company.com"]
}
notification {
enabled = true
threshold = 100
operator = "GreaterThan"
threshold_type = "Actual"
contact_emails = ["payments-team@company.com", "finops@company.com"]
}
}
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Terraform Budget-Ressourcen im Repository für jeden Cloud-Account/Workload. |
Config |
✅ Pflicht |
Alert-Notification-Konfiguration mit 80%- und 100%-Schwellwerten. |
Process |
Optional |
Alert-Auslieferungsnachweis der letzten 3 Monate. |
Process |
Optional |
Quartalsweise Budget-Review-Protokoll mit Anpassungsentscheidungen. |