Membuat konfigurasi keamanan - Amazon EMR

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

Membuat konfigurasi keamanan

Topik ini mencakup prosedur umum untuk membuat konfigurasi keamanan dengan konsol EMR Amazon dan AWS CLI, diikuti dengan referensi untuk parameter yang terdiri dari enkripsi, otentikasi, dan peran IAM untuk EMRFS. Untuk informasi lebih lanjut tentang izin, lihat topik berikut:

Untuk membuat konfigurasi keamanan menggunakan konsol
  1. Buka konsol Amazon EMR di https://console.aws.amazon.com/emr.

  2. Di panel navigasi, memilih Konfigurasi Keamanan, Buat konfigurasi keamanan.

  3. Ketik Nama untuk konfigurasi keamanan.

  4. Memilih opsi untuk Enkripsi dan Autentikasi seperti yang dijelaskan pada bagian di bawah dan versi terbaru memilih Buat.

Untuk membuat konfigurasi keamanan menggunakan AWS CLI
  • Gunakan perintah create-security-configuration seperti pada contoh berikut.

    • Untuk SecConfigName, tentukan nama konfigurasi keamanan. Ini adalah nama yang Anda tentukan saat Anda membuat sebuah klaster yang menggunakan konfigurasi keamanan ini.

    • Untuk SecConfigDef, tentukan struktur JSON inline atau jalur ke file JSON lokal, seperti file://MySecConfig.json. Parameter JSON menentukan pilihan untuk Enkripsi, IAM role untuk akses EMRFS ke Amazon S3, dan Autentikasi seperti yang dijelaskan pada bagian di bawah ini.

    aws emr create-security-configuration --name "SecConfigName" --security-configuration SecConfigDef

Konfigurasi enkripsi data

Sebelum Anda mengonfigurasi enkripsi di konfigurasi keamanan, buat kunci dan sertifikat yang digunakan untuk enkripsi. Untuk informasi lebih lanjut, lihat Menyediakan kunci untuk mengenkripsi data at rest dengan Amazon EMR dan Memberikan sertifikat untuk mengenkripsi data dalam transit dengan enkripsi Amazon EMR.

Bila Anda membuat konfigurasi keamanan, Anda menentukan dua rangkaian opsi enkripsi: enkripsi data yang tersisa dan enkripsi data dalam transit. Pilihan untuk enkripsi data yang tersisa mencakup Amazon S3 dengan EMRFS dan enkripsi disk lokal. Opsi enkripsi dalam transit mengaktifkan fitur enkripsi sumber terbuka untuk aplikasi tertentu yang mendukung Keamanan Lapisan Pengangkutan (TLS). Pilihan saat istirahat dan opsi dalam transit dapat diaktifkan secara bersamaan atau terpisah. Untuk informasi selengkapnya, lihat Enkripsi data at rest dan dalam transit.

catatan

Saat Anda menggunakan AWS KMS, biaya berlaku untuk penyimpanan dan penggunaan kunci enkripsi. Untuk informasi lebih lanjut, lihat AWS KMS Harga.

Menentukan opsi enkripsi menggunakan konsol

