View a markdown version of this page

Ubah data CSE-KMS tabel menjadi SSE-KMS - Amazon Athena

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

  1. Periksa apakah tabel memiliki has_encrypted_data properti 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.

    Console
    1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

    2. Pilih Luncurkan editor kueri.

    3. Di sisi kiri editor, di bawah Database, pilih database yang ingin Anda kueri.

    4. Di editor Query, jalankan query berikut untuk melihat nilai yang disetel ke has_encrypted_data table properti.

      SHOW TBLPROPERTIES <table_name>('has_encrypted_data');
    CLI

    Mulai Athena query yang menunjukkan nilai has_encrypted_data properti pada tabel seperti yang ditunjukkan pada contoh berikut.

    aws athena start-query-execution \ --query-string "SHOW TBLPROPERTIES <table-name>('has_encrypted_data');" \ --work-group "<my-workgroup>"

    Ambil hasil query untuk memeriksa nilai properti has_encrypted_data tabel untuk tabel seperti yang ditunjukkan pada contoh berikut.

    aws athena get-query-results --query-execution-id <query-execution-id-from-previous-step>
  2. Untuk setiap objek CSE-KMS terenkripsi dalam tabel.

    1. 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);
    2. 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.

  1. Hapus has_encrypted_data properti dari tabel.

    Console
    1. Buka konsol Athena di https://console.aws.amazon.com/athena/.

    2. Pilih Luncurkan editor kueri.

    3. Di sisi kiri editor, di bawah Database, pilih database yang ingin Anda kueri.

    4. Di editor Query, jalankan query berikut untuk tabel Anda.

      ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data')
    CLI

    Jalankan perintah berikut untuk menghapus has_encrypted_data properti dari tabel Anda.

    aws athena start-query-execution \ --query-string "ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data');" \ --work-group "<my-workgroup>"
  2. Perbarui alur kerja Anda untuk menggunakan klien S3 dasar alih-alih klien enkripsi S3 dan kemudian tentukan SSE-KMS enkripsi untuk penulisan data.