View a markdown version of this page

Buat tabel berdasarkan kumpulan data terenkripsi di Amazon S3 - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat tabel berdasarkan kumpulan data terenkripsi di Amazon S3

Athena dapat membaca dan menulis ke tabel yang dataset dasarnya, SSE-S3, SSE-KMS atau dienkripsi. CSE-KMS Bergantung pada opsi enkripsi yang digunakan untuk data tabel dan jenis kueri yang dijalankan, Anda mungkin harus menentukan beberapa properti tabel tambahan untuk membaca dan menulis data terenkripsi.

Membaca SSE-S3/SSE-KMS tabel terenkripsi

Tidak ada properti tabel tambahan yang perlu ditentukan pada pembuatan tabel untuk membaca kumpulan SSE-S3/SSE-KMS data terenkripsi. Amazon S3 menangani dekripsi objek SSE secara otomatis.

Membaca CSE-KMS tabel terenkripsi

Ada dua set properti tabel yang berbeda yang dapat ditentukan agar Athena membaca kumpulan data CSE-KMS terenkripsi,

  • Menggunakan properti encryption_option dan kms_key tabel (Disarankan)

  • Menggunakan properti has_encrypted_data tabel

penting

Jika Anda menggunakan Amazon EMR bersama dengan EMRFS untuk mengunggah file Parket CSE-KMS terenkripsi, Anda harus menonaktifkan unggahan multibagian dengan menyetelnya. fs.s3n.multipart.uploads.enabled false Jika Anda tidak melakukan ini, Athena tidak dapat menentukan panjang file Parquet danHIVE_CANNOT_OPEN_SPLITTerjadi kesalahan. Untuk informasi lebih lanjut, lihat Konfigurasi unggahan multipart untuk Amazon S3 di Amazon EMR.

Menggunakan properti tabel encryption_option dan kms_key

Dalam pernyataan CREATE TABLE, gunakan TBLPROPERTIES klausa yang menentukan encryption_option='CSE_KMS' dankms_key='aws_kms_key_arn', seperti pada contoh berikut.

CREATE EXTERNAL TABLE 'my_encrypted_data' ( `n_nationkey` int, `n_name` string, `n_regionkey` int, `n_comment` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder_with_my_encrypted_data/' TBLPROPERTIES ( 'encryption_option' = 'CSE_KMS', 'kms_key' = 'arn:aws:kms:us-east-1:012345678901:key/my_kms_key')

Ketika properti ini dikonfigurasi,

  • Athena dapat membaca objek CSE-KMS terenkripsi yang dibuat oleh klien enkripsi Amazon S3 V1, V2, atau V3.

  • Athena akan menggunakan AWS KMS kunci kms_key untuk mendekripsi data. CSE-KMS Jika ada objek yang dienkripsi dengan AWS KMS kunci yang berbeda, kueri akan gagal.

  • Athena masih dapat membaca SSE-S3 dan SSE-KMS mengenkripsi objek, meskipun mencampur objek terenkripsi sisi server dan sisi klien tidak disarankan.

Menggunakan properti tabel has_encrypted_data

DalamBUAT TABELpernyataan, gunakanTBLPROPERTIESKlausul yang menentukanhas_encrypted_data='true', seperti dalam contoh berikut.

CREATE EXTERNAL TABLE 'my_encrypted_data' ( `n_nationkey` int, `n_name` string, `n_regionkey` int, `n_comment` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder_with_my_encrypted_data/' TBLPROPERTIES ( 'has_encrypted_data' = 'true')

Ketika properti tabel has_encrypted_data ditentukan,

  • Athena hanya dapat membaca objek CSE-KMS terenkripsi yang dibuat oleh klien enkripsi Amazon S3 V1.

  • Athena akan menyimpulkan AWS KMS kunci yang digunakan untuk mengenkripsi CSE-KMS objek dari metadata objek dan kemudian menggunakan kunci itu untuk mendekripsi objek.

  • Athena masih dapat membaca SSE-S3 dan SSE-KMS mengenkripsi objek, meskipun mencampur objek terenkripsi sisi server dan sisi klien tidak disarankan.

catatan

Kapan encryption_option dan kms_key ditentukan di sampinghas_encrypted_data, properti encryption_option dan kms_key tabel diutamakan, dan diabaikanhas_encrypted_data.

Saat Anda menggunakan konsol Athena untuk membuat tabel menggunakan formulir dan menentukan lokasi tabel, pilih opsi Kumpulan data terenkripsi untuk menambahkan has_encrypted_data='true' properti ke tabel.

Pilih Kumpulan data terenkripsi dalam formulir tambahkan tabel

Dalam daftar tabel konsol Athena, tabel CSE-KMS terenkripsi dengan has_encrypted_data='true' menampilkan ikon berbentuk kunci.

Ikon tabel terenkripsi

Menulis SSE-S3/SSE-KMS/CSE-KMS data terenkripsi

Secara default, file data yang baru dimasukkan akan dienkripsi menggunakan konfigurasi enkripsi hasil kueri yang ditentukan dalam workgroup Athena. Untuk menulis data tabel dengan konfigurasi enkripsi yang berbeda dari konfigurasi enkripsi hasil kueri, Anda harus menambahkan beberapa properti tabel tambahan.

Dalam pernyataan CREATE TABLE, gunakan TBLPROPERTIES klausa yang menentukan encryption_option='SSE_S3 | SSE_KMS | CSE_KMS' dankms_key='aws_kms_key_arn', seperti pada contoh berikut.

CREATE EXTERNAL TABLE 'my_encrypted_data' ( `n_nationkey` int, `n_name` string, `n_regionkey` int, `n_comment` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' LOCATION 's3://amzn-s3-demo-bucket/folder_with_my_encrypted_data/' TBLPROPERTIES ( 'encryption_option' = 'SSE_KMS', 'kms_key' = 'arn:aws:kms:us-east-1:012345678901:key/my_kms_key')

Semua data yang baru dimasukkan akan dienkripsi menggunakan konfigurasi enkripsi yang ditentukan oleh properti tabel daripada menggunakan konfigurasi enkripsi hasil kueri di workgroup.

Pertimbangan dan batasan

Saat menulis dan membaca kumpulan data terenkripsi, pertimbangkan poin-poin berikut.

  • Propertihas_encrypted_data,encryption_option, dan kms_key tabel hanya dapat digunakan dengan tabel Hive.

  • Saat membuat tabel dengan data CSE-KMS terenkripsi, kami sarankan Anda memastikan bahwa semua data dienkripsi dengan kunci yang sama. AWS KMS

  • Saat membuat tabel dengan data CSE-KMS terenkripsi, kami sarankan Anda memastikan bahwa semua data CSE-KMS dienkripsi dan tidak ada campuran objek CSE-KMS non-dan terenkripsi. CSE-KMS