Aktualisierung Ihres Datenmodells - AWS Datenbankverschlüsselung SDK

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktualisierung Ihres Datenmodells

Unsere clientseitige Verschlüsselungsbibliothek wurde in Database Encryption SDK umbenannt. AWS Dieses Entwicklerhandbuch enthält weiterhin Informationen zum DynamoDB Encryption Client.

Wenn Sie das AWS Database Encryption SDK für DynamoDB konfigurieren, geben Sie Attributaktionen an. Beim Verschlüsseln identifiziert das AWS Database Encryption SDK anhand der Attributaktionen, welche Attribute verschlüsselt und signiert, welche Attribute signiert (aber nicht verschlüsselt) und welche ignoriert werden sollen. Sie definieren auch zulässige unsignierte Attribute, um dem Client explizit mitzuteilen, welche Attribute von den Signaturen ausgeschlossen sind. Beim Entschlüsseln verwendet das AWS Database Encryption SDK die erlaubten unsignierten Attribute, die Sie definiert haben, um zu identifizieren, welche Attribute nicht in den Signaturen enthalten sind. Attributaktionen werden nicht im verschlüsselten Element gespeichert und das AWS Database Encryption SDK aktualisiert Ihre Attributaktionen nicht automatisch.

Wählen Sie Ihre Attributaktionen sorgfältig aus. Verwenden Sie im Zweifelsfall Verschlüsseln und signieren. Nachdem Sie das AWS Database Encryption SDK zum Schutz Ihrer Elemente verwendet haben, können Sie ein ENCRYPT_AND_SIGN vorhandenes oder SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT -Attribut nicht mehr in ändernDO_NOTHING. SIGN_ONLY Sie können jedoch ohne Bedenken die folgenden Änderungen vornehmen.

Überlegungen zur durchsuchbaren Verschlüsselung

Bevor Sie Ihr Datenmodell aktualisieren, sollten Sie sorgfältig überlegen, wie sich Ihre Aktualisierungen auf Beacons auswirken könnten, die Sie anhand der Attribute erstellt haben. Nachdem Sie mit einem Beacon neue Datensätze geschrieben haben, können Sie die Konfiguration des Beacons nicht mehr aktualisieren. Sie können die Attributaktionen, die den Attributen zugeordnet sind, die Sie zum Aufbau von Beacons verwendet haben, nicht aktualisieren. Wenn Sie ein vorhandenes Attribut und den zugehörigen Beacon entfernen, können Sie mit diesem Beacon keine vorhandenen Datensätze abfragen. Sie können neue Beacons für neue Felder erstellen, die Sie Ihrem Datensatz hinzufügen, aber Sie können bestehende Beacons nicht so aktualisieren, dass sie das neue Feld aufnehmen.

Überlegungen zu Attributen SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT

Standardmäßig sind die Partitions- und Sortierschlüssel das einzige Attribut, das im Verschlüsselungskontext enthalten ist. Sie könnten erwägen, zusätzliche Felder zu definieren, SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT damit der Anbieter der Branch-Schlüssel-ID für Ihren AWS KMS hierarchischen Schlüsselbund ermitteln kann, welcher Filialschlüssel für die Entschlüsselung aus dem Verschlüsselungskontext erforderlich ist. Weitere Informationen finden Sie unter Lieferant für die Filialschlüssel-ID. Wenn Sie SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribute angeben, müssen auch die Partitions- und Sortierattribute angegeben werdenSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.

Anmerkung

Um die SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT kryptografische Aktion verwenden zu können, müssen Sie Version 3.3 oder höher des AWS Database Encryption SDK verwenden. Stellen Sie die neue Version für alle Lesegeräte bereit, bevor Sie Ihr Datenmodell so aktualisieren, dass es diese enthältSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.

Fügen Sie neue ENCRYPT_AND_SIGNSIGN_ONLY, und SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribute hinzu

Um ein neues ENCRYPT_AND_SIGNSIGN_ONLY, oder SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribut hinzuzufügen, definieren Sie das neue Attribut in Ihren Attributaktionen.

Sie können ein vorhandenes DO_NOTHING Attribut nicht entfernen und es alsENCRYPT_AND_SIGN,SIGN_ONLY, SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT -Attribut wieder hinzufügen.

Verwenden einer Datenklasse mit Anmerkungen

Wenn Sie Ihre Attributaktionen mit a definiert habenTableSchema, fügen Sie das neue Attribut Ihrer annotierten Datenklasse hinzu. Wenn Sie keine Attributaktions-Anmerkung für das neue Attribut angeben, verschlüsselt und signiert der Client das neue Attribut standardmäßig (es sei denn, das Attribut ist Teil des Primärschlüssels). Wenn Sie nur das neue Attribut signieren möchten, müssen Sie das neue Attribut mit der @DynamoDBEncryptionSignAndIncludeInEncryptionContext Anmerkung @DynamoDBEncryptionSignOnly oder hinzufügen.

Verwenden Sie ein Objektmodell

Wenn Sie Ihre Attributaktionen manuell definiert haben, fügen Sie das neue Attribut zu den Attributaktionen in Ihrem Objektmodell hinzu und geben Sie ENCRYPT_AND_SIGNSIGN_ONLY, oder SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT als Attributaktion an.