Memilih opsi di bawah Enkripsi sesuai dengan panduan berikut.

  • Memilih opsi di bawah Enkripsi saat diam untuk mengenkripsi data yang tersimpan di sistem file.

    Anda dapat memilih untuk mengenkripsi data di Amazon S3, disk lokal, atau keduanya.

  • Di bawah Enkripsi data S3, untuk Mode enkripsi memilih nilai untuk menentukan bagaimana Amazon EMR mengenkripsi data Amazon S3 dengan EMRFS.

    Apa yang Anda lakukan selanjutnya tergantung pada mode enkripsi yang Anda pilih:

  • Di bawah Enkripsi disk lokal, memilih nilai untuk Tipe penyedia kunci.

    • AWS KMS key

      Pilih opsi ini untuk menentukan file AWS KMS key. Untuk AWS KMS key, pilih satu kunci. Kunci harus ada di wilayah yang sama dengan klaster EMR. Untuk informasi lebih lanjut tentang kunci yang diperlukan, lihat Menggunakan AWS KMS keys untuk enkripsi.

      Enkripsi EBS

      Ketika Anda menentukan AWS KMS sebagai penyedia kunci Anda, Anda dapat mengaktifkan enkripsi EBS untuk mengenkripsi perangkat root EBS dan volume penyimpanan. Untuk mengaktifkan opsi tersebut, Anda harus memberikan peran layanan EMR Amazon EMR_DefaultRole dengan izin untuk menggunakan AWS KMS key yang Anda tentukan. Untuk informasi lebih lanjut tentang kunci yang diperlukan, lihat Mengaktifkan enkripsi EBS dengan memberikan izin tambahan untuk kunci KMS.

    • Kustom

      Memilih opsi ini untuk menentukan penyedia kunci kustom. Untuk objek S3, masukkan lokasi di Amazon S3, atau Amazon S3 ARN, file JAR penyedia kunci kustom Anda. Untuk kelas penyedia Key, masukkan nama kelas lengkap dari kelas yang dideklarasikan dalam aplikasi Anda yang mengimplementasikan EncryptionMaterialsProvider antarmuka. Nama kelas yang Anda berikan di sini harus berbeda dari nama kelas yang disediakan untuk CSE-Custom.

  • Memilih Enkripsi dalam transit untuk mengaktifkan fitur enkripsi TLS sumber terbuka untuk data dalam transit. Memilih Tipe penyedia sertifikat menurut panduan berikut:

    • PEM

      Memilih opsi ini untuk menggunakan file PEM yang Anda berikan di file zip. Dua artefak diperlukan di file zip: privateKey.pem dan certificateChain.pem. File ketiga, trustedCertificates.pem, adalah opsional. Lihat Memberikan sertifikat untuk mengenkripsi data dalam transit dengan enkripsi Amazon EMR untuk detail. Untuk objek S3, tentukan lokasi di Amazon S3, atau Amazon S3 ARN, bidang file zip.

    • Kustom

      Memilih opsi ini untuk menentukan penyedia sertifikat kustom dan versi terbaru, untuk objek S3, masukkan lokasi di Amazon S3, atau Amazon S3 ARN, file JAR penyedia sertifikat kustom Anda. Untuk kelas penyedia Key, masukkan nama kelas lengkap dari kelas yang dideklarasikan dalam aplikasi Anda yang mengimplementasikan antarmuka TLSArtifactsProvider .

Menentukan opsi enkripsi menggunakan AWS CLI

Bagian yang mengikuti skenario penggunaan sampel untuk mengcitrakan JSON --security-configuration yang dibentuk dengan baik untuk konfigurasi yang berbeda dan penyedia kunci, diikuti dengan referensi untuk parameter JSON dan nilai-nilai yang sesuai.

Contoh opsi enkripsi data dalam transit

Contoh berikut menggambarkan skenario berikut:

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } } } }'

Contoh berikut menggambarkan skenario berikut:

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } } } }'

Contoh opsi enkripsi data yang tersisa

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit dinonaktifkan dan enkripsi data yang tidak aktif diaktifkan.

  • SSE-S3 digunakan untuk enkripsi Amazon S3.

  • Enkripsi disk lokal digunakan AWS KMS sebagai penyedia kunci.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit diaktifkan dan referensi file zip dengan sertifikat PEM di Amazon S3, menggunakan ARN.

  • SSE-KMS digunakan untuk enkripsi Amazon S3.

  • Enkripsi disk lokal digunakan AWS KMS sebagai penyedia kunci.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "arn:aws:s3:::MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit diaktifkan dan referensi file zip dengan sertifikat PEM di Amazon S3.

  • CSE-KMS digunakan untuk enkripsi Amazon S3.

  • Enkripsi disk lokal menggunakan penyedia kunci kustom yang direferensikan oleh ARN.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "arn:aws:s3:::artifacts/MyKeyProvider.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit diaktifkan dengan penyedia kunci kustom.

  • CSE-Custom digunakan untuk data Amazon S3.

  • Enkripsi disk lokal menggunakan penyedia kunci kustom.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": "true", "EnableAtRestEncryption": "true", "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "CSE-Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "EncryptionKeyProviderClass": "com.mycompany.MyKeyProvider" } } } }'

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit dinonaktifkan dan enkripsi data yang tidak aktif diaktifkan.

  • Enkripsi Amazon S3 diaktifkan dengan SSE-KMS.

  • Beberapa AWS KMS kunci digunakan, satu per setiap bucket S3, dan pengecualian enkripsi diterapkan ke bucket S3 individual ini.

  • Enkripsi disk lokal dinonaktifkan.

aws emr create-security-configuration --name "MySecConfig" --security-configuration '{ "EncryptionConfiguration": { "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "Overrides": [ { "BucketName": "sse-s3-bucket-name", "EncryptionMode": "SSE-S3" }, { "BucketName": "cse-kms-bucket-name", "EncryptionMode": "CSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, { "BucketName": "sse-kms-bucket-name", "EncryptionMode": "SSE-KMS", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } ] } }, "EnableInTransitEncryption": false, "EnableAtRestEncryption": true } }'

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit dinonaktifkan dan enkripsi data yang tidak aktif diaktifkan.

  • Enkripsi Amazon S3 diaktifkan dengan SSE-S3 dan enkripsi disk lokal dinonaktifkan.

