Mengonfigurasi Kerberos untuk endpoint gRPC Dataproc Metastore

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 akan menggunakan cluster Dataproc untuk membuat aset Kerberos berikut:

    • File Keytab.
    • File krb5.conf
    • Akun 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.

  • Buat bucket Cloud Storage atau dapatkan akses ke bucket yang ada. Anda harus menyimpan file krb5.conf di bucket ini.

Peran yang Diperlukan

Untuk mendapatkan izin yang Anda perlukan guna membuat Metastore Dataproc yang dikonfigurasi dengan Kerberos, minta administrator untuk memberi Anda peran IAM berikut di project Anda, berdasarkan prinsip hak istimewa minimum:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan 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 IAM dan kontrol akses Dataproc Metastore.

Mengonfigurasi Kerberos untuk Metastore Dataproc

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 Dataproc 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 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 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>.

Mengonfigurasi Dataproc sebelum mengirimkan tugas

Untuk menjalankan tugas Dataproc, 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 Dataproc utama yang terkait dengan layanan Dataproc Metastore dan mengupdate file container-executor.cfg.

  1. Di konsol Google Cloud, buka halaman VM Instances.
  2. Dalam daftar instance virtual machine, klik SSH di baris node utama Dataproc (your-cluster-name-m).

    Jendela browser akan terbuka di direktori beranda Anda di node.

  3. Dalam sesi ssh, buka file container-executor.cfg Hadoop.

    sudo vim /etc/hadoop/conf/container-executor.cfg
    

    Tambahkan baris berikut di setiap node Dataproc.

    allowed.system.users=hive
    

Mendapatkan tiket Kerberos

Petunjuk berikut menunjukkan cara membuat tiket Kerberos.

  1. Dalam 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 perintah klist -kte. File ini berisi nama host node utama.

(Opsional) Tambahkan akun utama baru

  1. 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"
    
  2. 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
    

Langkah selanjutnya