So migrieren und implementieren Sie dasAWS Encryption SDK - AWS Encryption 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.

So migrieren und implementieren Sie dasAWS Encryption SDK

Bei der Migration von einemAWS Encryption SDKVersion vor 1.7.X-xauf Version 2.0.X-xoder später müssen Sie sicher zur Verschlüsselung übergehen mitzentrale Verpflichtung. Andernfalls stößt Ihre Anwendung auf Chiffretexte, die sie nicht entschlüsseln kann. Wenn Sie verwendenAWS KMSMasterschlüssel-Provider müssen Sie auf neue Konstruktoren aktualisieren, die Hauptschlüsselanbieter im strikten Modus oder im Ermittlungsmodus erstellen.

Anmerkung

Dieses Thema richtet sich an Benutzer, die von früheren Versionen derAWS Encryption SDKauf Version 2.0.X-xoder später. Wenn Sie neu in derAWS Encryption SDKkönnen Sie sofort mit der Verwendung der neuesten verfügbaren Version mit den Standardeinstellungen beginnen.

Um eine kritische Situation zu vermeiden, in der Sie verschlüsselten Text, den Sie lesen müssen, nicht entschlüsseln können, empfehlen wir Ihnen, die Migration und Bereitstellung in mehreren unterschiedlichen Phasen durchzuführen. Stellen Sie sicher, dass jede Phase abgeschlossen und vollständig bereitgestellt ist, bevor Sie mit der nächsten Stufe beginnen. Dies ist besonders wichtig für verteilte Anwendungen mit mehreren Hosts.

Phase 1: Aktualisieren Sie Ihre Anwendung auf den neuesten Stand 1.X-xAusführung

Auf die neueste -Version aktualisieren 1.X-xVersion für Ihre Programmiersprache. Testen Sie sorgfältig, stellen Sie Ihre Änderungen bereit und stellen Sie sicher, dass das Update an alle Zielhosts weitergegeben wurde, bevor Sie Phase 2 starten.

Wichtig

Stellen Sie sicher, dass Ihr neuestes 1.X-xVersion ist Version 1.7.X-xoder später derAWS Encryption SDK.

Die neueste 1.X-xVersionen desAWS Encryption SDKsind abwärtskompatibel mit älteren Versionen derAWS Encryption SDKund vorwärtskompatibel mit den Versionen 2.0.X-xund höher Sie enthalten die neuen Funktionen, die in Version 2.0 verfügbar sind.X-x, enthalten aber sichere Standardwerte, die für diese Migration entwickelt wurden. Sie ermöglichen es Ihnen, IhrAWS KMSMaster-Key-Anbieter, falls erforderlich, und um sie vollständig mit Algorithmus-Suiten bereitzustellen, die Chiffretext mit Schlüsselbindung entschlüsseln können.

  • Ersetzen Sie veraltete Elemente, einschließlich Konstruktoren für LegacyAWS KMSMaster-Key-Anbieter. InPython, stellen Sie sicher, dass Sie Verfallswarnungen aktivieren. Codeelemente, die in der letzten Version veraltet sind 1.X-xVersionen wurden aus den Versionen 2.0 entfernt.X-xund höher

  • Legen Sie Ihre Verpflichtungsrichtlinie ausdrücklich aufForbidEncryptAllowDecrypt. Obwohl dies der einzig gültige Wert in der letzten 1 ist.X-x-Versionen ist diese Einstellung erforderlich, wenn Sie die in dieser Version eingeführten APIs verwenden. Es verhindert, dass Ihre Anwendung bei der Migration auf Version 2.0 verschlüsselten Chiffretext ohne Schlüsselbindung ablehnt.X-xund höher Details hierzu finden Sie unter Festlegung Ihrer Verpflichtungspolitik.

  • Wenn SieAWS KMSMaster Key-Anbieter müssen Sie Ihre alten Master-Key-Anbieter auf Master Key-Anbieter aktualisieren, dieStrikter ModusundDiscovery Modus. Dieses Update ist erforderlich fürAWS-Verschlüsselungs-SDK for Java,AWS-Verschlüsselungs-SDK for Python, und derAWSVerschlüsselungs-CLI. Wenn Sie Master Key Provider im Discovery-Modus verwenden, empfehlen wir Ihnen, den Discovery-Filter zu implementieren, der die verwendeten Wrapping-Schlüssel auf bestimmte beschränktAWS-Konten. Dieses Update ist optional, aber es ist einBewährte Methodedie wir empfehlen. Details hierzu finden Sie unter Aktualisierung der AWS KMS Hauptschlüsselanbieter.

  • Wenn SieAWS KMSDiscovery Schlüsselringeempfehlen wir, dass Sie einen Discovery-Filter einbinden, der die bei der Entschlüsselung verwendeten Wrapping-Schlüssel auf bestimmte beschränktAWS-Konten. Dieses Update ist optional, aber es ist einBewährte Methodedie wir empfehlen. Details hierzu finden Sie unter Wird aktualisiertAWS KMSSchlüsselringe.