Entfernen Sie vorhandene Attribute

Wenn Sie entscheiden, dass Sie ein Attribut nicht mehr benötigen, können Sie das Schreiben von Daten in dieses Attribut beenden oder es formell aus Ihren Attributaktionen entfernen. Wenn Sie aufhören, neue Daten in ein Attribut zu schreiben, wird das Attribut weiterhin in Ihren Attributaktionen angezeigt. Dies kann hilfreich sein, wenn Sie das Attribut in future erneut verwenden müssen. Wenn Sie das Attribut formal aus Ihren Attributaktionen entfernen, wird es nicht aus Ihrem Datensatz entfernt. Ihr Datensatz wird weiterhin Elemente enthalten, die dieses Attribut enthalten.

Um ein vorhandenesENCRYPT_AND_SIGN, SIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT, oder DO_NOTHING Attribut formell zu entfernen, aktualisieren Sie Ihre Attributaktionen.

Wenn Sie ein DO_NOTHING Attribut entfernen, dürfen Sie dieses Attribut nicht aus Ihren zulässigen Attributen ohne Vorzeichen entfernen. Auch wenn Sie keine neuen Werte mehr in dieses Attribut schreiben, muss der Client trotzdem wissen, dass das Attribut vorzeichenlos ist, um vorhandene Elemente lesen zu können, die das Attribut enthalten.

Verwenden einer Datenklasse mit Anmerkungen

Wenn Sie Ihre Attributaktionen mit a definiert habenTableSchema, entfernen Sie das Attribut aus Ihrer annotierten Datenklasse.

Verwenden Sie ein Objektmodell

Wenn Sie Ihre Attributaktionen manuell definiert haben, entfernen Sie das Attribut aus den Attributaktionen in Ihrem Objektmodell.

Ändern Sie ein vorhandenes ENCRYPT_AND_SIGN Attribut in SIGN_ONLY oder SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT

Um ein vorhandenes ENCRYPT_AND_SIGN Attribut in SIGN_ONLY oder zu ändernSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT, müssen Sie Ihre Attributaktionen aktualisieren. Nachdem Sie das Update bereitgestellt haben, kann der Client vorhandene Werte, die in das Attribut geschrieben wurden, verifizieren und entschlüsseln, signiert jedoch nur neue Werte, die in das Attribut geschrieben wurden.

Anmerkung

Überlegen Sie sich sorgfältig Ihre Sicherheitsanforderungen, bevor Sie ein vorhandenes ENCRYPT_AND_SIGN Attribut in SIGN_ONLY oder SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT ändern. Jedes Attribut, das vertrauliche Daten speichern kann, sollte verschlüsselt werden.

Verwendung einer annotierten Datenklasse

Wenn Sie Ihre Attributaktionen mit einem definiert habenTableSchema, aktualisieren Sie das vorhandene Attribut, sodass die @DynamoDBEncryptionSignAndIncludeInEncryptionContext Anmerkung @DynamoDBEncryptionSignOnly oder in Ihre annotierte Datenklasse aufgenommen wird.

Verwenden Sie ein Objektmodell

Wenn Sie Ihre Attributaktionen manuell definiert haben, aktualisieren Sie die dem vorhandenen Attribut zugeordnete Attributaktion von ENCRYPT_AND_SIGN bis SIGN_ONLY oder SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT in Ihrem Objektmodell.

Ändern Sie ein vorhandenes SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribut SIGN_ONLY oder ENCRYPT_AND_SIGN

Um ein vorhandenes SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribut SIGN_ONLY oder ein Attribut in zu ändernENCRYPT_AND_SIGN, müssen Sie Ihre Attributaktionen aktualisieren. Nachdem Sie das Update bereitgestellt haben, kann der Client die vorhandenen Werte überprüfen, die in das Attribut geschrieben wurden, und verschlüsselt und signiert neue Werte, die in das Attribut geschrieben wurden.

Verwenden einer Datenklasse mit Anmerkungen

Wenn Sie Ihre Attributaktionen mit einem definiert habenTableSchema, entfernen Sie die @DynamoDBEncryptionSignAndIncludeInEncryptionContext Anmerkung @DynamoDBEncryptionSignOnly oder aus dem vorhandenen Attribut.

Verwenden eines Objektmodells

Wenn Sie Ihre Attributaktionen manuell definiert haben, aktualisieren Sie die Attributaktion, die dem Attribut von SIGN_ONLY oder SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT nach zugeordnet ist, ENCRYPT_AND_SIGN in Ihrem Objektmodell.

Fügen Sie ein neues DO_NOTHING Attribut hinzu

Um das Fehlerrisiko beim Hinzufügen eines neuen DO_NOTHING Attributs zu verringern, empfehlen wir, bei der Benennung Ihrer DO_NOTHING Attribute ein eindeutiges Präfix anzugeben und dieses Präfix dann zu verwenden, um Ihre zulässigen Attribute ohne Vorzeichen zu definieren.