aws emr create-security-configuration --name "MyS3EncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" } } } }'

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit dinonaktifkan dan enkripsi data yang tidak aktif diaktifkan.

  • Enkripsi disk lokal diaktifkan AWS KMS sebagai penyedia kunci dan enkripsi Amazon S3 dinonaktifkan.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

Contoh berikut menggambarkan skenario berikut:

  • Enkripsi data dalam transit dinonaktifkan dan enkripsi data yang tidak aktif diaktifkan.

  • Enkripsi disk lokal diaktifkan AWS KMS sebagai penyedia kunci dan enkripsi Amazon S3 dinonaktifkan.

  • Enkripsi EBS diaktifkan.

aws emr create-security-configuration --name "MyLocalDiskEncryptionConfig" --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption": false, "EnableAtRestEncryption": true, "AtRestEncryptionConfiguration": { "LocalDiskEncryptionConfiguration": { "EnableEbsEncryption": true, "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'

Contoh berikut menggambarkan skenario berikut:

SSE-EMR-WAL digunakan untuk enkripsi EMR WAL

aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'

EnableInTransitEncryptiondan EnableAtRestEncryption masih bisa benar, jika ingin mengaktifkan enkripsi terkait.

Contoh berikut menggambarkan skenario berikut:

  • SSE-KMS-WAL digunakan untuk enkripsi EMR WAL

  • Enkripsi sisi server digunakan AWS Key Management Service sebagai penyedia kunci

aws emr create-security-configuration --name "MySecConfig" \ --security-configuration '{ "EncryptionConfiguration": { "EMRWALEncryptionConfiguration":{ "AwsKmsKey":"arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" }, "EnableInTransitEncryption":false, "EnableAtRestEncryption":false } }'

EnableInTransitEncryptiondan EnableAtRestEncryption masih bisa benar, jika ingin mengaktifkan enkripsi terkait.

Referensi JSON untuk pengaturan enkripsi

Tabel berikut mencantumkan parameter JSON untuk pengaturan enkripsi dan memberikan Deskripsi nilai yang dapat diterima untuk setiap parameter.

