Bagaimana Amazon EMR menggunakan AWS KMS - AWS Key Management Service

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

Bagaimana Amazon EMR menggunakan AWS KMS

Saat menggunakan EMR klaster Amazon, Anda dapat mengonfigurasi klaster untuk mengenkripsi data saat istirahat sebelum menyimpannya ke lokasi penyimpanan persisten. Anda dapat mengenkripsi data saat istirahat di EMR File System (EMRFS), pada volume penyimpanan node cluster, atau keduanya. Untuk mengenkripsi data saat istirahat, Anda dapat menggunakan file AWS KMS key. Topik berikut menjelaskan bagaimana EMR cluster Amazon menggunakan KMS kunci untuk mengenkripsi data saat istirahat.

penting

Amazon hanya EMR mendukung KMSkunci simetris. Anda tidak dapat menggunakan KMSkunci asimetris untuk mengenkripsi data saat istirahat di klaster AmazonEMR. Untuk bantuan menentukan apakah KMS kunci simetris atau asimetris, lihat. Identifikasi berbagai jenis kunci

EMRCluster Amazon juga mengenkripsi data dalam perjalanan, yang berarti cluster mengenkripsi data sebelum mengirimnya melalui jaringan. Anda tidak dapat menggunakan KMS kunci untuk mengenkripsi data dalam perjalanan. Untuk informasi selengkapnya, lihat Enkripsi Data Dalam Transit di Panduan EMR Manajemen Amazon.

Untuk informasi selengkapnya tentang semua opsi enkripsi yang tersedia di AmazonEMR, lihat Opsi Enkripsi di Panduan EMR Manajemen Amazon.

Mengenkripsi data pada sistem EMR file () EMRFS

EMRCluster Amazon menggunakan dua sistem file terdistribusi:

  • Sistem File Terdistribusi Hadoop ()HDFS. HDFSenkripsi tidak menggunakan KMS kunci masuk AWS KMS.

  • Sistem EMR File (EMRFS). EMRFSadalah implementasi HDFS yang memungkinkan EMR cluster Amazon untuk menyimpan data di Amazon Simple Storage Service (Amazon S3). EMRFSmendukung empat opsi enkripsi, dua di antaranya menggunakan KMS kunci masuk AWS KMS. Untuk informasi selengkapnya tentang keempat opsi EMRFS enkripsi, lihat Opsi Enkripsi di Panduan EMR Manajemen Amazon.

Dua opsi EMRFS enkripsi yang menggunakan KMS kunci menggunakan fitur enkripsi berikut yang ditawarkan oleh Amazon S3:

Saat mengonfigurasi EMR klaster Amazon untuk mengenkripsi data EMRFS dengan KMS kunci, Anda memilih KMS kunci yang ingin digunakan Amazon S3 atau kluster EMR Amazon. Dengan SSE -KMS, Anda dapat memilih Kunci yang dikelola AWS untuk Amazon S3 dengan alias aws/s3, atau kunci terkelola pelanggan simetris yang Anda buat. Dengan enkripsi sisi klien, Anda harus memilih kunci terkelola pelanggan simetris yang Anda buat. Saat memilih kunci yang dikelola pelanggan, Anda harus memastikan bahwa EMR klaster Amazon Anda memiliki izin untuk menggunakan KMS kunci tersebut. Untuk informasi selengkapnya, lihat Menggunakan AWS KMS keys enkripsi di Panduan EMR Manajemen Amazon.

Untuk enkripsi sisi server dan sisi klien, kunci yang Anda pilih adalah KMS kunci root dalam alur kerja enkripsi amplop. Data dienkripsi dengan kunci data unik yang dienkripsi di bawah kunci masuk. KMS AWS KMS Data terenkripsi dan salinan terenkripsi dari kunci datanya disimpan bersama sebagai objek terenkripsi tunggal dalam bucket S3. Untuk informasi lebih lanjut tentang cara kerjanya, lihat topik berikut.

Proses untuk mengenkripsi data dengan - EMRFS SSE KMS

