Anda dapat mengaktifkan Kerberos untuk Kyuubi Gateway di Serverless Spark guna menerapkan otentikasi aman dan kontrol akses. Setelah dikonfigurasi, klien harus menggunakan Kerberos untuk melakukan otentikasi saat mengirimkan pekerjaan ke gateway, sehingga meningkatkan keamanan eksekusi pekerjaan.
Batasan
Kluster EMR on ECS dan ruang kerja Serverless Spark harus berada di wilayah yang sama.
Prasyarat
Kluster EMR on ECS dengan otentikasi Kerberos yang diaktifkan telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster.
Ruang kerja Serverless Spark dengan otentikasi Kerberos yang diaktifkan telah dibuat. Untuk informasi selengkapnya, lihat Aktifkan otentikasi Kerberos.
Kyuubi Gateway telah dibuat di ruang kerja Serverless Spark. Gateway tidak perlu dalam status Berjalan.
Buat koneksi jaringan
Untuk menggunakan Kerberos dengan Kyuubi Gateway, Anda harus mengonfigurasi PrivateLink guna membangun konektivitas jaringan antara Serverless Spark dan kluster Kerberos. Konfigurasi ini tidak dapat dilakukan melalui self-service. Untuk menyelesaikan pengaturan, kirimkan tiket dengan informasi yang diperlukan, dan tim dukungan teknis kami akan membantu Anda.
Buat endpoint
Endpoint dibuat dan dikelola oleh konsumen layanan. Anda dapat mengaitkannya dengan Layanan titik akhir untuk membangun koneksi jaringan pribadi guna mengakses layanan eksternal melalui PrivateLink. Untuk informasi selengkapnya, lihat Endpoints.
Masuk ke Endpoint console.
Pada halaman Create Endpoint, konfigurasikan endpoint dengan parameter berikut, lalu klik Create.

Parameter
Deskripsi
Region
Pilih wilayah untuk endpoint. Pastikan wilayah tersebut sesuai dengan wilayah kluster Kerberos dan ruang kerja Serverless Spark.
Node Name
Masukkan nama kustom untuk endpoint.
Endpoint Type
Pilih Interface Endpoint.
Endpoint Service
Klik Select Service, lalu pilih atau masukkan ID Layanan titik akhir target.
CatatanUntuk mendapatkan ID Layanan titik akhir, kirimkan tiket dengan informasi berikut:
ID ruang kerja Serverless Spark, misalnya
w-f8cfXXXXXX.ID VPC dari kluster Kerberos yang mengakses Kyuubi Gateway. VPC ini harus memiliki vSwitch yang tersedia di dua zona. Contoh:
vpc-bp1tXXXXXX.Dua zona yang dipilih, misalnya
I,J. Untuk mengetahui zona mana saja yang didukung di wilayah Anda, tanyakan kepada tim dukungan kami melalui tiket.ID Kyuubi Gateway, misalnya
kb-564e********266f.
VPC
Pilih VPC dari kluster Kerberos yang mengakses Kyuubi Gateway.
Security Group
Pilih security group untuk dikaitkan dengan antarmuka jaringan elastis (ENI) endpoint.
CatatanAnda dapat mengaitkan hingga sembilan security group ke satu endpoint.
Zone and vSwitch
Pilih zona dan vSwitch yang sesuai yang telah Anda tentukan sebelumnya.
IP Version
Jenis jaringan berikut didukung:
IPv4: Memungkinkan klien menggunakan Alamat IPv4 untuk akses.
Dual-stack: Memungkinkan klien menggunakan Alamat IPv4 dan IPv6 untuk akses.
CatatanAnda hanya dapat memilih opsi dual-stack setelah penyedia layanan menyelesaikan konfigurasi dual-stack.
Resource Group
Pilih kelompok sumber daya tempat endpoint berada.
Tags
Pilih atau masukkan Tag Key dan Tag Value.
Pada halaman Basic Information, jika Status menunjukkan Status, artinya endpoint siap digunakan. Nama domain Layanan titik akhir adalah
ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com.Masuk ke kluster Kerberos dan uji koneksi jaringan.

