Topik ini menjelaskan cara mengaktifkan kontrol akses Ranger untuk Hive dan memberikan contoh konfigurasi izin Hive Ranger.
Prasyarat
Anda telah membuat kluster DataLake dan memilih layanan Ranger. Untuk informasi selengkapnya, lihat Buat kluster.
Catatan penggunaan
Setelah kontrol akses Ranger diaktifkan untuk Hive, layanan HiveServer2 akan memuat plugin Hive Ranger. Ranger hanya memverifikasi izin ketika Anda mengirimkan pekerjaan SQL melalui HiveServer2. Akses ke Hive dengan cara lain tidak akan memicu verifikasi ini.
-
Metode akses yang didukung untuk verifikasi izin
-
Mengakses HiveServer2 menggunakan klien Beeline.
-
Menyambung ke HiveServer2 menggunakan URL JDBC.
-
-
Metode akses yang tidak didukung untuk verifikasi izin
-
Menyambung langsung ke Metastore menggunakan klien Hive.
-
Menyambung langsung ke Metastore menggunakan API Hive-Client.
-
Kontrol akses Ranger hanya berlaku pada lapisan metadata Hive dan operasi SQL. Ranger tidak mendukung kontrol akses untuk lapisan penyimpanan OSS atau OSS-HDFS. Jangan mengonfigurasi kebijakan izin lapisan penyimpanan di Ranger karena tidak akan berlaku.
Prosedur
-
Buka halaman Cluster Service.
-
Masuk ke Konsol EMR on ECS.
-
Di bilah navigasi atas, pilih wilayah dan kelompok sumber daya sesuai kebutuhan Anda.
-
Di kolom Actions kluster target, klik Services.
-
-
Aktifkan Hive di Ranger.
-
Di halaman Services, temukan layanan Ranger-plugin dan klik Status-nya.
-
Di bagian Service Overview, aktifkan sakelar enableHive.
-
Di kotak dialog yang muncul, klik OK.
-
-
Restart HiveServer.
-
Di halaman Services, pilih .
-
Di bagian Components, klik Restart di kolom Actions untuk HiveServer.
-
Di kotak dialog yang muncul, masukkan Execution Reason dan klik OK.
-
Di kotak dialog Confirm, klik OK.
-
Konfigurasi izin
Ikhtisar
Izin Ranger dikonfigurasi di Ranger UI. Untuk petunjuk mengakses Ranger UI, lihat Ikhtisar Ranger.
Untuk mengonfigurasi izin Hive di Ranger, klik emr-hive di bawah HADOOP SQL, seperti yang ditunjukkan pada gambar berikut.
Jika layanan emr-hive tidak ditampilkan di Ranger UI, lakukan langkah-langkah berikut:
-
Masuk ke Konsol EMR on ECS.
-
Di halaman layanan kluster, temukan layanan Ranger-plugin dan klik Status untuk membuka halaman konfigurasi.
-
Cari parameter enableImpala dan atur nilainya menjadi true.
-
Simpan konfigurasi.
-
Segarkan halaman Ranger UI. Layanan emr-hive seharusnya kini muncul di bawah HADOOP SQL.
Setelah Anda membuka layanan emr-hive, Anda dapat melihat daftar semua kebijakan izin yang telah dikonfigurasi. Secara default, Ranger menyertakan beberapa kebijakan. Misalnya, satu kebijakan default memberikan pengguna hive (pengguna startup untuk layanan HiveServer) akses penuh ke semua resource database, tabel, kolom, UDF, dan URL. Kebijakan default lain memberikan semua pengguna izin create untuk database dan resource dalam database default.
Tambahkan kebijakan izin
Klik Add New Policy di pojok kanan atas untuk menambahkan kebijakan izin. Sebuah kebijakan memerlukan Nama Kebijakan yang unik. Kebijakan dasar terdiri dari tiga komponen utama: resource, pengguna, dan izin. Resource adalah aset yang diatur oleh kebijakan, seperti database, tabel, kolom, atau URL. Pengguna adalah akun yang dikenai kebijakan tersebut. Izin adalah jenis akses yang diberikan.
-
Resource kebijakan
Di Ranger untuk Hive, resource kebijakan mencakup database, table, column, url, dan udf. Anda dapat memilih jenis resource untuk mengonfigurasi izinnya. Secara default, formulir kebijakan menampilkan bidang untuk database, table, dan column. Anda dapat mengklik nama resource untuk beralih ke jenis lainnya.
Saat mengonfigurasi kebijakan, Anda harus memasukkan nama resource tersebut. Misalnya, Anda dapat memasukkan testdb untuk database, test untuk table, id untuk column, atau oss://test-bucket/test/tmp untuk url. Anda juga dapat memasukkan tanda bintang (*) untuk mencocokkan semua resource jenis tersebut, seperti yang ditunjukkan pada gambar berikut.

