Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Se i tuoi flussi di lavoro attualmente utilizzano CSE-KMS per la crittografia dei dati delle tabelle, passa a SSE-KMS con i seguenti passaggi.
Prerequisito
Se continui a scrivere dati utilizzando un gruppo di lavoro CSE-KMS o impostazioni lato client, segui i passaggi indicati per aggiornarli a SSE-KMS. Esegui la migrazione da CSE-KMS a SSE-KMS Ciò impedisce l'aggiunta di nuovi dati crittografati CSE-KMS durante il processo di migrazione da qualsiasi altro flusso di lavoro che potrebbe scrivere nelle tabelle.
Migrazione dei dati
-
Controlla se la proprietà della tabella è impostata su.
has_encrypted_data
true
Questa proprietà specifica che la tabella potrebbe contenere dati crittografati CSE-KMS. Tuttavia, è importante notare che questa proprietà potrebbe essere presente anche su tabelle prive di dati crittografati CSE-KMS effettivi.-
Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/
. -
Scegli Launch query editor.
-
Sul lato sinistro dell'editor, in Database, scegli il database su cui vuoi interrogare.
-
Nell'editor di query, esegui la seguente query per vedere il valore impostato sulla
has_encrypted_data table
proprietà.SHOW TBLPROPERTIES
<table_name>
('has_encrypted_data');
-
Per ogni oggetto crittografato CSE-KMS nella tabella.
-
Scarica l'oggetto da S3 utilizzando il client di crittografia S3 e decriptalo. Ecco un esempio con AWS Java SDK V2.
Importazioni
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;
Codice
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); -
Carica l'oggetto su S3 con lo stesso nome e la crittografia SSE-KMS. Ecco un esempio con AWS Java SDK V2.
Importazioni
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;
Codice
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()));
-
Dopo la migrazione
Dopo aver ricrittografato con successo tutti i file CSE-KMS nella tabella, effettuate le seguenti operazioni.
-
Rimuove la proprietà dalla tabella.
has_encrypted_data
-
Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/
. -
Scegli Launch query editor.
-
Sul lato sinistro dell'editor, in Database, scegli il database su cui vuoi interrogare.
-
Nell'editor di query, esegui la seguente query per la tua tabella.
ALTER TABLE
<database-name>
.<table-name>
UNSET TBLPROPERTIES ('has_encrypted_data')
-
Aggiorna i flussi di lavoro per utilizzare un client S3 di base anziché un client di crittografia S3, quindi specifica la crittografia SSE-KMS per le scritture dei dati.