Konfigurasi resolusi DNS (Opsional)
Nama domain Layanan titik akhir default cukup panjang. Untuk menyederhanakannya, Anda dapat mengonfigurasi nama domain otoritatif internal kustom. Untuk informasi selengkapnya, lihat Internal authoritative domain names.
Masuk ke . Pada halaman Authoritative Zone, klik tab User-defined Zones, lalu klik Add Zone.
Masukkan Internal Authoritative Domain Name, pilih VPC tempat nama domain akan berlaku, lalu klik OK. Dalam contoh ini, digunakan
kyuubi-kerberos.abc.CatatanJika opsi Domain Type tersedia, pilih Private Authoritative Acceleration Zone. Jika opsi Domain Type tidak tersedia, Anda tidak perlu memilih apa pun, dan domain Private Authoritative Acceleration Zone akan dibuat secara default.
Pada tab User-defined Zones, temukan nama domain target dan klik Settings di kolom Actions. Lalu, klik Add Record dan pilih Form Editor Mode pada kotak dialog.
Atur Record Type menjadi CNAME. Untuk Hostname, masukkan awalan. Dalam contoh ini, digunakan
test. Untuk Record Value, masukkan nama domain Layanan titik akhirep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com. Mengklik OK akan memetakan nama domain Layanan titik akhir ke test.kyuubi-kerberos.abc.Masuk ke kluster Kerberos dan uji koneksi jaringan.
ping test.kyuubi-kerberos.abc
Buat file keytab
Jalankan perintah berikut untuk memulai tool kadmin.local untuk Kerberos:
kadmin.localBuat principal dalam format
kyuubi/<fqdn>@<REALM>. Kami menyarankan Anda menggunakan nama domain endpointep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.comuntuk bagianfqdn. Jika Anda telah mengonfigurasi rekaman CNAME untuk meresolusi nama domain kustom, gunakan nama domain kustom tersebut, sepertitest.kyuubi-kerberos.abc.addprinc -randkey kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD4*****C204.COMEkspor file keytab dan keluar dari tool kadmin.local.
xst -kt /root/kyuubi.keytab kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD4*****C204.COM quitUnggah file keytab yang dihasilkan ke bucket Object Storage Service (OSS).
hadoop fs -put /root/kyuubi.keytab oss://<YOUR_BUCKET>.<region>.oss-dls.aliyuncs.com/
Konfigurasi Kyuubi Gateway
Untuk menggunakan Kerberos dengan Kyuubi Gateway, tambahkan Kyuubi Configuration berikut.
kyuubi.authentication KERBEROS
kyuubi.kinit.principal kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD43******7C204.COM
kyuubi.kinit.keytab /opt/kyuubi/work-dir/kyuubi.keytab
kyuubi.files oss://bucket/path/to/kyuubi.keytabParameter | Deskripsi |
kyuubi.authentication | Menentukan mode otentikasi yang digunakan oleh Kyuubi Gateway. Atur parameter ini ke |
kyuubi.kinit.principal | Menentukan principal yang digunakan oleh Kyuubi Gateway untuk otentikasi Kerberos. Formatnya adalah |
kyuubi.kinit.keytab | Menentukan file keytab yang digunakan oleh Kyuubi Gateway. Catatan: Jalurnya bersifat tetap. Anda hanya perlu mengganti nama file keytab. |
kyuubi.files | Jalur OSS ke file keytab yang telah Anda unggah di bagian "Buat file keytab". |
Jika Anda perlu menghubungkan ke Hive Metastore (HMS) yang diaktifkan Kerberos, tambahkan Spark Configuration berikut.
spark.hadoop.hive.metastore.uris thrift://master-1-1.c-1d36*****e840c.cn-hangzhou.emr.aliyuncs.com:9083
spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory
spark.hive.metastore.kerberos.principal hive/_HOST@EMR.C-DFD4*****C204.COM
spark.hive.metastore.sasl.enabled true
spark.emr.serverless.network.service.name <network_name>Parameter | Deskripsi |
spark.hadoop.hive.metastore.uris | Alamat Hive Metastore (HMS). |
spark.hadoop.hive.imetastoreclient.factory.class | Menentukan kelas pabrik untuk membuat klien HMS. |
spark.hive.metastore.kerberos.principal | Principal untuk HMS di lingkungan Kerberos. |
spark.hive.metastore.sasl.enabled | Menentukan apakah otentikasi Kerberos diaktifkan. |
spark.emr.serverless.network.service.name | Nama koneksi jaringan. |
Pada kluster dengan ketersediaan tinggi (HA), Anda dapat mengonfigurasi beberapa alamat Thrift untuk
metastore.uris. Alamat-alamat tersebut harus dipisahkan dengan koma, dan Anda harus menggunakan hostname, bukan alamat IP.Jika Anda hanya menentukan satu alamat Thrift untuk
metastore.uris, Anda dapat menggunakan alamat IP. Namun,metastore.kerberos.principalharus dalam formathive/<hostname of HMS>@<REALM>.Anda dapat menyederhanakan
metastore.kerberos.principalke formathive/_HOST@<REALM>hanya jikametastore.urismenggunakan hostname.
Simpan konfigurasi dan mulai Kyuubi Gateway.
Kirim pekerjaan
Jalankan perintah show databases untuk memverifikasi bahwa kluster Kerberos dapat terhubung ke Kyuubi Gateway dan memulai pekerjaan Spark.
Siapkan pengguna Kerberos yang memiliki izin yang diperlukan dan ekspor file keytab-nya.
Jalankan perintah berikut untuk mengekspor file keytab.
kadmin.local addprinc -randkey hadoop xst -kt /root/hadoop.keytab hadoop quit
Lakukan otentikasi dengan Kerberos menggunakan file keytab.
kinit -kt hadoop.keytab hadoopJalankan perintah berikut untuk terhubung ke Kyuubi Gateway dan memulai pekerjaan Spark.
/opt/apps/KYUUBI/kyuubi-1.9.2-1.0.0/bin/kyuubi-beeline -u 'jdbc:hive2://ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com:10009/;principal=kyuubi/_HOST@EMR.C-DFD43*****7C204.COM'Setelah terhubung, jalankan
show databases.
Jika pekerjaan Spark Anda perlu terhubung ke layanan Hive Metastore (HMS) atau Hadoop Distributed File System (HDFS) yang diaktifkan Kerberos, Anda harus memodifikasi file konfigurasi core-site.xml pada kluster HMS atau HDFS. Tambahkan properti berikut ke file tersebut agar pengguna kyuubi dapat melakukan impersonasi terhadap pengguna lain saat mengakses layanan. Jika tidak, koneksi mungkin gagal.
hadoop.proxyuser.kyuubi.hosts = *
hadoop.proxyuser.kyuubi.groups = *Kluster EMR DataLake versi terbaru sudah menyertakan properti ini secara default. Setelah menambahkan properti tersebut, Anda harus melakukan restart layanan HDFS atau HMS.