5

DynamoDB: Können wir die Verschlüsselung und die Replikation über mehrere Regionen hinweg zusammen verwenden?DynamoDB: Können wir Verschlüsselung und bereichsübergreifende Replikation zusammen verwenden?

Wir evaluieren DynamoDB für unsere neue Anwendung. Unsere Anforderungen sind:

  • Datenverschlüsselung in Ruhe
  • Kreuz-Region Replikation für Disaster Recovery. Unsere App in einer Region muss sich nur auf Services in dieser Region verlassen

Unsere Anforderungen können separat mit der Verwendung von Java-Bibliotheken erfüllt werden, die von AWS bereitgestellt werden. Die Lösungen sind:

Wir sind aber nicht sicher, ob diese Lösungen zusammen arbeiten können. Wir sind besorgt, dass wir keine replizierten Datensätze überregional entschlüsseln können. Die clientseitige Verschlüsselungslösung empfiehlt, eine Schlüsselhierarchie mit einem KMS-verwalteten Schlüssel im Stammverzeichnis einzurichten. KMS ist regionsspezifisch, sodass wir Datensätze nicht entschlüsseln können, wenn wir sie in eine andere Region replizieren. Der Verschlüsselungsschlüssel ist in einer anderen Region nicht verfügbar.

Die Fragen sind:

  • es wahr ist, dass die Entschlüsselung oder Quer Region Datensätze repliziert ist unmöglich, wenn der Verschlüsselungsschlüssel in KMS ist?
  • Gibt es einen empfohlenen Ansatz zum Replizieren verschlüsselter DynamoDB-Datensätze? Hat jemand das schon mal gemacht?
  • Gibt es Alternativen, die wir untersuchen sollten?
+0

Ich wähle diese Frage als Wegthema zu schließen. Ich bin mir nicht sicher, aber vielleicht [dba] (http://dba.stackexchange.com/) ist eine bessere Seite, um dies zu fragen. –

+0

Abhängig vom Zeitrahmen, in dem Sie die Datenbank wiederherstellen müssen, können Sie versuchen, eine Sicherung auf S3 durchzuführen und diese zu replizieren. http://stackoverflow.com/questions/23510704/using-amazon-data-pipeline-to-backup-dynamodb-data-to-s3 – BillMan

Antwort

5

Sie haben Recht. Das Setup wird nicht funktionieren, da KMS-Schlüssel nicht über Regionen gemeinsam genutzt werden können.

Angenommen, Sie Daten aus dem Bereich R1 zu R2 replizieren, die jeweils KMS-Schlüssel K1 und K2 haben. Ich kann folgende Alternativen vorschlagen:

  1. die Bibliothek etwas ändern, so dass sie Daten von R1 dechiffriert mit K1 und K2 wieder verschlüsselt verwenden, während der Replikation. Sie würden sich für die Klasse DynamoDBStreamsRecordTransformer interessieren.
  2. Importieren Sie Ihr eigenes Schlüsselmaterial in R1 und R2. Überprüfen Sie die relevante Dokumentation here.
    • Caveat: Könnte betriebsschmerzhaft sein, je nach Anwendungsfall.

aktualisieren: Ihre Gedanken zu Hinzufügen, so dass es jemand auf diese Frage helfen kann, in Zukunft zu stolpern:

  1. Erstellen Sie Ihre eigenen Klar-Daten (möglicherweise unter Verwendung der KMS-API GenerateRandom), verschlüsseln Sie sie mit K1 und K2 (unter Verwendung der API Encrypt) und speichern Sie die resultierenden Chiffretexte zusammen mit Ihren Daten in beiden Regionen.
    • Vorbehalt: Übergreifende Anrufe erfordern jedes Update. In Option 1 sind die Aktualisierungen asynchron.
+0

Vielen Dank! Interessante Idee zum DynamoDBStreamsRecordTransformer. Ich werde das genauer untersuchen. Vereinbart, dass der Umgang mit eigenem Schlüsselmaterial operativ schwierig ist. Es gibt eine weitere Möglichkeit, die Verschlüsselungsbibliothek so zu hacken, dass sie zwei Kopien des Datenverschlüsselungsschlüssels speichert - eine Kopie wird mit K1 verschlüsselt und die andere mit K2 verschlüsselt. Dann verwendet der Code in R1 K1, um die erste Kopie des Datenverschlüsselungsschlüssels zu entschlüsseln, und der Code in R2 verwendet K2, um die zweite Kopie des Datenverschlüsselungsschlüssels zu entschlüsseln. Der Code in beiden Regionen kann dann die Daten entschlüsseln. – ez121sl

+0

das funktioniert nur, wenn * Sie * einen Klartext-Datenschlüssel für KMS bereitstellen kann und einen verschlüsselten Datenschlüssel zurückgibt. unterstützt es das? Ich sehe nicht so etwas hier: http://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html –

+0

oh ja, das kann auch funktionieren –

Verwandte Themen