-
Pengguna kebijakan
Kebijakan harus diterapkan pada pengguna tertentu. Anda dapat memilih pengguna dari daftar Select User, seperti yang ditunjukkan pada gambar berikut.

-
Izin kebijakan
Klik Add Permissions untuk menampilkan bagian add/edit permissions. Lalu, pilih permission yang diperlukan, seperti yang ditunjukkan pada gambar berikut.

Contoh 1: Izin tingkat kolom
Kasus penggunaan umum untuk kontrol akses Ranger adalah memberikan izin select kepada pengguna tertentu pada suatu tabel. Hal ini memastikan bahwa pengguna dapat menjalankan kueri select columns from table. Gambar berikut menunjukkan contoh konfigurasinya.
Kebijakan ini memberikan pengguna test izin select pada column=id di table=test dalam database=testdb. Hal ini memungkinkan pengguna menjalankan kueri select id from testdb.test. Untuk mengizinkan pengguna memilih semua kolom dari testdb.test, atur bidang column menjadi *.
Contoh 2: Izin tingkat tabel
Di Ranger untuk Hive, izin create untuk tabel dapat dikonfigurasi pada tingkat tabel. Misalnya, jika Anda memberikan izin create untuk database=testdb, table=test, dan column=*, pengguna hanya dapat membuat tabel bernama test. Pengguna tidak dapat membuat tabel lain. Untuk mengizinkan pengguna membuat tabel apa pun dalam suatu database, berikan izin create untuk database=testdb, table=*, dan column=*. Gambar berikut menunjukkan konfigurasi ini.
Contoh 3: Izin URL
Saat Anda menjalankan pernyataan SQL Hive yang mencakup klausa LOCATION dengan skema oss, Ranger memverifikasi izin baca dan tulis pengguna untuk URL tersebut. Misalnya, menjalankan create external table test(id int, name string) location 'oss://test-bucket/test' memicu pemeriksaan izin untuk akses baca pada oss://test-bucket/test.
Dalam kasus ini, Anda harus mengonfigurasi kebijakan untuk izin URL. Untuk mengubah jenis resource menjadi url, lihat petunjuk di bagian "Tambahkan kebijakan izin". Gambar berikut menunjukkan contoh konfigurasinya.
Jika Anda tidak perlu mengontrol izin URL, Anda juga dapat memodifikasi kebijakan untuk all - url dalam Policy Name izin default dan tambahkan public ke Select Group. Hal ini memberikan semua pengguna izin baca dan tulis untuk semua URL. Langkah-langkah spesifiknya ditunjukkan pada gambar di bawah.
Di Ranger, public adalah kelompok khusus yang mewakili semua pengguna. Ketika Select Group kebijakan diatur ke public, izin dalam kebijakan tersebut berlaku untuk semua pengguna.

FAQ
Bagaimana cara mengonfigurasi izin Hive Ranger untuk akun read-only?
Untuk memberikan akun read-only hanya izin select pada resource Hive tertentu, buat kebijakan Ranger dengan langkah-langkah berikut:
-
Di Ranger UI, klik emr-hive di bawah HADOOP SQL untuk membuka daftar kebijakan Hive.
-
Klik Add New Policy di pojok kanan atas.
-
Konfigurasikan resource kebijakan:
-
database: Masukkan nama database target, atau masukkan * untuk mencocokkan semua database.
-
table: Masukkan nama tabel target, atau masukkan * untuk mencocokkan semua tabel.
-
column: Masukkan * untuk mencocokkan semua kolom, atau tentukan nama kolom individual.
-
-
Di bidang Select User, pilih akun read-only.
-
Klik Add Permissions, lalu pilih hanya izin select.
-
Klik Add untuk menyimpan kebijakan.
Jika Anda tidak yakin akun mana yang harus ditentukan, Anda dapat memilih semua pengguna dari daftar dropdown Select User, atau periksa log audit Ranger untuk mengidentifikasi akun yang sebelumnya pernah terhubung ke Hive.
Apakah EMR 4.9.0 mendukung penggunaan Ranger untuk mengontrol izin Impala?
Tidak. EMR 4.9.0 tidak mendukung penggunaan Ranger untuk mengontrol izin Impala. Untuk menggunakan Ranger dalam kontrol akses Impala, upgrade kluster Anda ke versi EMR yang lebih baru yang mendukung fitur ini, atau gunakan solusi pengelolaan izin alternatif.
> Hive