Anda dapat mengonfigurasi dan mengaktifkan otentikasi Kerberos di ruang kerja Serverless Spark. Setelah fitur ini diaktifkan, klien harus menggunakan otentikasi Kerberos untuk mengirimkan tugas Spark di ruang kerja tersebut, sehingga meningkatkan keamanan eksekusi tugas.
Prasyarat
Anda telah membuat principal, mengekspor file Kerberos keytab, dan mengunggah file tersebut ke Alibaba Cloud Object Storage Service (OSS).
Jika Anda menggunakan kluster EMR on ECS, untuk informasi selengkapnya, lihat Penggunaan dasar Kerberos.
Anda telah membuat ruang kerja Serverless Spark. Untuk informasi selengkapnya, lihat Kelola ruang kerja.
Batasan
Satu ruang kerja hanya dapat diikat ke satu kluster Kerberos.
Otentikasi Kerberos hanya didukung untuk pekerjaan batch Spark.
Prosedur
Langkah 1: Siapkan jaringan
Sebelum mengonfigurasi otentikasi Kerberos, pastikan terdapat konektivitas jaringan antara Serverless Spark dan Virtual Private Cloud (VPC) Anda. Untuk informasi selengkapnya, lihat Bangun konektivitas jaringan antara EMR Serverless Spark dan VPC lainnya.
Saat menambahkan aturan grup keamanan, pastikan Anda membuka port UDP yang digunakan oleh layanan Kerberos—biasanya port 88.
Langkah 2: Konfigurasi otentikasi Kerberos
Buka halaman otentikasi Kerberos.
Masuk ke Konsol EMR.
Pada panel navigasi sebelah kiri, pilih .
Pada halaman Spark, klik nama ruang kerja yang dituju.
Pada halaman EMR Serverless Spark, klik pada panel navigasi sebelah kiri.
Klik Bind Kerberos.
Pada halaman Bind Kerberos, konfigurasikan parameter dan klik OK.
Parameter
Deskripsi
Kerberos Name
Masukkan nama kustom.
Network Connectivity
Pilih koneksi jaringan yang telah Anda buat.
Kerberos krb5.conf
Masukkan konten file
krb5.conf.File
krb5.confbiasanya berada di path/etc/krb5.confpada server. Dapatkan konten file tersebut sesuai dengan lingkungan Anda:Jika Anda menggunakan layanan Kerberos dari kluster EMR DataLake, peroleh kontennya sebagai berikut:
Masuk ke node master kluster EMR. Untuk informasi selengkapnya, lihat Masuk ke kluster.
Jalankan perintah berikut untuk melihat dan menyalin secara manual konten
/etc/krb5.conf.cat /etc/krb5.confSalin konten tersebut ke kolom Kerberos krb5.conf.
Untuk kluster EMR lain atau layanan Kerberos yang dikelola sendiri, ganti
hostnamedalam file tersebut dengan Alamat IP pribadi VPC.
(Opsional) Tambahkan konfigurasi tambahan ke file
krb5.confberdasarkan jenis protokol jaringan.Jika Anda membuka port UDP 88 saat mengonfigurasi koneksi jaringan di Langkah 1: Siapkan jaringan, tidak diperlukan konfigurasi tambahan.
Jika Anda menggunakan protokol TCP untuk koneksi jaringan di Langkah 1: Siapkan jaringan, tambahkan
udp_preference_limit = 1di bawah[libdefaults].
Pada kolom Tindakan, klik Enable Authentication.
Pada kotak dialog yang muncul, klik OK.
Langkah 3: Kirim pekerjaan batch Spark
Setelah otentikasi Kerberos diaktifkan, klien harus melakukan autentikasi untuk mengirimkan pekerjaan batch Spark. Jika Anda mengirimkan pekerjaan tanpa konfigurasi yang diperlukan, pesan kesalahan spark.kerberos.keytab and spark.kerberos.principal not configured akan dikembalikan.
Buat pekerjaan batch Spark. Untuk informasi selengkapnya, lihat PySpark Quick Start.
Pada tab pengembangan baru, tambahkan konfigurasi berikut dan klik Run.

Parameter
Deskripsi
Network Connectivity
Pilih nama koneksi jaringan yang Anda tambahkan di Langkah 1.
Spark Configuration
Konfigurasikan parameter berikut.
spark.files oss://<bucketname>/path/test.keytab spark.kerberos.keytab test.keytab spark.kerberos.principal <username>@<REALM>Parameter tersebut dijelaskan sebagai berikut:
spark.files: Path lengkap file keytab yang diunggah ke OSS.spark.kerberos.keytab: Nama file keytab.spark.kerberos.principal: Nama principal dalam file keytab. Principal ini digunakan untuk otentikasi identitas dengan layanan Kerberos. Anda dapat menjalankan perintahklist -kt <keytab_file>untuk melihat nama principal dalam file keytab yang dituju.
Untuk terhubung ke Hive Metastore yang diaktifkan Kerberos guna mendapatkan metadata, tambahkan informasi berikut ke bagian Spark Configuration.
spark.hive.metastore.sasl.enabled true spark.hive.metastore.kerberos.principal hive/<hostname>@<REALM>Atur parameter
spark.hive.metastore.kerberos.principalke principal dari file keytab yang digunakan oleh Hive Metastore. Untuk menemukan path ke file keytab tersebut, buka halaman Configuration layanan Hive di Konsol EMR on ECS. Pada tab hive-site.xml, temukan nilai parameter hive.metastore.kerberos.keytab.file. Anda kemudian dapat menjalankan perintahklist -kt <path_to_Hive_Metastore_keytab_file>untuk mengambil principal tersebut.Nilai parameter
spark.hive.metastore.kerberos.principalmemiliki format berikut:Format umumnya adalah
hive/<hostname>@<REALM>.<hostname>adalah nama domain lengkap dari node tempat Hive Metastore berjalan, yang dapat Anda peroleh dengan menjalankan perintahhostname -f.<REALM>adalah realm KDC.Jika titik akhir Hive Metastore menggunakan hostname, Anda dapat menyederhanakan format menjadi
hive/_HOST@<REALM>. Saat melakukan koneksi, Spark secara otomatis mengganti_HOSTdengan hostname dari titik akhir Hive Metastore. Format `_HOST` ini diperlukan untuk mengonfigurasi beberapa Hive Metastore.
Setelah pekerjaan berjalan, buka bagian Run Record dan klik Details pada kolom Tindakan.
Di Job History, Anda dapat melihat log terkait pada halaman Development Jobs.

Langkah 4 (Opsional): Terhubung ke Hive Metastore yang diaktifkan Kerberos
Jika katalog data ruang kerja perlu terhubung ke Hive Metastore yang diaktifkan Kerberos untuk mendapatkan metadata, Anda harus menentukan path file keytab dan nama principal saat menambahkan Hive Metastore eksternal.

Kerberos Keytab File Path: Path ke file keytab Kerberos.
Kerberos principal: Nama principal dari file keytab. Principal ini digunakan untuk otentikasi identitas dengan layanan Kerberos. Anda dapat menjalankan perintah
klist -kt <keytab_file>untuk melihat nama principal dalam file keytab yang ditentukan.