Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Enkripsi transparan dalam HDFS di Amazon EMR
Enkripsi transparan diimplementasikan melalui penggunaan HDFS zona enkripsi, yang merupakan jalur HDFS yang Anda tetapkan. Setiap zona enkripsi memiliki kunci sendiri, yang disimpan di server kunci yang ditentukan menggunakan hdfs-site
klasifikasi konfigurasi.
Dimulai dengan rilis Amazon EMR versi 4.8.0, Anda dapat menggunakan konfigurasi keamanan Amazon EMR untuk mengonfigurasi pengaturan enkripsi data untuk klaster lebih mudah. Konfigurasi keamanan menawarkan pengaturan untuk mengaktifkan keamanan untuk data dalam transit dan data at rest di volume penyimpanan Amazon Elastic Block Store (Amazon EBS) dan EMRFS di Amazon S3. Untuk informasi selengkapnya, lihat Enkripsi data dalam transit dan data yang tersisa di Panduan Pengelolaan Amazon EMR.
Amazon EMR menggunakan KMS Hadoop secara default; Namun, Anda dapat menggunakan KMS lain yang mengimplementasikan operasi API. KeyProvider Setiap file di zona enkripsi HDFS memiliki keunikan kunci enkripsi data tersendiri, yang dienkripsi oleh kunci zona enkripsi. Data HDFS dienkripsi end-to-end (saat istirahat dan dalam perjalanan) ketika data ditulis ke zona enkripsi karena aktivitas enkripsi dan dekripsi hanya terjadi pada klien.
Anda tidak dapat memindahkan file antara zona enkripsi atau dari zona enkripsi ke jalur yang tidak terenkripsi.
Klien NameNode dan HDFS berinteraksi dengan KMS Hadoop (atau KMS alternatif yang Anda konfigurasikan) melalui operasi API. KeyProvider KMS bertanggung jawab untuk menyimpan kunci enkripsi di penyimpanan kunci dukungan. Juga, Amazon EMR memasukkan kebijakan kekuatan terbatas JCE, sehingga Anda dapat membuat kunci dengan panjang yang diinginkan.
Untuk informasi selengkapnya, lihat Enkripsi transparan dalam HDFS
catatan
Di Amazon EMR, KMS melalui HTTPS tidak diaktifkan secara default dengan Hadoop KMS. Untuk informasi selengkapnya tentang cara mengaktifkan KMS melalui HTTPS, lihat dokumentasi Hadoop KMS
Mengonfigurasi enkripsi transparan HDFS
Anda dapat mengonfigurasi enkripsi transparan di Amazon EMR dengan membuat kunci dan menambahkan zona enkripsi. Anda dapat melakukannya dengan dua cara:
-
Menggunakan operasi API konfigurasi Amazon EMR ketika Anda membuat sebuah klaster
-
Menggunakan langkah JAR Hadoop dengan command-runner.jar
-
Login ke klaster simpul utama Hadoop dan menggunakan
hadoop key
danhdfs crypto
klien baris perintah -
Menggunakan REST APIs untuk Hadoop KMS dan HDFS
Untuk informasi lebih lanjut tentang REST APIs, lihat dokumentasi masing-masing untuk Hadoop KMS dan HDFS.
Untuk membuat zona enkripsi serta pembuatan kunci dan klasternya menggunakan CLI
hdfs-encryption-zones
Klasifikasi dalam operasi API konfigurasi memungkinkan Anda menentukan nama kunci dan zona enkripsi saat membuat klaster. Amazon EMR menciptakan kunci ini di Hadoop KMS pada klaster Anda dan mengonfigurasi zona enkripsi.
-
Buat klaster Anda dengan perintah berikut.
aws emr create-cluster --release-label
emr-7.7.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsoncatatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
myConfig.json
:[ { "Classification": "hdfs-encryption-zones", "Properties": { "/myHDFSPath1": "path1_key", "/myHDFSPath2": "path2_key" } } ]
Untuk membuat zona enkripsi dan kunci secara manual pada simpul utama
-
Luncurkan klaster Anda menggunakan rilis Amazon EMR yang lebih besar dari 4.1.0.
-
Connect ke master node dari cluster dengan SSH.
-
Buat kunci dalam Hadoop KMS.
$ hadoop key create path2_key path2_key has been successfully created with options Options{cipher='AES/CTR/NoPadding', bitLength=256, description='null', attributes=null}. KMSClientProvider[http://ip-x-x-x-x.ec2.internal:16000/kms/v1/] has been updated.
penting
Hadoop KMS membutuhkan nama kunci Anda menjadi huruf kecil. Jika Anda menggunakan kunci yang memiliki karakter huruf besar, maka klaster Anda akan gagal selama peluncuran.
-
Buat jalur zona enkripsi di HDFS.
$ hadoop fs -mkdir /myHDFSPath2
-
Buat jalur HDFS zona enkripsi menggunakan kunci yang Anda buat.
$ hdfs crypto -createZone -keyName path2_key -path /myHDFSPath2 Added encryption zone /myHDFSPath2
Untuk membuat zona enkripsi dan kuncinya secara manual menggunakan AWS CLI
-
Tambahkan langkah-langkah untuk membuat KMS kunci dan zona enkripsi secara manual dengan perintah berikut.
aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=CUSTOM_JAR,Name="Create First Hadoop KMS Key",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop key create path1_key\""] \ Type=CUSTOM_JAR,Name="Create First Hadoop HDFS Path",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop fs -mkdir /myHDFSPath1\""] \ Type=CUSTOM_JAR,Name="Create First Encryption Zone",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hdfs crypto -createZone -keyName path1_key -path /myHDFSPath1\""] \ Type=CUSTOM_JAR,Name="Create Second Hadoop KMS Key",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop key create path2_key\""] \ Type=CUSTOM_JAR,Name="Create Second Hadoop HDFS Path",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop fs -mkdir /myHDFSPath2\""] \ Type=CUSTOM_JAR,Name="Create Second Encryption Zone",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hdfs crypto -createZone -keyName path2_key -path /myHDFSPath2\""]
catatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
Pertimbangan untuk enkripsi transparan HDFS
Praktik terbaik adalah untuk membuat zona enkripsi untuk setiap aplikasi di mana mereka dapat menulis file. Selain itu, Anda dapat mengenkripsi semua HDFS dengan menggunakan hdfs-encryption-zones klasifikasi di API konfigurasi dan menentukan jalur root (/) sebagai zona enkripsi.
Server manajemen kunci Hadoop
Hadoop KMS
Untuk mengkonfigurasi Hadoop KMS, gunakan hadoop-kms-site klasifikasi untuk mengubah pengaturan. Untuk mengkonfigurasi ACLs, Anda menggunakan klasifikasi kms-acls.
Untuk informasi selengkapnya, lihat dokumentasi Hadoop KMS
catatan
Di Amazon EMR, KMS melalui HTTPS tidak diaktifkan secara default dengan Hadoop KMS. Untuk mempelajari cara mengaktifkan KMS melalui HTTPS, lihat dokumentasi Hadoop KMS
penting
Hadoop KMS membutuhkan nama kunci Anda menjadi huruf kecil. Jika Anda menggunakan kunci yang memiliki karakter huruf besar, maka klaster Anda akan gagal selama peluncuran.
Mengonfigurasi Hadoop KMS di Amazon EMR
Menggunakan rilis Amazon EMR versi 4.6.0 atau yang lebih baru, kms-http-port
adalah 9700 dan kms-admin-port
adalah 9701.
Anda dapat mengonfigurasi Hadoop KMS pada saat pembuatan klaster menggunakan API konfigurasi untuk rilis Amazon EMR. Berikut ini adalah klasifikasi objek konfigurasi yang tersedia untuk Hadoop KMS:
Klasifikasi | Nama berkas |
---|---|
hadoop-kms-site | kms-site.xml |
hadoop-kms-acls | kms-acls.xml |
hadoop-kms-env | kms-env.sh |
hadoop-kms-log4j | kms-log4j.properties |
Untuk mengatur Hadoop KMS menggunakan CLI ACLs
-
Buat cluster dengan Hadoop KMS dengan ACLs menggunakan perintah berikut:
aws emr create-cluster --release-label
emr-7.7.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsoncatatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
myConfig.json
:[ { "Classification": "hadoop-kms-acls", "Properties": { "hadoop.kms.blacklist.CREATE": "hdfs,foo,myBannedUser", "hadoop.kms.acl.ROLLOVER": "myAllowedUser" } } ]
Untuk menonaktifkan cache Hadoop KMS menggunakan CLI
-
Buat klaster dengan Hadoop KMS
hadoop.kms.cache.enable
atur kefalse
, menggunakan perintah berikut:aws emr create-cluster --release-label
emr-7.7.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsoncatatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
myConfig.json
:[ { "Classification": "hadoop-kms-site", "Properties": { "hadoop.kms.cache.enable": "false" } } ]
Untuk mengatur variabel lingkungan di kms-env.sh
skrip menggunakan CLI
-
Ubah setelan di
kms-env.sh
melaluihadoop-kms-env
konfigurasi. Buat klaster dengan Hadoop KMS menggunakan perintah berikut:aws emr create-cluster --release-label
emr-7.7.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsoncatatan
Karakter lanjutan baris Linux (\) disertakan agar mudah dibaca Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).
myConfig.json
:[ { "Classification": "hadoop-kms-env", "Properties": { }, "Configurations": [ { "Classification": "export", "Properties": { "JAVA_LIBRARY_PATH": "
/path/to/files
", "KMS_SSL_KEYSTORE_FILE": "/non/Default/Path/
.keystore", "KMS_SSL_KEYSTORE_PASS": "myPass
" }, "Configurations": [ ] } ] } ]
Untuk informasi tentang konfigurasi Hadoop KMS, lihat dokumentasi Hadoop KMS
Anda dapat mengonfigurasi enkripsi transparan HDFS pada klaster EMR dengan beberapa simpul utama
Apache Ranger
Apache Ranger KMS menyimpan kunci root dan kunci Encryption Zone (EZ) di Amazon RDS Anda untuk klaster EMR Amazon dengan beberapa node utama. Untuk mengaktifkan enkripsi transparan dalam HDFS pada kluster EMR Amazon dengan beberapa node utama, Anda harus menyediakan konfigurasi berikut.
-
Amazon RDS atau URL koneksi server MySQL Anda sendiri untuk menyimpan kunci root Ranger KMS dan kunci EZ
-
Nama pengguna dan kata sandi untuk MySQL
-
Kata sandi untuk kunci root Ranger KMS
-
File PEM Otoritas Sertifikat (CA) untuk koneksi SSL ke server MySQL. Anda dapat mengunduh bundel sertifikat untuk Anda Wilayah AWS dari Unduh bundel sertifikat untuk Amazon RDS.
Anda dapat menyediakan konfigurasi ini dengan menggunakan ranger-kms-dbks-site
klasifikasi dan ranger-kms-db-ca
klasifikasi, sebagai contoh berikut menunjukkan.
[{ "Classification": "ranger-kms-dbks-site", "Properties": { "ranger.ks.jpa.jdbc.url": "
jdbc:log4jdbc:mysql://mysql-host-url.xx-xxx-1.xxx.amazonaws.com:3306/rangerkms
", "ranger.ks.jpa.jdbc.user": "mysql-user-name
", "ranger.ks.jpa.jdbc.password": "mysql-password
", "ranger.db.encrypt.key.password": "password-for-encrypting-a-master-key
" } }, { "Classification": "ranger-kms-db-ca", "Properties": { "ranger.kms.trust.ca.file.s3.url": "<S3-path-of-downloaded-pem-file>" } } ]]
Berikut ini adalah klasifikasi objek konfigurasi untuk Apache Ranger KMS.
Klasifikasi | Deskripsi |
---|---|
ranger-kms-dbks-site | Ubah nilai dalam file dbks-site.xml Ranger KMS. |
ranger-kms-site | Ubah nilai dalam ranger-kms-site file.xml. dari Ranger KMS. |
ranger-kms-env | Ubah nilai di lingkungan Ranger KMS. |
ranger-kms-log4j | Ubah nilai dalam file kms-log4j.properties Ranger KMS. |
ranger-kms-db-ca | Ubah nilai untuk file CA pada S3 untuk koneksi MySQL SSL dengan Ranger KMS. |
Pertimbangan-pertimbangan
-
Anda sangat dianjurkan untuk mengenkripsi instans Amazon RDS untuk meningkatkan keamanan. Untuk informasi selengkapnya, lihat Pratinjau mengenkripsi sumber daya Amazon RDS.
-
Sangat disarankan agar Anda menggunakan database MySQL terpisah untuk setiap kluster EMR Amazon dengan beberapa node utama untuk bilah keamanan tinggi.
-
Untuk mengonfigurasi enkripsi transparan dalam HDFS pada klaster EMR Amazon dengan beberapa node utama, Anda harus menentukan
hdfs-encryption-zones
klasifikasi saat membuat cluster. Jika tidak, Ranger KMS tidak akan dikonfigurasi atau dimulai. Mengkonfigurasi ulanghdfs-encryption-zones
klasifikasi atau klasifikasi konfigurasi KMS Hadoop apa pun pada klaster yang sedang berjalan tidak didukung di klaster EMR Amazon dengan beberapa node utama. -
Bundel sertifikat PEM yang Anda downlaod dari Unduh bundel sertifikat untuk Amazon RDS mengelompokkan beberapa sertifikat menjadi satu file. Amazon EMR 7.3.0 dan yang lebih tinggi mendukung pengimporan beberapa sertifikat dari file PEM dengan konfigurasi.
ranger.kms.trust.ca.file.s3.url