Parameter Deskripsi
"EnableInTransitEncryption" : true | false Tentukan true untuk mengaktifkan enkripsi dalam transit dan false menonaktifkannya. Jika dihilangkan, false diasumsikan, dan enkripsi dalam transit dinonaktifkan.
"EnableAtRestEncryption": true | false Tentukan true untuk mengaktifkan enkripsi saat istirahat dan false menonaktifkannya. Jika dihilangkan, false diasumsikan dan enkripsi saat istirahat dinonaktifkan.
Parameter enkripsi dalam transit
"InTransitEncryptionConfiguration" : Menentukan koleksi nilai-nilai yang digunakan untuk mengkonfigurasi enkripsi in-transit ketikaEnableInTransitEncryption. true
"CertificateProviderType": "PEM" | "Custom" Menentukan apakah akan menggunakan PEM sertifikat direferensikan dengan file zip, atau penyedia sertifikatCustom. Jika PEM ditentukan, S3Object harus menjadi referensi ke lokasi di Amazon S3 dari file zip yang berisi sertifikat. Jika Kustom ditentukan, S3Object harus menjadi referensi ke lokasi di Amazon S3 dari file JAR, diikuti dengan entri. CertificateProviderClass
"S3Object" : "ZipLocation" | "JarLocation" Menyediakan lokasi di Amazon S3 ke file zip saat PEM ditentukan, atau ke file JAR saat Custom ditentukan. Formatnya bisa berupa jalur (misalnya,s3://MyConfig/artifacts/CertFiles.zip) atau ARN (misalnya,. arn:aws:s3:::Code/MyCertProvider.jar) Jika file zip ditentukan, itu harus berisi file bernama persis privateKey.pem dancertificateChain.pem. File bernama trustedCertificates.pem adalah opsional.
"CertificateProviderClass" : "MyClassID" Diperlukan hanya jika Custom ditentukan untukCertificateProviderType. MyClassIDmenentukan nama kelas lengkap dideklarasikan dalam file JAR, yang mengimplementasikan antarmuka ArtifactsProvider TLS. Misalnya, com.mycompany.MyCertProvider.
Parameter enkripsi AT-rest
"AtRestEncryptionConfiguration" : Menentukan kumpulan nilai untuk enkripsi saat EnableAtRestEncryption istirahattrue, termasuk enkripsi Amazon S3 dan enkripsi disk lokal.
Parameter enkripsi Amazon S3
"S3EncryptionConfiguration" : Menentukan kumpulan nilai yang digunakan untuk enkripsi Amazon S3 dengan Amazon EMR File System (EMRFS).
"EncryptionMode": "SSE-S3" | "SSE-KMS" | "CSE-KMS" | "CSE-Custom" Menentukan jenis enkripsi Amazon S3 yang akan digunakan. Jika SSE-S3 ditentukan, tidak diperlukan nilai enkripsi Amazon S3 lebih lanjut. Jika salah satu SSE-KMS atau CSE-KMS ditentukan, AWS KMS key ARN harus ditentukan sebagai nilai. AwsKmsKey Jika CSE-Custom ditentukan, S3Object dan EncryptionKeyProviderClass nilai harus ditentukan.
"AwsKmsKey" : "MyKeyARN" Diperlukan hanya ketika salah satu SSE-KMS atau CSE-KMS ditentukan untukEncryptionMode. MyKeyARNharus ARN yang ditentukan sepenuhnya ke kunci (misalnya,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012).
"S3Object" : "JarLocation" Diperlukan hanya ketika CSE-Custom ditentukan untukCertificateProviderType. JarLocationmenyediakan lokasi di Amazon S3 ke file JAR. Formatnya bisa berupa jalur (misalnya,s3://MyConfig/artifacts/MyKeyProvider.jar) atau ARN (misalnya,. arn:aws:s3:::Code/MyKeyProvider.jar)
"EncryptionKeyProviderClass" : "MyS3KeyClassID" Diperlukan hanya ketika CSE-Custom ditentukan untukEncryptionMode. MyS3KeyClassIDmenentukan nama kelas lengkap dari kelas yang dideklarasikan dalam aplikasi yang mengimplementasikan EncryptionMaterialsProvider antarmuka; misalnya,. com.mycompany.MyS3KeyProvider
Parameter enkripsi disk lokal
"LocalDiskEncryptionConfiguration" Menentukan penyedia kunci dan nilai-nilai yang sesuai untuk digunakan untuk enkripsi disk lokal.
"EnableEbsEncryption": true | false Tentukan true untuk mengaktifkan enkripsi EBS. Enkripsi EBS mengenkripsi volume perangkat root EBS dan volume penyimpanan yang terpasang. Untuk menggunakan enkripsi EBS, Anda harus menentukan AwsKms sebagai enkripsi AndaEncryptionKeyProviderType.
"EncryptionKeyProviderType": "AwsKms" | "Custom" Menentukan penyedia kunci. Jika AwsKms ditentukan, ARN kunci KMS harus ditentukan sebagai AwsKmsKey nilai. Jika Custom ditentukan, S3Object dan EncryptionKeyProviderClass nilai harus ditentukan.
"AwsKmsKey : "MyKeyARN" Diperlukan hanya ketika AwsKms ditentukan untukType. MyKeyARNharus ARN yang ditentukan sepenuhnya ke kunci (misalnya,arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-456789012123).
"S3Object" : "JarLocation" Diperlukan hanya ketika CSE-Custom ditentukan untukCertificateProviderType. JarLocationmenyediakan lokasi di Amazon S3 ke file JAR. Formatnya bisa berupa jalur (misalnya,s3://MyConfig/artifacts/MyKeyProvider.jar) atau ARN (misalnya,. arn:aws:s3:::Code/MyKeyProvider.jar)

"EncryptionKeyProviderClass" : "MyLocalDiskKeyClassID"

Diperlukan hanya ketika Custom ditentukan untukType. MyLocalDiskKeyClassIDmenentukan nama kelas lengkap dari kelas yang dideklarasikan dalam aplikasi yang mengimplementasikan EncryptionMaterialsProvider antarmuka; misalnya,. com.mycompany.MyLocalDiskKeyProvider
Parameter enkripsi EMR WAL
"EMRWALEncryptionConfiguration" Menentukan nilai untuk enkripsi EMR WAL.
"AwsKmsKey" Menentukan CMK Key Id Arn.

mengonfigurasi autentikasi Kerberos

Konfigurasi keamanan dengan pengaturan Kerberos hanya dapat digunakan oleh sebuah klaster yang dibuat dengan atribut Kerberos atau kesalahan terjadi. Untuk informasi selengkapnya, lihat Gunakan Kerberos untuk otentikasi dengan Amazon EMR. Kerberos hanya tersedia di Amazon EMR versi 5.10.0 dan yang lebih baru.

Menentukan pengaturan Kerberos menggunakan konsol

Memilih opsi di bawah Autentikasi Kerberos menurut panduan berikut.

Parameter Deskripsi

Kerberos

Menentukan bahwa Kerberos diaktifkan untuk klaster yang menggunakan konfigurasi keamanan ini. Jika sebuah klaster menggunakan konfigurasi keamanan ini, klaster juga harus memiliki pengaturan Kerberos yang ditentukan atau terjadi kesalahan.

Penyedia

KDC khusus cluster

Menentukan bahwa Amazon EMR membuat KDC pada node utama dari setiap cluster yang menggunakan konfigurasi keamanan ini. Anda menentukan nama ranah dan kata sandi admin KDC ketika Anda membuat klaster.

Anda dapat referensi KDC ini dari klaster lain, jika diperlukan. Membuat klaster tersebut menggunakan konfigurasi keamanan yang berbeda, menentukan KDC eksternal, dan menggunakan nama ranah dan kata sandi admin KDC yang Anda tentukan untuk KDC khusus klaster.

KDC Eksternal

Hanya tersedia dengan Amazon EMR 5.20.0 dan yang lebih baru. Menentukan bahwa klaster menggunakan konfigurasi keamanan ini mengautentikasi utama Kerberos menggunakan server KDC di luar klaster. KDC tidak dibuat pada klaster. Ketika Anda membuat klaster, Anda menentukan nama ranah dan kata sandi admin KDC untuk KDC eksternal.

Tiket Seumur Hidup

Opsional. Menentukan periode tiket Kerberos mana yang valid yang dikeluarkan oleh KDC pada klaster yang menggunakan konfigurasi keamanan ini.

Masa pakai tiket terbatas untuk alasan keamanan. Aplikasi klaster dan layanan perpanjangan tiket otomatis setelah mereka kedaluwarsa. Pengguna yang terhubung ke cluster melalui SSH menggunakan kredensyal Kerberos harus menjalankan kinit dari baris perintah node utama untuk memperbarui setelah tiket kedaluwarsa.

Kepercayaan lintas alam

Menentukan kepercayaan lintas ranah antara KDC khusus klaster pada klaster yang menggunakan konfigurasi keamanan ini dan KDC di ranah Kerberos yang berbeda.

Utama (biasanya pengguna) dari ranah lain diautentikasi ke klaster yang menggunakan konfigurasi ini. Konfigurasi tambahan di ranah Kerberos lainnya diperlukan. Untuk informasi selengkapnya, lihat Tutorial: Konfigurasi kepercayaan lintas ranah dengan domain Direktori Aktif.

Properti kepercayaan lintas ranah

Realm

Menentukan nama ranah Kerberos dari ranah lain di hubungan kepercayaan. Dengan konvensi, nama ranah Kerberos adalah sama dengan nama domain tetapi semuanya menggunakan huruf kapital.

Domain

Menentukan nama domain dari ranah lain di hubungan kepercayaan.

Server admin

Menentukan nama domain yang memenuhi syarat (FQDN) atau alamat IP dari server admin di ranah lain dari hubungan kepercayaan. server admin dan server KDC biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi berkomunikasi pada port yang berbeda.

Jika port tidak ditentukan, port 749 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:749).

Server KDC

Menentukan nama domain yang memenuhi syarat (FQDN) atau alamat IP server KDC di ranah lain dari hubungan kepercayaan. Server KDC dan server admin biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi menggunakan port yang berbeda.

Jika port tidak ditentukan, port 88 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:88).

KDC Eksternal

Menentukan bahwa klaster eksternal KDC digunakan oleh klaster.

Properti KDC eksternal

Server admin

Menentukan nama domain yang memenuhi syarat (FQDN) atau alamat IP dari server admin eksternal. Server admin dan server KDC biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi berkomunikasi pada port yang berbeda.

Jika port tidak ditentukan, port 749 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:749).

