Aktifkan otentikasi Kerberos di ruang kerja Serverless Spark agar semua klien harus melakukan otentikasi sebelum mengirimkan task Spark. Hal ini mengurangi akses tidak sah dan meningkatkan keamanan eksekusi task.
Batasan
Satu ruang kerja hanya dapat di-bind ke satu kluster Kerberos.
Otentikasi Kerberos hanya didukung untuk pekerjaan batch Spark.
Otentikasi Kerberos memerlukan konektivitas jaringan antara EMR Serverless Spark dan Virtual Private Cloud (VPC) Anda, serta port UDP 88 harus terbuka untuk traffic Kerberos. Selesaikan pengaturan jaringan pada Langkah 1 sebelum mengonfigurasi otentikasi.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Membuat principal Kerberos, mengekspor file keytab-nya, dan mengunggahnya ke Object Storage Service (OSS)
Untuk kluster EMR on ECS, lihat Penggunaan dasar Kerberos
Ruang kerja Serverless Spark. Lihat Mengelola ruang kerja.
Langkah 1: Siapkan jaringan
Buat konektivitas jaringan antara EMR Serverless Spark dan VPC Anda. Lihat Establish network connectivity between EMR Serverless Spark and other VPCs.
Saat menambahkan aturan security group, buka port UDP 88 untuk traffic Kerberos. Jika Anda mengonfigurasi koneksi jaringan melalui TCP alih-alih UDP, tambahkan udp_preference_limit = 1 di bawah bagian [libdefaults] dalam file krb5.conf Anda pada Langkah 2.
Langkah 2: Konfigurasikan otentikasi Kerberos
Langkah ini menghubungkan ruang kerja Serverless Spark Anda ke kluster Kerberos dan mengaktifkan penegakan otentikasi.
Di EMR console, pilih EMR Serverless > Spark di panel navigasi kiri.
Di halaman Spark, klik nama ruang kerja yang dituju.
Di panel navigasi kiri, klik Security > Kerberos Authentication.
Klik Bind Kerberos.
Di halaman Bind Kerberos, konfigurasikan parameter berikut lalu klik OK.
Parameter Description Kerberos Name Masukkan nama kustom. Network Connection Pilih koneksi jaringan yang dibuat pada Langkah 1. Kerberos krb5.conf Masukkan konten file krb5.confAnda. Lihat petunjuk di bawah.Cara mendapatkan konten
krb5.confFile
krb5.confbiasanya berada di/etc/krb5.confpada server Kerberos.Kluster EMR DataLake: Masuk ke node master (lihat Log on to a cluster), jalankan
cat /etc/krb5.conf, lalu salin output-nya ke bidang Kerberos krb5.conf.Kluster EMR lain atau Kerberos yang dikelola sendiri: Ganti nilai
hostnamedalam file tersebut dengan Alamat IP pribadi VPC Anda.
Jika Anda telah membuka port UDP 88 pada Langkah 1, tidak perlu mengubah file
krb5.conf. Jika Anda menggunakan TCP, tambahkanudp_preference_limit = 1di bawah bagian[libdefaults].
Di kolom Actions, klik Enable, lalu klik OK di dialog konfirmasi.
Langkah 3: Kirim pekerjaan batch Spark dengan otentikasi Kerberos
Setelah mengaktifkan otentikasi Kerberos, setiap pekerjaan batch Spark harus menyertakan kredensial Kerberos. Mengirim pekerjaan tanpa kredensial tersebut akan menghasilkan error: spark.kerberos.keytab and spark.kerberos.principal not configured.
Buat pekerjaan batch Spark. Lihat PySpark Quick Start.
Di tab pengembangan, atur Network Connection ke koneksi yang ditambahkan pada Langkah 1, lalu tambahkan parameter Kerberos berikut ke Spark Configuration dan klik Run.
spark.files oss://<bucketname>/path/test.keytab spark.kerberos.keytab test.keytab spark.kerberos.principal <username>@<REALM>Parameter Description spark.filesPath lengkap file keytab yang diunggah ke OSS. spark.kerberos.keytabNama file keytab. spark.kerberos.principalPrincipal dalam file keytab, digunakan untuk otentikasi identitas dengan Kerberos. Jalankan klist -kt <keytab_file>untuk melihat principal tersebut.(Opsional) Hubungkan ke Hive Metastore yang diaktifkan Kerberos dari pekerjaan Untuk mengkueri metadata dari Hive Metastore yang dilindungi Kerberos, tambahkan parameter berikut ke Spark Configuration:
spark.hive.metastore.sasl.enabled true spark.hive.metastore.kerberos.principal hive/<hostname>@<REALM>Atur
spark.hive.metastore.kerberos.principalke principal dari file keytab yang digunakan oleh Hive Metastore. Untuk menemukannya:Di Konsol EMR on ECS, buka halaman Configuration layanan Hive dan buka tab hive-site.xml. Temukan nilai
hive.metastore.kerberos.keytab.file.Jalankan
klist -kt <path_to_Hive_Metastore_keytab_file>untuk mengambil principal tersebut.
Format principal adalah
hive/<hostname>@<REALM>, di mana<hostname>adalah fully qualified domain name (FQDN) dari node yang menjalankan Hive Metastore (jalankanhostname -funtuk mendapatkannya) dan<REALM>adalah realm KDC.Jika titik akhir Hive Metastore menggunakan hostname, gunakan
hive/_HOST@<REALM>. Spark secara otomatis mengganti_HOSTdengan hostname dari titik akhir Hive Metastore. Format ini wajib digunakan saat mengonfigurasi beberapa Hive Metastore.Setelah pekerjaan selesai dijalankan, buka bagian Execution Records dan klik Details di kolom Actions.
Di Job History, lihat log di halaman Log Exploration.

Langkah 4 (Opsional): Hubungkan katalog data ruang kerja ke Hive Metastore yang diaktifkan Kerberos
Jika katalog data ruang kerja perlu mengambil metadata dari Hive Metastore yang dilindungi Kerberos, tentukan path file keytab dan principal saat menambahkan Hive Metastore eksternal.

| Field | Description |
|---|---|
| Kerberos keytab file | Path ke file keytab Kerberos. |
| Kerberos principal | Nama principal dari file keytab, digunakan untuk otentikasi identitas dengan Kerberos. Jalankan klist -kt <keytab_file> untuk melihat principal tersebut. |