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.
CSE-KMS-Tabellendaten in SSE-KMS konvertieren
Wenn Ihre Workflows derzeit CSE-KMS für die Tabellendatenverschlüsselung verwenden, wechseln Sie mit den folgenden Schritten zu SSE-KMS.
Voraussetzung
Wenn Sie Daten immer noch mit einer CSE-KMS-Arbeitsgruppe oder mit clientseitigen Einstellungen schreiben, folgen Sie den Schritten unter Von CSE-KMS zu SSE-KMS migrieren, um sie auf SSE-KMS zu aktualisieren. 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 bei Tabellen vorhanden sein kann, die keine tatsächlich mit CSE-KMS verschlüsselten Daten enthalten. -
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 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, sodass 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.