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.
Konvertiert CSE-KMS Tabellendaten in SSE-KMS
Wenn Ihre Workflows derzeit CSE-KMS die Verschlüsselung von Tabellendaten verwenden, fahren Sie SSE-KMS mit den folgenden Schritten fort.
Voraussetzung
Wenn Sie Daten immer noch mit einer CSE-KMS Arbeitsgruppe oder mit clientseitigen Einstellungen schreiben, folgen Sie den Schritten unter, Migrieren Sie von zu CSE-KMS SSE-KMS um sie zu aktualisieren. SSE-KMS Dadurch wird verhindert, dass während des Migrationsprozesses neue CSE-KMS verschlüsselte Daten aus anderen Workflows hinzugefügt werden, die möglicherweise in die Tabellen schreiben.
Datenmigrationen
-
Überprüfen Sie, ob für die Tabelle die
has_encrypted_data-Eigenschaft auftruegesetzt ist. Diese Eigenschaft gibt an, dass die Tabelle möglicherweise CSE-KMS verschlüsselte Daten enthält. Es ist jedoch wichtig zu beachten, dass diese Eigenschaft auch in Tabellen ohne tatsächlich CSE-KMS verschlüsselte Daten vorhanden sein kann. -
Für jedes CSE-KMS verschlüsselte Objekt in der Tabelle.
-
Laden Sie das Objekt mit dem S3-Verschlüsselungsclient von S3 herunter und entschlüsseln Sie es. Hier ist ein Beispiel mit AWS Java SDK V2.
Importe
import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.encryption.s3.S3EncryptionClient; import software.amazon.encryption.s3.materials.Keyring; import software.amazon.encryption.s3.materials.KmsDiscoveryKeyring;Code
final Keyring kmsDiscoveryKeyRing = KmsDiscoveryKeyring.builder() .enableLegacyWrappingAlgorithms(true) .build(); final S3EncryptionClient s3EncryptionClient = S3EncryptionClient.builder() .enableLegacyUnauthenticatedModes(true) .keyring(kmsDiscoveryKeyRing) .build(); GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("amzn-s3-demo-bucket") .key("<my-key>") .build(); ResponseInputStream<GetObjectResponse> s3Object = s3EncryptionClient.getObject(getObjectRequest); -
Laden Sie das Objekt mit demselben Namen und derselben SSE-KMS Verschlüsselung auf S3 hoch. Hier ist ein Beispiel mit AWS Java SDK V2.
Importe
import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption;Code
final S3Client s3Client = S3Client.builder() .build(); PutObjectRequest putObjectRequest = PutObjectRequest.builder() .bucket("amzn-s3-demo-bucket") .key("<my-key>") .serverSideEncryption(ServerSideEncryption.AWS_KMS) .ssekmsKeyId("<my-kms-key>") .build(); s3Client.putObject(putObjectRequest, RequestBody.fromBytes(s3Object.readAllBytes()));
-
Nach der Migration
Führen Sie die folgenden Schritte aus, nachdem Sie alle CSE-KMS Dateien in der Tabelle erfolgreich erneut verschlüsselt haben.
-
Entfernen Sie die
has_encrypted_data-Eigenschaft aus der Tabelle. -
Aktualisieren Sie Ihre Workflows so, dass sie einen einfachen S3-Client anstelle eines S3-Verschlüsselungsclients verwenden, und geben Sie dann die SSE-KMS Verschlüsselung für Datenschreibvorgänge an.