Server KDC

Menentukan nama domain yang memenuhi syarat (FQDN) dari server KDC eksternal. Server KDC dan server admin biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi menggunakan port yang berbeda.

Jika port tidak ditentukan, port 88 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:88).

Integrasi Direktori Aktif

Menentukan bahwa autentikasi utama Kerberos terintegrasi dengan domain Direktori Aktif Microsoft.

Properti integrasi Direktori Aktif

Ranah Direktori Aktif

Menentukan nama ranah Kerberos dari domain Direktori Aktif. Dengan konvensi, nama ranah Kerberos biasanya sama dengan nama domain tetapi di huruf kapital semua.

Domain Direktori Aktif

Menentukan nama domain Direktori Aktif.

Server Direktori Aktif

Menentukan nama domain yang memenuhi syarat (FQDN) dari pengendali domain Direktori Aktif Microsoft.

Menentukan pengaturan Kerberos menggunakan AWS CLI

Tabel referensi berikut menunjukkan parameter JSON untuk pengaturan Kerberos di konfigurasi keamanan. Contoh konfigurasi, lihat, Contoh konfigurasi.

Parameter Deskripsi

"AuthenticationConfiguration": {

Diperlukan untuk Kerberos. Menentukan bahwa konfigurasi autentikasi adalah bagian dari konfigurasi keamanan ini.

"KerberosConfiguration": {

Diperlukan untuk Kerberos. Menentukan properti konfigurasi Kerberos.

"Provider": "ClusterDedicatedKdc",

atau

"Provider: "ExternalKdc",

ClusterDedicatedKdcmenetapkan bahwa Amazon EMR membuat KDC pada node utama dari setiap cluster yang menggunakan konfigurasi keamanan ini. Anda menentukan nama ranah dan kata sandi admin KDC ketika Anda membuat klaster. Anda dapat referensi KDC ini dari klaster lain, jika diperlukan. Membuat klaster tersebut menggunakan konfigurasi keamanan yang berbeda, menentukan KDC eksternal, dan menggunakan nama ranah dan kata sandi admin KDC yang Anda tentukan ketika Anda membuat klaster dengan KDC khusus klaster.

ExternalKdc menentukan bahwa klaster menggunakan KDC eksternal. Amazon EMR tidak membuat KDC pada node utama. Klaster yang menggunakan konfigurasi keamanan ini harus menentukan nama ranah dan kata sandi admin KDC eksternal KDC.

"ClusterDedicatedKdcConfiguration": {

Diperlukan ketika ClusterDedicatedKdc ditentukan.

"TicketLifetimeInHours": 24,

Opsional. Menentukan periode tiket Kerberos mana yang valid yang dikeluarkan oleh KDC pada klaster yang menggunakan konfigurasi keamanan ini.

Masa pakai tiket terbatas untuk alasan keamanan. Aplikasi klaster dan layanan perpanjangan tiket otomatis setelah mereka kedaluwarsa. Pengguna yang terhubung ke cluster melalui SSH menggunakan kredensyal Kerberos harus menjalankan kinit dari baris perintah node utama untuk memperbarui setelah tiket kedaluwarsa.

"CrossRealmTrustConfiguration": {

Menentukan kepercayaan lintas ranah antara KDC khusus klaster pada klaster yang menggunakan konfigurasi keamanan ini dan KDC di ranah Kerberos yang berbeda.

Utama (biasanya pengguna) dari ranah lain diautentikasi ke klaster yang menggunakan konfigurasi ini. Konfigurasi tambahan di ranah Kerberos lainnya diperlukan. Untuk informasi selengkapnya, lihat Tutorial: Konfigurasi kepercayaan lintas ranah dengan domain Direktori Aktif.

"Realm": "KDC2.COM",

Menentukan nama ranah Kerberos dari ranah lain di hubungan kepercayaan. Dengan konvensi, nama ranah Kerberos adalah sama dengan nama domain tetapi semuanya menggunakan huruf kapital.

"Domain": "kdc2.com",

Menentukan nama domain dari ranah lain di hubungan kepercayaan.

"AdminServer": "kdc.com:749",

Menentukan nama domain yang memenuhi syarat (FQDN) atau alamat IP dari server admin di ranah lain dari hubungan kepercayaan. server admin dan server KDC biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi berkomunikasi pada port yang berbeda.

Jika port tidak ditentukan, port 749 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:749).

"KdcServer": "kdc.com:88"

Menentukan nama domain yang memenuhi syarat (FQDN) atau alamat IP server KDC di ranah lain dari hubungan kepercayaan. Server KDC dan server admin biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi menggunakan port yang berbeda.

Jika port tidak ditentukan, port 88 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:88).

}

}

