Topik ini menjelaskan cara mengaktifkan kontrol akses Ranger untuk Hive dan memberikan contoh terperinci konfigurasi izin Ranger Hive.
Prasyarat
Kluster DataLake telah dibuat dan layanan Ranger telah dipilih. Untuk informasi selengkapnya tentang cara membuat kluster, lihat Buat kluster.
Peringatan
Setelah Anda mengaktifkan kontrol akses Ranger untuk Hive, layanan HiveServer2 akan memuat plugin Ranger Hive. Verifikasi izin hanya dipicu ketika Anda mengirimkan pekerjaan SQL melalui HiveServer2. Akses ke Hive dengan metode lain tidak akan memicu verifikasi izin.
Metode akses yang mendukung verifikasi izin:
Mengakses HiveServer2 menggunakan klien Beeline.
Menyambung ke HiveServer2 menggunakan URL JDBC.
Metode akses yang tidak mendukung verifikasi izin:
Menyambung langsung ke Metastore menggunakan klien Hive.
Menyambung langsung ke Metastore menggunakan API Hive-Client.
Metode konfigurasi
Buka halaman Layanan Kluster.
Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya sesuai kebutuhan.
Di halaman EMR on ECS, pada kolom Tindakan untuk kluster target, klik Cluster Service.
Aktifkan Hive di Ranger.
Di halaman Services, di area layanan Ranger-plugin, klik Status.
Di area Service Overview, aktifkan sakelar enableHive.
Di kotak dialog yang muncul, klik OK.
Mulai ulang HiveServer.
Di halaman Cluster Service, pilih .
Di area Component List, temukan HiveServer, lalu di kolom Tindakan, klik Restart.
Di kotak dialog, masukkan Execution Reason dan klik OK.
Di kotak dialog Confirm, klik OK.
Konfigurasi izin
Ikhtisar
Anda dapat mengonfigurasi izin Ranger di halaman UI Ranger. Untuk informasi selengkapnya tentang cara mengakses halaman UI Ranger, lihat Ikhtisar Ranger.
Untuk mengonfigurasi izin Ranger Hive, klik emr-hive di bawah HADOOP SQL, seperti yang ditunjukkan pada gambar berikut.
Di halaman emr-hive, Anda dapat melihat daftar semua kebijakan akses yang telah dikonfigurasi. Ranger menyertakan beberapa kebijakan default. Misalnya, kebijakan default memberikan izin akses kepada pengguna hive—yang menjalankan layanan HiveServer—terhadap semua sumber daya, seperti database, tabel, kolom, fungsi yang ditentukan pengguna (UDF), dan URL. Kebijakan default lainnya memberikan semua pengguna izin Create pada database dan izin Create dalam database default.
Tambahkan kebijakan akses
Klik Add New Policy di pojok kanan atas untuk membuat kebijakan akses. Anda harus menentukan nama unik untuk kebijakan tersebut di bidang Nama Kebijakan. Konfigurasi izin dasar memerlukan tiga elemen: Sumber Daya, Pengguna, dan Izin. Sumber Daya menentukan sumber daya yang dikelola oleh kebijakan, seperti database, tabel, kolom, dan URL. Pengguna menentukan pengguna yang dikenai kebijakan tersebut. Izin menentukan jenis akses yang diberikan oleh kebijakan tersebut.
Sumber Daya Kebijakan
Di Ranger Hive, sumber daya kebijakan seperti database, table, column, url, dan udf digunakan untuk konfigurasi izin. Secara default, kebijakan menampilkan database, table, dan column. Anda dapat mengklik nama sumber daya untuk beralih ke sumber daya yang berbeda.
Saat mengonfigurasi kebijakan akses, masukkan nama sumber daya tersebut. Misalnya, atur database menjadi testdb, table menjadi test, column menjadi id, dan url menjadi oss://test-bucket/test/tmp. Anda juga dapat memasukkan tanda bintang (*) untuk menentukan semua sumber daya dari jenis tertentu, seperti yang ditunjukkan pada gambar berikut.

Pengguna Kebijakan
Kebijakan akses menentukan izin untuk pengguna. Dari daftar Select User, pilih pengguna untuk mengonfigurasi izin mereka, seperti yang ditunjukkan pada gambar berikut.

Izin Kebijakan
Klik Add Permissions. Di bagian add/edit permissions yang terbuka, pilih permission yang diperlukan, seperti yang ditunjukkan pada gambar berikut.

Contoh 1: Konfigurasi izin kolom
Kasus penggunaan umum untuk kontrol akses Ranger adalah memberikan izin Select pada suatu tabel kepada pengguna tertentu. Hal ini memastikan bahwa pengguna dapat menjalankan operasi select columns from table. Gambar berikut menunjukkan contoh konfigurasi izin tersebut.
Kebijakan ini memberikan pengguna test izin select pada kolom id column dari tabel test table di database testdb database. Pengguna kemudian dapat menjalankan select id from testdb.test. Untuk mengizinkan pengguna memilih semua kolom dari tabel testdb.test, atur column menjadi *.
Contoh 2: Konfigurasi izin tabel
Di Ranger Hive, Anda dapat mengonfigurasi izin pembuatan tabel di tingkat tabel. Misalnya, jika Anda mengonfigurasi izin Create dengan database=testdb, table=test, dan column=*, pengguna hanya dapat membuat tabel test. Jika Anda ingin mengizinkan pengguna membuat tabel apa pun dalam suatu database, Anda perlu mengonfigurasi izin Create dengan database=testdb, table=*, dan column=*. Konfigurasi ini ditunjukkan pada gambar berikut.
Contoh 3: Konfigurasi izin URL
Jika pernyataan Hive SQL yang Anda jalankan berisi informasi lokasi dan skema lokasinya adalah oss, sistem akan memeriksa apakah Anda memiliki izin baca dan tulis pada lokasi tersebut. Misalnya, saat Anda menjalankan pernyataan create external table test(id int, name string) location 'oss://test-bucket/test', sistem akan memeriksa apakah Anda memiliki izin baca pada oss://test-bucket/test.
Dalam kasus ini, Anda harus mengonfigurasi kebijakan akses untuk URL tersebut. Untuk informasi tentang cara mengganti sumber daya ke URL, lihat bagian Tambahkan kebijakan akses. Gambar berikut menunjukkan contoh konfigurasinya.
Jika Anda tidak perlu mengontrol izin URL, Anda juga dapat memodifikasi kebijakan all - url di bawah Policy Name. Di bidang Select Group, tambahkan public. Hal ini memberikan semua pengguna izin baca dan tulis ke semua URL. Gambar berikut menunjukkan langkah-langkahnya.
Di Ranger, public adalah kelompok khusus yang mencakup semua pengguna. Jika Anda mengatur Select Group menjadi public dalam suatu kebijakan, kebijakan tersebut berlaku untuk semua pengguna.

> Hive