Phase 2: Aktualisieren Sie Ihre Anwendung auf die neueste Version

Nach der Bereitstellung der neuesten Version 1.X-xVersion erfolgreich auf alle Hosts, Sie können ein Upgrade auf Version 2.0 durchführen.X-xund höher Version 2.0.X-xbeinhaltet wichtige Änderungen für alle früheren Versionen desAWS Encryption SDK. Wenn Sie jedoch die in Phase 1 empfohlenen Codeänderungen vornehmen, können Sie Fehler bei der Migration auf die neueste Version vermeiden.

Stellen Sie vor dem Update auf die neueste Version sicher, dass Ihre Verpflichtungsrichtlinie einheitlich aufForbidEncryptAllowDecrypt. Abhängig von Ihrer Datenkonfiguration können Sie dann in Ihrem eigenen Tempo migrierenRequireEncryptAllowDecryptund dann zur StandardeinstellungRequireEncryptRequireDecrypt. Wir empfehlen eine Reihe von Übergangsschritten wie das folgende Muster.

  1. Begins withCommiteingestellt aufForbidEncryptAllowDecrypt. DieAWS Encryption SDKkann Nachrichten mit Schlüsselbindung entschlüsseln, aber es wird noch nicht mit Schlüsselbindung verschlüsselt.

  2. Wenn Sie bereit sind, aktualisieren Sie Ihre Commit Policy auf.RequireEncryptAllowDecrypt. DieAWS Encryption SDKbeginnt Ihre Daten zu verschlüsselnzentrale Verpflichtung. Es kann Chiffretext mit und ohne Schlüsselbindung entschlüsseln.

    Bevor Sie Ihre Verpflichtungsrichtlinie auf aktualisierenRequireEncryptAllowDecrypt, vergewissern Sie sich, dass Ihre neueste 1.X-xVersion wird auf allen Hosts bereitgestellt, einschließlich Hosts aller Anwendungen, die den von Ihnen erstellten Chiffretext entschlüsseln. Versionen desAWS Encryption SDKvor Version 1.7.X-xkann Nachrichten, die mit Schlüsselbindung verschlüsselt wurden, nicht entschlüsseln.

    Dies ist auch ein guter Zeitpunkt, um Ihrer Anwendung Metriken hinzuzufügen, um zu messen, ob Sie Chiffretext noch ohne wichtige Verpflichtungen verarbeiten. Auf diese Weise können Sie feststellen, wann es sicher ist, Ihre Einstellung für Verpflichtungsrichtlinien aufRequireEncryptRequireDecrypt. Für einige Anwendungen, z. B. solche, die Nachrichten in einer Amazon SQS SQS-Warteschlange verschlüsseln, kann dies bedeuten, dass lange genug gewartet wird, bis der gesamte unter alten Versionen verschlüsselte Chiffretext erneut verschlüsselt oder gelöscht wurde. Für andere Anwendungen, z. B. verschlüsselte S3-Objekte, müssen Sie möglicherweise alle Objekte herunterladen, neu verschlüsseln und erneut hochladen.

  3. Wenn Sie sicher sind, dass Sie keine Nachrichten ohne Schlüsselbindung verschlüsselt haben, können Sie Ihre Verpflichtungsrichtlinie aufRequireEncryptRequireDecrypt. Dieser Wert stellt sicher, dass Ihre Daten immer mit Schlüsselbindung ver- und entschlüsselt werden. Diese Einstellung ist die Standardeinstellung, daher müssen Sie sie nicht explizit festlegen, aber wir empfehlen sie. Eine explizite Einstellung wirdUnterstützt das Debuggingsund alle möglichen Rollbacks, die erforderlich sein könnten, wenn Ihre Anwendung auf verschlüsselten Chiffretext stößt, der ohne Schlüsselbindung verschlüsselt wurde.