"ExternalKdcConfiguration": {

Diperlukan ketika ExternalKdc ditentukan.

"TicketLifetimeInHours": 24,

Opsional. Menentukan periode tiket Kerberos mana yang valid yang dikeluarkan oleh KDC pada klaster yang menggunakan konfigurasi keamanan ini.

Masa pakai tiket terbatas untuk alasan keamanan. Aplikasi klaster dan layanan perpanjangan tiket otomatis setelah mereka kedaluwarsa. Pengguna yang terhubung ke cluster melalui SSH menggunakan kredensyal Kerberos harus menjalankan kinit dari baris perintah node utama untuk memperbarui setelah tiket kedaluwarsa.

"KdcServerType": "Single",

Menentukan bahwa satu server KDC direferensikan. Single saat ini adalah satu-satunya nilai yang didukung.

“AdminServer“:" kdc.com:749 “,

Menentukan nama domain yang memenuhi syarat (FQDN) atau alamat IP dari server admin eksternal. Server admin dan server KDC biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi berkomunikasi pada port yang berbeda.

Jika port tidak ditentukan, port 749 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:749).

“KdcServer“:" kdc.com:88 “,

Menentukan nama domain yang memenuhi syarat (FQDN) dari server KDC eksternal. Server KDC dan server admin biasanya berjalan pada mesin yang sama dengan FQDN yang sama, tetapi menggunakan port yang berbeda.

