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
Pahami dasar-dasar Kerberos.
Dalam petunjuk ini, Anda menggunakan cluster Dataproc untuk membuat aset Kerberos berikut:
- File Keytab.
- File
krb5.conf
- Entity utama Kerberos.
Untuk 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 dari cluster Dataproc.
Membuat bucket Cloud Storage atau mendapatkan akses ke bucket yang sudah ada. Anda harus menyimpan file
krb5.conf
dalam bucket ini.
Peran yang Diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat Dataproc Metastore yang dikonfigurasi dengan Kerberos, minta administrator untuk memberi Anda peran IAM berikut pada project, 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 Metastore Dataproc (
roles/metastore.metadataEditor
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Peran yang telah ditentukan ini berisi izin metastore.services.create
, yang diperlukan untuk membuat Metastore Dataproc 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 Kontrol akses dan IAM Dataproc Metastore.
Mengonfigurasi Kerberos untuk Dataproc Metastore
Petunjuk berikut menunjukkan cara mengonfigurasi Kerberos untuk layanan Dataproc Metastore yang menggunakan endpoint gRPC.
Pertama, Anda membuat Metastore Dataproc yang menggunakan endpoint gRPC. Setelah itu, Anda membuat cluster Dataproc yang dikonfigurasi dengan Kerberos dan menghubungkannya.
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 Dataproc dan terhubung ke layanan Anda
Untuk membuat Dataproc yang dikonfigurasi dengan Kerberos, jalankan perintah gcloud dataproc clusters create
berikut.
Dalam perintah ini, opsi --enable-kerberos
akan membuat file
Keytab Kerberos, file krb5.conf
, dan akun utama. Semua nilai ini dibuat menggunakan nama dan setelan default yang ditetapkan oleh cluster Dataproc.
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 Dataproc Anda.PROJECT_ID
: ID project Google Cloud Anda.REGION
: region Google Cloud tempat Anda ingin membuat cluster Dataproc.DATAPROC_METASTORE_NAME
: nama layanan Dataproc Metastore yang Anda lampirkan ke cluster, dalam format berikut:projects/<my_project>/locations/<location>/services/<service_id>
.
Konfigurasi Dataproc sebelum mengirimkan tugas
Untuk menjalankan tugas Dataproc, Anda harus menambahkan pengguna hive
ke properti allowed.system.users
di file container-executor.cfg
Hadoop. Hal ini memungkinkan pengguna menjalankan kueri untuk mengakses data,
seperti select * from
.
Petunjuk berikut menunjukkan cara menerapkan SSH ke cluster Dataproc utama Anda yang terkait dengan layanan Dataproc Metastore Anda dan perbarui file container-executor.cfg
.
- Di konsol Google Cloud, buka halaman VM Instances.
Dalam daftar instance virtual machine, klik SSH di baris node utama Dataproc (
your-cluster-name-m
).Jendela browser akan terbuka di direktori beranda Anda pada node.
Di sesi SSH, buka file
container-executor.cfg
Hadoop.sudo vim /etc/hadoop/conf/container-executor.cfg
Tambahkan baris berikut pada setiap node Dataproc.
allowed.system.users=hive
Dapatkan tiket kerberos
Petunjuk berikut menunjukkan cara membuat tiket Kerberos.
Pada sesi ssh cluster Dataproc, buat tiket kerberos dan hubungkan ke layanan Dataproc Metastore Anda.
Perintah ini menggunakan nama keytab default yang dihasilkan oleh cluster Dataproc 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
_HOST
diambil saat file keytab dicantumkan menggunakan perintahklist -kte
. Isinya adalah nama host {i>node<i} utama.
(Opsional) Menambahkan akun utama baru
Untuk menambahkan akun utama 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