Saat Anda mengonfigurasi EMR klaster Amazon untuk menggunakan SSE -KMS, proses enkripsi berfungsi seperti ini:

  1. Klaster mengirimkan data ke Amazon S3 untuk penyimpanan dalam bucket S3.

  2. Amazon S3 mengirimkan GenerateDataKeypermintaan ke AWS KMS, menentukan ID kunci KMS kunci yang Anda pilih saat Anda mengonfigurasi cluster untuk digunakan -. SSE KMS Permintaan mencakup konteks enkripsi; untuk informasi selengkapnya, lihat Konteks enkripsi.

  3. AWS KMS menghasilkan kunci enkripsi data unik (kunci data) dan kemudian mengirimkan dua salinan kunci data ini ke Amazon S3. Satu salinan tidak terenkripsi (plaintext), dan salinan lainnya dienkripsi di bawah kunci. KMS

  4. Amazon S3 menggunakan kunci data plaintext untuk mengenkripsi data yang diterima di langkah 1, kemudian menghapus kunci data plaintext dari memori sesegera mungkin setelah digunakan.

  5. Amazon S3 menyimpan data terenkripsi dan salinan terenkripsi dari kunci data bersama sebagai objek terenkripsi tunggal dalam bucket S3.

Proses dekripsi bekerja seperti ini:

  1. Klaster mengajukan permintaan objek data yang dienkripsi dari bucket S3.

  2. Amazon S3 mengekstrak kunci data terenkripsi dari objek S3, dan kemudian mengirimkan kunci data terenkripsi dengan permintaan Dekripsi. AWS KMS Permintaan mencakup konteks enkripsi.

  3. AWS KMS mendekripsi kunci data terenkripsi menggunakan KMS kunci yang sama yang digunakan untuk mengenkripsinya, dan kemudian mengirimkan kunci data yang didekripsi (teks biasa) ke Amazon S3.

  4. Amazon S3 menggunakan kunci data plaintext untuk mendekripsi data yang dienkripsi, kemudian menghapus kunci data plaintext dari memori sesegera mungkin setelah digunakan.

  5. Amazon S3 mengirimkan data didekripsi ke klaster.

Proses untuk mengenkripsi data dengan - EMRFS CSE KMS

Saat Anda mengonfigurasi EMR klaster Amazon untuk menggunakan CSE -KMS, proses enkripsi berfungsi seperti ini:

  1. Saat siap untuk menyimpan data di Amazon S3, klaster mengirimkan GenerateDataKeypermintaan ke AWS KMS, menentukan ID kunci kunci yang Anda pilih saat Anda mengonfigurasi cluster yang akan digunakan -. KMS CSE KMS Permintaan mencakup konteks enkripsi; untuk informasi selengkapnya, lihat Konteks enkripsi.

  2. AWS KMS menghasilkan kunci enkripsi data unik (kunci data) dan kemudian mengirimkan dua salinan kunci data ini ke cluster. Satu salinan tidak terenkripsi (plaintext), dan salinan lainnya dienkripsi di bawah kunci. KMS

  3. Klaster menggunakan kunci data plaintext untuk mengenkripsi data, kemudian menghapus kunci data plaintext dari memori sesegera mungkin setelah digunakan.

  4. Klaster mengombinasikan data terenkripsi dan salinan terenkripsi dari kunci data bersama sebagai objek terenkripsi tunggal.

  5. Klaster mengirimkan objek dienkripsi ke Amazon S3 untuk penyimpanan.

Proses dekripsi bekerja seperti ini:

  1. Klaster mengajukan permintaan objek data yang dienkripsi dari bucket S3.

  2. Amazon S3 mengirimkan objek terenkripsi ke klaster.

  3. Cluster mengekstrak kunci data terenkripsi dari objek terenkripsi, dan kemudian mengirimkan kunci data terenkripsi dengan permintaan Dekripsi. AWS KMS Permintaan mencakup konteks enkripsi.

  4. AWS KMS mendekripsi kunci data terenkripsi menggunakan KMS kunci yang sama yang digunakan untuk mengenkripsinya, dan kemudian mengirimkan kunci data yang didekripsi (plaintext) ke cluster.

  5. Klaster menggunakan kunci data plaintext untuk mendekripsi data terenkripsi, kemudian menghapus kunci data plaintext dari memori sesegera mungkin setelah digunakan.

Mengenkripsi data pada volume penyimpanan simpul klaster

EMRCluster Amazon adalah kumpulan instans Amazon Elastic Compute Cloud (AmazonEC2). Setiap instans dalam klaster disebut simpul klaster atau simpul. Setiap node dapat memiliki dua jenis volume penyimpanan: volume penyimpanan instans, dan volume Amazon Elastic Block Store (AmazonEBS). Anda dapat mengkonfigurasi cluster untuk menggunakan Linux Unified Key Setup (LUKS) untuk mengenkripsi kedua jenis volume penyimpanan pada node (tetapi bukan volume boot setiap node). Ini disebut enkripsi disk lokal.