Jika port tidak ditentukan, port 88 digunakan, yang merupakan default Kerberos. Atau, Anda dapat menentukan port (misalnya, domain.example.com:88).

"AdIntegrationConfiguration": {

Menentukan bahwa autentikasi utama Kerberos terintegrasi dengan domain Direktori Aktif Microsoft.

"AdRealm": "AD.DOMAIN.COM",

Menentukan nama ranah Kerberos dari domain Direktori Aktif. Dengan konvensi, nama ranah Kerberos biasanya sama dengan nama domain tetapi di huruf kapital semua.

"AdDomain": "ad.domain.com"

Menentukan nama domain Direktori Aktif.

"AdServer": "ad.domain.com"

Menentukan nama domain yang memenuhi syarat (FQDN) dari pengendali domain Direktori Aktif Microsoft.

}

}

}

}

Konfigurasi IAM role untuk permintaan EMRFS ke Amazon S3

IAM role untuk EMRFS mengizinkan Anda untuk memberikan izin yang berbeda untuk data EMRFS di Amazon S3. Anda membuat pemetaan yang menentukan IAM role yang digunakan untuk izin ketika permintaan akses berisi pengidentifikasi yang Anda tentukan. Pengidentifikasi dapat menjadi pengguna atau peran Hadoop, atau prefiks Amazon S3.

Untuk informasi selengkapnya, lihat Konfigurasi IAM role untuk permintaan EMRFS ke Amazon S3.

Menentukan peran IAM untuk EMRFS menggunakan AWS CLI

Berikut ini adalah contoh potongan JSON untuk menentukan IAM role kustom untuk EMRFS di konfigurasi keamanan. Ini menunjukkan pemetaan peran untuk tiga tipe pengidentifikasi yang berbeda, diikuti dengan referensi parameter.

{ "AuthorizationConfiguration": { "EmrFsConfiguration": { "RoleMappings": [{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1", "IdentifierType": "User", "Identifiers": [ "user1" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_MyBuckets", "IdentifierType": "Prefix", "Identifiers": [ "s3://MyBucket/","s3://MyOtherBucket/" ] },{ "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup", "IdentifierType": "Group", "Identifiers": [ "AdminGroup" ] }] } } }
Parameter Deskripsi

"AuthorizationConfiguration":

Diperlukan.

"EmrFsConfiguration":

Diperlukan. Berisi pemetaan peran.

  "RoleMappings":

Diperlukan. Berisi satu atau lebih definisi peran pemetaan. Pemetaan peran dievaluasi di urutan top-down yang muncul. Jika pemetaan peran mengevaluasi sebagai BETUL untuk panggilan EMRFS untuk data di Amazon S3, tidak ada pemetaan peran lebih lanjut dievaluasi dan EMRFS menggunakan IAM role yang ditentukan untuk permintaan. Pemetaan peran terdiri dari parameter wajib berikut:

   "Role":

Menentukan pengidentifikasi ARN dari IAM role dalam format arn:aws:iam::account-id:role/role-name. Ini adalah IAM role yang Amazon EMR asumsikan jika permintaan EMRFS ke Amazon S3 cocok dengan salah satu Identifiers yang ditentukan.

   "IdentifierType":

Dapat menjadi salah satu dari yang berikut:

  • "User" menetapkan bahwa pengidentifikasi adalah satu pengguna Hadoop atau lebih, yang bisa saja pengguna akun Linux atau utama Kerberos. Ketika permintaan EMRFS berasal dari pengguna atau pengguna yang ditentukan, IAM role diasumsikan.

  • "Prefix" menetapkan bahwa pengidentifikasi adalah lokasi Amazon S3. IAM role diasumsikan untuk panggilan ke lokasi atau lokasi dengan prefiks tertentu. Misalnya, prefiks s3://mybucket/ mencocokkan s3://mybucket/mydir dan s3://mybucket/yetanotherdir.

  • "Group" menetapkan bahwa pengidentifikasi adalah satu Grup Hadoop atau lebih. IAM role diasumsikan jika permintaan berasal dari pengguna di grup atau grup-grup tertentu.

   "Identifiers":

Menentukan satu pengidentifikasi atau lebih dari tipe pengidentifikasi yang sesuai. Pisahkan beberapa pengidentifikasi dengan koma tanpa spasi.

Konfigurasi permintaan layanan metadata untuk instans Amazon EC2

