

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
<a name="creating-tables-based-on-encrypted-datasets-in-s3"></a>

Athena dapat membaca dan menulis ke tabel yang dataset dasarnya adalah SSE-S3, SSE-KMS, atau CSE-KMS terenkripsi. 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 tabel terenkripsi SSE-S3/SSE-KMS
<a name="reading-sse-s3-sse-kms-encrypted-tables"></a>

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

## Membaca tabel terenkripsi CSE-KMS
<a name="reading-cse-kms-encrypted-tables"></a>

Ada dua set properti tabel yang berbeda yang dapat ditentukan agar Athena membaca kumpulan data terenkripsi CSE-KMS,
+ 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 terenkripsi CSE-KMS, 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 dan**HIVE\$1CANNOT\$1OPEN\$1SPLIT**Terjadi kesalahan. Untuk informasi lebih lanjut, lihat [Konfigurasi unggahan multipart untuk Amazon S3](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-upload-s3.html#Config_Multipart) di *Amazon EMR*.

### Menggunakan properti tabel encryption\$1option dan kms\$1key
<a name="using-encryption-option-and-kms-key-table-properties"></a>

Dalam pernyataan [CREATE TABLE](create-table.md), gunakan `TBLPROPERTIES` klausa yang menentukan `encryption_option='CSE_KMS'` dan`kms_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 terenkripsi CSE-KMS 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 objek terenkripsi SSE-S3 dan SSE-KMS, meskipun mencampur objek terenkripsi sisi server dan sisi klien tidak disarankan.

### Menggunakan properti tabel has\$1encrypted\$1data
<a name="using-has-encrypted-data-table-property"></a>

Dalam[BUAT TABEL](create-table.md)pernyataan, gunakan`TBLPROPERTIES`Klausul yang menentukan`has_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\$1encrypted\$1data ditentukan,
+ Athena hanya dapat membaca objek terenkripsi CSE-KMS yang dibuat oleh klien enkripsi Amazon S3 V1.
+ Athena akan menyimpulkan AWS KMS kunci yang digunakan untuk mengenkripsi objek CSE-KMS dari metadata objek dan kemudian menggunakan kunci itu untuk mendekripsi objek.
+ Athena masih dapat membaca objek terenkripsi SSE-S3 dan SSE-KMS, meskipun mencampur objek terenkripsi sisi server dan sisi klien tidak disarankan.

**catatan**  
Kapan `encryption_option` dan `kms_key` ditentukan di samping`has_encrypted_data`, properti `encryption_option` dan `kms_key` tabel diutamakan, dan diabaikan`has_encrypted_data`.

Saat Anda menggunakan konsol Athena untuk [membuat tabel menggunakan formulir](data-sources-glue-manual-table.md) 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\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/add-table-form-encrypted-option.png)


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

![\[Ikon tabel terenkripsi\]](http://docs.aws.amazon.com/id_id/athena/latest/ug/images/tables-list-encrypted-table-icon.png)


## Menulis data terenkripsi SSE-S3/SSE-KMS/CSE-KMS
<a name="writing-sse-s3-sse-kms-cse-kms-encrypted-data"></a>

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](create-table.md), gunakan `TBLPROPERTIES` klausa yang menentukan `encryption_option='SSE_S3 | SSE_KMS | CSE_KMS'` dan`kms_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
<a name="considerations-and-limitations"></a>

Saat menulis dan membaca kumpulan data terenkripsi, pertimbangkan poin-poin berikut.
+ Properti`has_encrypted_data`,`encryption_option`, dan `kms_key` tabel hanya dapat digunakan dengan tabel Hive.
+ Saat membuat tabel dengan data terenkripsi CSE-KMS, kami sarankan Anda memastikan bahwa semua data dienkripsi dengan kunci yang sama. AWS KMS 
+ Saat membuat tabel dengan data terenkripsi CSE-KMS, kami sarankan Anda memastikan bahwa semua data dienkripsi CSE-KMS dan tidak ada campuran objek terenkripsi dan CSE-KMS. non-CSE-KMS