Saat Anda mengaktifkan enkripsi disk lokal untuk sebuah cluster, Anda dapat memilih untuk mengenkripsi LUKS kunci dengan KMS kunci masuk AWS KMS. Anda harus memilih kunci yang dikelola pelanggan yang Anda buat; Anda tidak dapat menggunakan Kunci yang dikelola AWS. Jika Anda memilih kunci yang dikelola pelanggan, Anda harus memastikan bahwa EMR klaster Amazon Anda memiliki izin untuk menggunakan KMS kunci tersebut. Untuk informasi selengkapnya, lihat Menggunakan AWS KMS keys enkripsi di Panduan EMR Manajemen Amazon.

Saat Anda mengaktifkan enkripsi disk lokal menggunakan KMS kunci, proses enkripsi berfungsi seperti ini:

  1. Ketika setiap node cluster diluncurkan, ia mengirimkan GenerateDataKeypermintaan ke AWS KMS, menentukan ID kunci dari KMS kunci yang Anda pilih ketika Anda mengaktifkan enkripsi disk lokal untuk cluster.

  2. AWS KMS menghasilkan kunci enkripsi data unik (kunci data) dan kemudian mengirimkan dua salinan kunci data ini ke node. Satu salinan tidak terenkripsi (plaintext), dan salinan lainnya dienkripsi di bawah kunci. KMS

  3. Node menggunakan versi base64 yang dikodekan dari kunci data plaintext sebagai kata sandi yang melindungi kunci. LUKS Simpul menyimpan salinan terenkripsi dari kunci data pada volume boot.

  4. Jika node reboot, node reboot mengirimkan kunci data terenkripsi dengan permintaan Dekripsi. AWS KMS

  5. AWS KMS mendekripsi kunci data terenkripsi menggunakan KMS kunci yang sama yang digunakan untuk mengenkripsinya, dan kemudian mengirimkan kunci data yang didekripsi (plaintext) ke node.

  6. Node menggunakan versi base64 yang dikodekan dari kunci data plaintext sebagai kata sandi untuk membuka kunci. LUKS

Konteks enkripsi

Setiap AWS layanan yang terintegrasi dengan AWS KMS dapat menentukan konteks enkripsi ketika layanan menggunakan AWS KMS untuk menghasilkan kunci data atau untuk mengenkripsi atau mendekripsi data. Konteks enkripsi adalah informasi otentikasi tambahan yang AWS KMS digunakan untuk memeriksa integritas data. Ketika layanan menentukan konteks enkripsi untuk operasi enkripsi, itu harus menentukan konteks enkripsi yang sama untuk operasi dekripsi yang sesuai atau dekripsi akan gagal. Konteks enkripsi juga ditulis ke file AWS CloudTrail log, yang dapat membantu Anda memahami mengapa KMS kunci tertentu digunakan.

Bagian berikut menjelaskan konteks enkripsi yang digunakan dalam setiap skenario EMR enkripsi Amazon yang menggunakan KMS kunci.

Konteks enkripsi untuk EMRFS enkripsi dengan SSE - KMS

Dengan SSE -KMS, EMR cluster Amazon mengirimkan data ke Amazon S3, dan kemudian Amazon S3 menggunakan KMS kunci untuk mengenkripsi data sebelum menyimpannya ke bucket S3. Dalam hal ini, Amazon S3 menggunakan Amazon Resource Name (ARN) dari objek S3 sebagai konteks enkripsi dengan masing-masing permintaan GenerateDataKeydan Dekripsi yang dikirimkannya. AWS KMS Contoh berikut menunjukkan JSON representasi konteks enkripsi yang digunakan Amazon S3.

{ "aws:s3:arn" : "arn:aws:s3:::S3_bucket_name/S3_object_key" }

Konteks enkripsi untuk EMRFS enkripsi dengan CSE - KMS

Dengan CSE -KMS, EMR cluster Amazon menggunakan KMS kunci untuk mengenkripsi data sebelum mengirimnya ke Amazon S3 untuk penyimpanan. Dalam hal ini, cluster menggunakan Amazon Resource Name (ARN) KMS kunci sebagai konteks enkripsi dengan masing-masing GenerateDataKeydan Decrypt request yang dikirimkan. AWS KMS Contoh berikut menunjukkan JSON representasi dari konteks enkripsi yang digunakan cluster.

{ "kms_cmk_id" : "arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef" }

Konteks enkripsi untuk enkripsi disk lokal dengan LUKS

Saat EMR klaster Amazon menggunakan enkripsi disk lokalLUKS, node cluster tidak menentukan konteks enkripsi dengan permintaan GenerateDataKeydan Dekripsi yang mereka kirim. AWS KMS