Metadata instans adalah data tentang instans Anda yang dapat Anda gunakan untuk mengonfigurasi atau mengelola instans yang sedang berjalan. Anda dapat mengakses metadata instans dari instans yang sedang berjalan menggunakan salah satu metode berikut:

  • Layanan Metadata Instans Versi 1 (IMDSv1) - metode permintaan/tanggapan

  • Layanan Metadata Instans Versi 2 (IMDSv2) - metode berorientasi sesi

Sementara Amazon EC2 mendukung IMDSv1 dan IMDSv2, Amazon EMR mendukung IMDSv2 di Amazon EMR 5.23.1, 5.27.1, 5.32 atau yang lebih baru, dan 6.2 atau yang lebih baru. di rilis ini, Amazon EMR komponen menggunakan IMDSv2 untuk semua panggilan IMDS. Untuk panggilan IMDS di kode aplikasi Anda, Anda dapat menggunakan IMDSv1 dan IMDSv2, atau mengonfigurasi IMDS untuk menggunakan hanya IMDSv2 untuk keamanan tambahan. Saat Anda menentukan bahwa IMDSv2 harus digunakan, maka IMDSv1 tidak lagi berfungsi.

Untuk informasi selengkapnya, lihat Mengonfigurasi layanan metadata instans di Panduan Pengguna Amazon EC2.

catatan

Di Amazon EMR rilis 5.x atau 6.x sebelumnya, mematikan IMDSv1 menyebabkan kegagalan startup klaster sebagai Amazon EMR komponen menggunakan IMDSv1 untuk semua panggilan IMDS. Ketika mematikan IMDSv1, pastikan bahwa setiap perangkat lunak kustom yang menggunakan IMDSv1 diperbarui untuk IMDSv2.

Menentukan konfigurasi layanan metadata instans menggunakan AWS CLI

Berikut ini adalah contoh potongan JSON untuk menentukan instans Amazon EC2 metadata service (IMDS) di konfigurasi keamanan. Menggunakan konfigurasi keamanan khusus adalah opsional.

{ "InstanceMetadataServiceConfiguration" : { "MinimumInstanceMetadataServiceVersion": integer, "HttpPutResponseHopLimit": integer } }
Parameter Deskripsi

"InstanceMetadataServiceConfiguration":

Jika Anda tidak menentukan IMDS dalam konfigurasi keamanan dan menggunakan rilis EMR Amazon yang memerlukan IMDSv1, Amazon EMR default menggunakan IMDSv1 sebagai versi layanan metadata instans minimum. Jika Anda ingin menggunakan konfigurasi Anda sendiri, kedua parameter berikut diperlukan.

"MinimumInstanceMetadataServiceVersion":

Wajib. Tentukan 1 atau 2. Nilai dari 1 mengizinkan IMDSv1 dan IMDSv2. Nilai dari 2 hanya mengizinkan IMDSv2.

"HttpPutResponseHopLimit":

Diperlukan. Batas respons hop HTTP PUT yang diinginkan untuk permintaan metadata instans. Semakin besar jumlahnya, permintaan metadata instans lebih lanjut dapat melakukan perjalanan. Default: 1. Tentukan integer dari 1 ke 64.

Menentukan konfigurasi layanan metadata instans menggunakan konsol

Anda dapat mengonfigurasi penggunaan IMDS untuk sebuah klaster ketika Anda meluncurkannya dari konsol Amazon EMR.

Untuk mengonfigurasi penggunaan IMDS menggunakan konsol:
  1. Saat membuat konfigurasi keamanan baru di halaman Konfigurasi keamananmemilih Konfigurasi layanan metadata Instans EC2 di bawah Pengaturan Layanan Metadata Instans EC2. Konfigurasi ini hanya didukung di Amazon EMR 5.23.1, 5.27.1, 5.32 atau yang lebih baru, dan 6.2 atau yang lebih baru.

  2. Untuk opsi Layanan Metadata Instans Versi memilih salah satu:

    • Matikan IMDSv1 dan hanya mengizinkan IMDSv2, jika Anda ingin mengizinkan hanya IMDSv2 pada klaster ini. Lihat Transisi menggunakan layanan metadata instans versi 2 di Panduan Pengguna Amazon EC2.

    • Mengizinkan IMDSv1 dan IMDSv2 di klaster, jika Anda ingin mengizinkan IMDSv1 dan IMDSv2 orientasi sesi pada klaster ini.

  3. Untuk IMDSv2, Anda juga dapat mengonfigurasi jumlah lompatan jaringan yang diizinkan untuk token metadata dengan pengaturan HTTP menempatkan respon hop batas untuk integer antara 1 dan 64.

Untuk informasi selengkapnya, lihat Mengonfigurasi layanan metadata instans di Panduan Pengguna Amazon EC2.

Lihat Mengonfigurasi detail instans dan Mengonfigurasi layanan metadata instans di Panduan Pengguna Amazon EC2.