Sie können kein ENCRYPT_AND_SIGN vorhandenes SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribut oder aus Ihrer annotierten Datenklasse entfernen und das Attribut dann wieder als DO_NOTHING Attribut hinzufügen. SIGN_ONLY Sie können nur völlig neue DO_NOTHING Attribute hinzufügen.

Die Schritte, die Sie unternehmen, um ein neues DO_NOTHING Attribut hinzuzufügen, hängen davon ab, ob Sie Ihre zulässigen Attribute ohne Vorzeichen explizit in einer Liste oder mit einem Präfix definiert haben.

Verwenden Sie ein zulässiges Präfix für vorzeichenlose Attribute

Wenn Sie Ihre Attributaktionen mit einem definiert habenTableSchema, fügen Sie das neue DO_NOTHING Attribut mit der Anmerkung zu Ihrer annotierten Datenklasse hinzu. @DynamoDBEncryptionDoNothing Wenn Sie Ihre Attributaktionen manuell definiert haben, aktualisieren Sie Ihre Attributaktionen, sodass sie das neue Attribut enthalten. Achten Sie darauf, das neue Attribut explizit mit der DO_NOTHING Attributaktion zu konfigurieren. Sie müssen dasselbe eindeutige Präfix in den Namen des neuen Attributs aufnehmen.

Verwenden Sie eine Liste mit zulässigen Attributen ohne Vorzeichen
  1. Fügen Sie das neue DO_NOTHING Attribut zu Ihrer Liste der zulässigen unsignierten Attribute hinzu und stellen Sie die aktualisierte Liste bereit.

  2. Stellen Sie die Änderung aus Schritt 1 bereit.

    Sie können erst mit Schritt 3 fortfahren, wenn die Änderung auf alle Hosts übertragen wurde, die diese Daten lesen müssen.

  3. Fügen Sie das neue DO_NOTHING Attribut zu Ihren Attributaktionen hinzu.

    1. Wenn Sie Ihre Attributaktionen mit einem definiert habenTableSchema, fügen Sie das neue DO_NOTHING Attribut mit der @DynamoDBEncryptionDoNothing Anmerkung zu Ihrer annotierten Datenklasse hinzu.

    2. Wenn Sie Ihre Attributaktionen manuell definiert haben, aktualisieren Sie Ihre Attributaktionen, sodass sie das neue Attribut enthalten. Achten Sie darauf, das neue Attribut explizit mit der DO_NOTHING Attributaktion zu konfigurieren.

  4. Stellen Sie die Änderung aus Schritt 3 bereit.

Ändern Sie ein vorhandenes SIGN_ONLY Attribut in SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT

Um ein vorhandenes SIGN_ONLY Attribut zu ändernSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT, müssen Sie Ihre Attributaktionen aktualisieren. Nachdem Sie das Update bereitgestellt haben, kann der Client die vorhandenen Werte überprüfen, die in das Attribut geschrieben wurden, und signiert weiterhin neue Werte, die in das Attribut geschrieben wurden. Neue Werte, die in das Attribut geschrieben werden, werden in den Verschlüsselungskontext aufgenommen.

Wenn Sie SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribute angeben, müssen auch die Partitions- und Sortierattribute angegeben werdenSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT.

Verwenden Sie eine annotierte Datenklasse

Wenn Sie Ihre Attributaktionen mit a definiert habenTableSchema, aktualisieren Sie die dem Attribut zugeordnete Attributaktion von @DynamoDBEncryptionSignOnly bis@DynamoDBEncryptionSignAndIncludeInEncryptionContext.

Verwenden Sie ein Objektmodell

Wenn Sie Ihre Attributaktionen manuell definiert haben, aktualisieren Sie die dem Attribut zugeordnete Attributaktion von SIGN_ONLY bis SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT in Ihrem Objektmodell.

Ändern Sie ein vorhandenes SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribut in SIGN_ONLY

Um ein vorhandenes SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribut zu ändernSIGN_ONLY, müssen Sie Ihre Attributaktionen aktualisieren. Nachdem Sie das Update bereitgestellt haben, kann der Client die vorhandenen Werte überprüfen, die in das Attribut geschrieben wurden, und signiert weiterhin neue Werte, die in das Attribut geschrieben wurden. Neue Werte, die in das Attribut geschrieben werden, werden nicht in den Verschlüsselungskontext aufgenommen.

Bevor Sie ein vorhandenes SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Attribut in ändernSIGN_ONLY, sollten Sie sorgfältig abwägen, wie sich Ihre Aktualisierungen auf die Funktionalität Ihres Branch Key ID-Anbieters auswirken könnten.

Verwenden einer Datenklasse mit Anmerkungen

Wenn Sie Ihre Attributaktionen mit a definiert habenTableSchema, aktualisieren Sie die dem Attribut zugeordnete Attributaktion von @DynamoDBEncryptionSignAndIncludeInEncryptionContext bis@DynamoDBEncryptionSignOnly.

Verwenden Sie ein Objektmodell

Wenn Sie Ihre Attributaktionen manuell definiert haben, aktualisieren Sie die dem Attribut zugeordnete Attributaktion von SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT bis SIGN_ONLY in Ihrem Objektmodell.