Halaman ini menjelaskan cara mengonfigurasi Kerberos untuk layanan Dataproc Metastore yang menggunakan protokol endpoint gRPC. Jika layanan Dataproc Metastore Anda menggunakan protokol endpoint Thrift, lihat Mengonfigurasi Kerberos untuk endpoint Thrift.
Sebelum memulai
Memahami dasar-dasar Kerberos.
Dalam petunjuk ini, Anda menggunakan cluster Managed Service untuk Apache Spark guna membuat aset Kerberos berikut:
- File Keytab.
- File
krb5.conf. - Prinsipal Kerberos.
Untuk mengetahui informasi selengkapnya tentang cara kerja aset Kerberos ini dengan layanan Dataproc Metastore, lihat Tentang Kerberos.
Buat dan hosting KDC Kerberos Anda sendiri atau pelajari cara menggunakan KDC lokal cluster Managed Service untuk Apache Spark.
Buat bucket Cloud Storage atau dapatkan akses ke bucket yang sudah ada. Anda harus menyimpan file
krb5.confdi bucket ini.
Peran yang Diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat Dataproc Metastore yang dikonfigurasi dengan Kerberos, minta administrator untuk memberi Anda peran IAM berikut di project Anda, berdasarkan prinsip hak istimewa terendah:
- Memberikan kontrol penuh atas resource Dataproc Metastore (
roles/metastore.editor) - Memberikan akses penuh ke semua resource Dataproc Metastore, termasuk administrasi kebijakan IAM (
roles/metastore.admin) - Memberikan akses baca-tulis gRPC ke metadata Dataproc Metastore (
roles/metastore.metadataEditor)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran yang telah ditentukan ini berisi
metastore.services.create
izin,
yang diperlukan untuk
membuat Dataproc Metastore yang dikonfigurasi dengan Kerberos .
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya tentang peran dan izin Dataproc Metastore tertentu, lihat Mengelola akses dengan IAM.Untuk mengetahui informasi selengkapnya, lihat IAM dan kontrol akses Dataproc Metastore.
Mengonfigurasi Kerberos untuk Dataproc Metastore
Petunjuk berikut menunjukkan cara mengonfigurasi Kerberos untuk layanan Dataproc Metastore yang menggunakan endpoint gRPC.
Pertama, Anda membuat Dataproc Metastore yang menggunakan endpoint gRPC. Setelah itu, Anda membuat cluster Managed Service untuk Apache Spark yang dikonfigurasi dengan Kerberos dan terhubung ke cluster tersebut.
Membuat layanan Dataproc Metastore dengan endpoint gRPC
Untuk membuat Dataproc Metastore yang menggunakan endpoint gRPC, jalankan
perintah gcloud metastore services create berikut:
gcloud
gcloud metastore services create SERVICE \
--instance-size=medium \
--endpoint-protocol=grpc
Ganti:
SERVICE: Nama layanan Dataproc Metastore Anda
Membuat cluster Managed Service untuk Apache Spark dan terhubung ke layanan Anda
Untuk membuat Managed Service untuk Apache Spark yang dikonfigurasi dengan Kerberos, jalankan perintah gcloud dataproc clusters create berikut.
Dalam perintah ini, opsi --enable-kerberos membuat file Keytab Kerberos, file krb5.conf, dan prinsipal. Semua nilai ini dibuat menggunakan nama dan setelan default yang ditetapkan oleh cluster Managed Service untuk Apache Spark.
gcloud
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--image-version 2.0-debian10 \
--dataproc-metastore DATAPROC_METASTORE_NAME \
--enable-kerberos \
--scopes 'https://www.googleapis.com/auth/cloud-platform'
Ganti:
CLUSTER_NAME: Nama cluster Managed Service untuk Apache Spark Anda.PROJECT_ID: ID project Google Cloud Anda.REGION: Region tempat Anda ingin membuat cluster Managed Service untuk Apache Spark. Google CloudDATAPROC_METASTORE_NAME: Nama layanan Dataproc Metastore yang Anda lampirkan ke cluster, dalam format berikut:projects/<my_project>/locations/<location>/services/<service_id>.
Mengonfigurasi Managed Service untuk Apache Spark sebelum mengirimkan tugas
Untuk menjalankan tugas Managed Service untuk Apache Spark,
Anda harus menambahkan pengguna hive ke properti allowed.system.users dalam
file container-executor.cfg Hadoop. Hal ini memungkinkan pengguna menjalankan kueri untuk mengakses data, seperti select * from.
Petunjuk berikut menunjukkan cara melakukan SSH ke cluster utama Managed Service untuk Apache Spark yang terkait dengan layanan Dataproc Metastore Anda dan memperbarui file container-executor.cfg.
- Di Google Cloud konsol, buka halaman Instance VM.
Dalam daftar instance virtual machine, klik SSH di baris node utama Managed Service untuk Apache Spark (
your-cluster-name-m).Jendela browser akan terbuka di direktori beranda Anda di node.
Dalam sesi SSH, buka file
container-executor.cfgHadoop.sudo vim /etc/hadoop/conf/container-executor.cfgTambahkan baris berikut di setiap node Managed Service untuk Apache Spark.
allowed.system.users=hive
Mendapatkan tiket Kerberos
Petunjuk berikut menunjukkan cara membuat tiket Kerberos.
Dalam sesi SSH cluster Managed Service untuk Apache Spark, buat tiket Kerberos dan hubungkan ke layanan Dataproc Metastore Anda.
Perintah ini menggunakan nama keytab default yang dibuat oleh cluster Managed Service untuk Apache Spark Anda.
sudo klist -kte /etc/security/keytab/hive.service.keytab sudo kinit -kt /etc/security/keytab/hive.service.keytab hive/_HOST@${realm} sudo klist # gets the ticket information.Nilai
_HOSTdiambil saat file keytab dicantumkan menggunakan perintahklist -kte. Nilai tersebut berisi nama host node utama.
(Opsional) Menambahkan prinsipal baru
Untuk menambahkan prinsipal baru, jalankan perintah berikut.
sudo kadmin.local -q "addprinc -randkey PRINCIPAL" sudo kadmin.local -q "ktadd -k /etc/security/keytab/hive.service.keytab PRINCIPAL"Dapatkan tiket Kerberos.
sudo klist -kte /etc/security/keytab/hive.service.keytab sudo kinit -kt /etc/security/keytab/hive.service.keytab PRINCIPAL sudo klist sudo hive