WAF-SUS-050 – Storage Lifecycle & Data Minimization
Beschreibung
Alle Storage-Ressourcen (S3, EBS, Azure Blob, GCS) MÜSSEN Lifecycle-Policies haben.
Daten MÜSSEN automatisch in energieeffiziente Cold-Storage-Tiers tiered werden.
CloudWatch Log Groups MÜSSEN retention_in_days gesetzt haben.
Temporäre Daten MÜSSEN Ablaufregeln haben. Detached EBS-Volumes und stale Snapshots MÜSSEN
regelmäßig bereinigt werden. Das Prinzip: Speichere nur, was nötig ist — so lange wie nötig —
im energieeffizientesten Tier.
Rationale
Speicherenergie ist proportional zu gespeichertem Volumen und Tier-Energie. Hot-Storage (S3 Standard, Premium SSD) verbraucht mehr Energie pro GB als Cold-Tier (Glacier, Archive). Ohne Lifecycle-Policies akkumulieren Daten unbegrenzt im teuersten und energieintensivsten Tier. Das Prinzip der Datenminimierung (DSGVO Art. 5) und das Sustainability-Ziel sind vollständig ausgerichtet: weniger Daten = weniger Energie.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Unbegrenzte Datenakkumulation |
S3-Buckets ohne Lifecycle-Rules wachsen unbegrenzt im teuersten Tier; Energieverbrauch steigt proportional. |
Infinite Log Retention |
CloudWatch ohne |
Orphaned EBS Volumes |
Detached EBS-Volumes nach Instanz-Terminierung laufen weiter und verbrauchen persistent Energie. |
DSGVO-Verstoß |
Excessive Retention von personenbezogenen Daten ohne Lifecycle-Regel ist Verstoß gegen Art. 5 DSGVO. |
Anforderung
-
Alle S3-Buckets MÜSSEN
aws_s3_bucket_lifecycle_configurationhaben -
Alle CloudWatch Log Groups MÜSSEN
retention_in_daysgesetzt haben -
Temporäre Daten (Build-Artefakte, Test-Daten) MÜSSEN Expiration-Regeln haben
-
EBS-Volumes SOLLEN
delete_on_termination = truehaben -
Quarterly Orphaned-Resource-Scan MUSS für detached EBS und stale Snapshots durchgeführt werden
Implementierungsanleitung
-
S3-Audit: Alle Buckets auflisten; Buckets ohne Lifecycle-Config identifizieren
-
Standard-Lifecycle: Standard → STANDARD_IA (30d) → GLACIER (90d) → DELETE (per Policy)
-
CloudWatch Retention: Modul für Standard-Log-Groups mit retention_in_days; Default 90 Tage
-
S3 Intelligent-Tiering: Für Buckets mit unbekanntem Zugriffsprofil; automatisches Tiering
-
EBS Cleanup: Quarterly:
aws ec2 describe-volumes --filters Name=status,Values=available -
Incomplete Multipart:
abort_incomplete_multipart_upload { days_after_initiation = 7 }überall
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Keine Policies |
Alle Buckets ohne Lifecycle; Log Groups ohne Retention; orphaned EBS überall. |
2 |
Manuelle Cleanup-Kampagnen |
Gelegentliche manuelle Reviews; einzelne Lifecycle-Policies für bekannte Hochvolumen-Buckets. |
3 |
Systematisch mit Orphan-Scan |
Alle S3 mit Lifecycle; alle Log Groups mit Retention; monatlicher Orphan-Scan. |
4 |
Data-Minimization Policy |
Data-Min Policy dokumentiert; Tags-driven Lifecycle; Storage-Emissionen getrackt. |
5 |
Storage-Emissionen in SCI |
KI-gestützte Datenklassifikation; Storage-CO₂ in SCI; automatisierte GDPR+Sustainability-Ausrichtung. |
Terraform Checks
waf-sus-050.tf.aws.s3-lifecycle-required
Prüft: S3 Lifecycle Configuration vorhanden mit mindestens einem Rule.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: aws_s3_bucket_lifecycle_configuration für alle S3-Buckets hinzufügen.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Terraform mit S3-Lifecycle-Rules und CloudWatch Log Group |
Config |
✅ Pflicht |
AWS Config oder Cloud-Inventory: kein S3-Bucket ohne Lifecycle-Policy. |
Process |
Optional |
Monthly Orphaned-Resource-Scan-Report. |
Governance |
Optional |
Data-Minimization-Policy-Dokument. |