WAF-SEC-030 – Encryption at Rest with CMK
Beschreibung
Alle Datenspeicher (Datenbanken, Objekt-Storage, Block-Volumes, Backups) MÜSSEN mit
kundenverwalteten KMS-Schlüsseln (CMK) verschlüsselt sein.
RDS-Instanzen MÜSSEN storage_encrypted = true gesetzt haben.
KMS-Schlüssel MÜSSEN automatische Rotation (enable_key_rotation = true) aktiviert haben.
S3-Buckets MÜSSEN Server-Side-Encryption mit einem CMK konfiguriert haben.
AWS-verwaltete Standardschlüssel (aws/s3, aws/rds) sind für produktive Workloads
mit sensiblen Daten NICHT ausreichend.
Rationale
Verschlüsselung ruhender Daten verhindert, dass physisch oder logisch abgerufene Rohdaten (aus Backup-Leaks, falsch konfigurierten Snapshots oder Insider-Zugriffen) verwertbar sind. Kundenverwaltete Schlüssel bieten entscheidende Vorteile gegenüber AWS-verwalteten Schlüsseln: vollständige Kontrolle über den Schlüssel-Lifecycle, revozierbare Zugriffsrechte, detailliertes Audit-Logging jedes Schlüsselnutzungsereignisses und die Möglichkeit, Daten durch Schlüssel- löschung unwiderruflich unzugänglich zu machen. Automatische Schlüsselrotation begrenzt das Kryptomaterial-Exposition-Fenster ohne operativen Aufwand.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Datenleck durch Storage-Fehlkonfiguration |
Unverschlüsselte Snapshots oder Backups, die versehentlich öffentlich zugänglich sind, liefern Angreifenden direkt verwertbare Klardaten. |
Insider-Datenzugriff |
Mitarbeitende mit physischem oder logischem Storage-Zugriff (Cloud-Provider-Mitarbeitende, privilegierte Admins) können unverschlüsselte Daten lesen. |
Regulatorische Nichteinhaltung |
DSGVO Art. 32 und BSI C5 erwarten Verschlüsselung ruhender Daten; fehlende CMK-Nutzung ist ein Audit-Finding. |
Verlust von Schlüsselkontrolle |
Ohne CMK hat die Organisation keine Möglichkeit, Datenzugriff nach einer Kompromittierung sofort zu sperren. |
Anforderung
-
Alle RDS-Instanzen MÜSSEN
storage_encrypted = truemit einem CMK gesetzt haben. -
Alle KMS-Schlüssel MÜSSEN
enable_key_rotation = trueaktiviert haben. -
Alle S3-Buckets, die produktive oder sensible Daten enthalten, MÜSSEN Server-Side-Encryption mit CMK konfiguriert haben.
-
EBS-Volumes von Produktions-Instanzen MÜSSEN verschlüsselt sein.
-
Backups und Snapshots MÜSSEN denselben Verschlüsselungsstandard wie die Quelldaten einhalten.
-
KMS-Key-Policies MÜSSEN explizit auf benötigte Principals beschränkt sein – kein
Principal: "*".
Implementierungsanleitung
-
CMK-Strategie definieren: Schlüssel-Hierarchie nach Datenkategorie und Umgebung planen (z. B. getrennte CMKs für Prod-RDS, S3-Sensitivdaten, Secrets Manager).
-
KMS-Schlüssel in Terraform erstellen:
aws_kms_keymitenable_key_rotation = trueund restriktiver Key-Policy. -
RDS-Verschlüsselung aktivieren:
storage_encrypted = trueundkms_key_idauf alleaws_db_instance-Ressourcen setzen. -
S3-Bucket-Encryption konfigurieren:
aws_s3_bucket_server_side_encryption_configurationmitaws:kmsund CMK-ARN. -
EBS-Default-Encryption aktivieren: Account-Level-EBS-Verschlüsselung via
aws_ebs_encryption_by_defaulteinschalten. -
KMS-Key-Aliases pflegen: Aussagekräftige Aliases (
alias/prod-rds-cmk) für Nachvollziehbarkeit. -
CloudTrail-KMS-Audit aktivieren:
kms:Decryptundkms:GenerateDataKeyEvents in CloudTrail erfassen und auf Anomalien überwachen.
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Keine oder inkonsistente Verschlüsselung |
Viele Datenspeicher unverschlüsselt; keine einheitliche CMK-Strategie; AWS-Standardschlüssel dort wo vorhanden. |
2 |
AWS-verwaltete Schlüssel flächendeckend |
Alle Datenspeicher verschlüsselt; AWS-managed Keys ( |
3 |
CMK auf allen Produktionsdatenspeichern |
CMKs mit automatischer Rotation auf allen Prod-RDS, S3 und EBS; KMS-Key-Policies restriktiv; CloudTrail-Audit aktiv. |
4 |
CMK-Lifecycle-Management operativ |
Getrennte CMKs pro Datenkategorie; Key-Policy-Reviews quartalsweise; KMS-Nutzungsanomalien mit Alerting. |
5 |
Vollautomatisierte Schlüsselverwaltung mit Compliance-Durchsetzung |
Automatische Erkennung und Remediation nicht-konformer Ressourcen; Data-Sovereignty-Schlüsselstrategie (HSM/CloudHSM für kritische Daten). |
Terraform Checks
waf-sec-030.tf.aws.rds-storage-encrypted
Prüft: RDS-Instanzen müssen mit storage_encrypted = true und einem CMK verschlüsselt sein.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: storage_encrypted = true und kms_key_id = aws_kms_key.rds.arn zu allen aws_db_instance-Ressourcen hinzufügen. Verschlüsselung kann nur beim Erstellen der Instanz aktiviert werden; bestehende unverschlüsselte Instanzen müssen als verschlüsselte Snapshots wiederhergestellt werden.
waf-sec-030.tf.aws.kms-key-rotation
Prüft: Alle KMS-Schlüssel müssen automatische Rotation aktiviert haben.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: enable_key_rotation = true zu allen aws_kms_key-Ressourcen hinzufügen. AWS rotiert symmetrische CMKs jährlich automatisch ohne Auswirkung auf bestehende verschlüsselte Daten.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Terraform-Konfiguration aller KMS-Schlüssel mit |
Config |
✅ Pflicht |
AWS Config Rule |
Governance |
Optional |
CMK-Strategie-Dokument mit Schlüssel-Hierarchie, Rotationsintervallen und Key-Policy-Vorgaben. |
Process |
Optional |
KMS-Key-Policy-Review-Protokolle (quartalsweise) mit Dokumentation ungenutzter Key-Grants. |