Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ubah data CSE-KMS tabel menjadi SSE-KMS
Jika alur kerja Anda saat ini digunakan CSE-KMS untuk enkripsi data tabel, transisi ke SSE-KMS dengan langkah-langkah berikut.
Prasyarat
Jika Anda masih menulis data menggunakan pengaturan CSE-KMS workgroup atau sisi klien, ikuti langkah-langkah Migrasi dari ke CSE-KMS SSE-KMS untuk memperbaruinya. SSE-KMS Ini mencegah data CSE-KMS terenkripsi baru ditambahkan selama proses migrasi dari alur kerja lain yang mungkin menulis ke tabel.
Migrasi data
-
Periksa apakah tabel memiliki
has_encrypted_dataproperti yang disetel ketrue. Properti ini menentukan bahwa tabel mungkin berisi CSE-KMS data terenkripsi. Namun, penting untuk dicatat bahwa properti ini dapat hadir bahkan pada tabel tanpa CSE-KMS data terenkripsi yang sebenarnya. -
Untuk setiap objek CSE-KMS terenkripsi dalam tabel.
-
Unduh objek dari S3 menggunakan klien enkripsi S3 dan dekripsi. Berikut adalah contoh dengan AWS Java SDK V2.
Impor
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;Kode
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); -
Unggah objek ke S3 dengan nama dan SSE-KMS enkripsi yang sama. Berikut adalah contoh dengan AWS Java SDK V2.
Impor
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;Kode
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()));
-
Pasca migrasi
Setelah berhasil mengenkripsi ulang semua CSE-KMS file dalam tabel, lakukan langkah-langkah berikut.
-
Hapus
has_encrypted_dataproperti dari tabel. -
Perbarui alur kerja Anda untuk menggunakan klien S3 dasar alih-alih klien enkripsi S3 dan kemudian tentukan SSE-KMS enkripsi untuk penulisan data.