Topik ini menjelaskan cara mengaktifkan kontrol akses Ranger untuk Hive dan memberikan contoh konfigurasi izin Hive di 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 Ranger Hive. Ranger hanya melakukan verifikasi izin saat Anda mengirimkan pekerjaan SQL melalui HiveServer2. Akses ke Hive dengan cara lain tidak memicu verifikasi ini.
-
Metode akses yang didukung untuk verifikasi izin
-
Mengakses HiveServer2 menggunakan klien Beeline.
-
Menghubungkan ke HiveServer2 menggunakan JDBC URL.
-
-
Metode akses yang tidak didukung untuk verifikasi izin
-
Menghubungkan langsung ke Metastore menggunakan klien Hive.
-
Menghubungkan langsung ke Metastore menggunakan Hive-Client API.
-
Prosedur
-
Buka halaman Cluster Service.
-
Masuk ke Konsol EMR on ECS.
-
Pada bilah navigasi atas, pilih wilayah dan kelompok sumber daya sesuai kebutuhan Anda.
-
Pada kolom Actions kluster target, klik Services.
-
-
Aktifkan Hive di Ranger.
-
Pada halaman Services, temukan layanan Ranger-plugin dan klik Status-nya.
-
Pada bagian Service Overview, aktifkan sakelar enableHive ranger.
-
Pada kotak dialog yang muncul, klik OK.
-
-
Restart HiveServer.
-
Pada halaman Services, pilih .
-
Pada bagian Components, klik Restart pada kolom Actions untuk HiveServer.
-
Pada kotak dialog yang muncul, masukkan Execution Reason dan klik OK.
-
Pada 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. Setelah membuka halaman Ranger Service Manager, Anda dapat menemukan instans layanan emr-hive yang telah dibuat di bawah kategori HADOOP SQL. Anda dapat melihat, mengedit, atau menghapus instans layanan ini.
Jika layanan emr-hive tidak ditampilkan di Ranger UI, lakukan langkah-langkah berikut:
-
Masuk ke Konsol EMR on ECS.
-
Pada halaman layanan kluster, temukan layanan Ranger-plugin dan klik Status untuk membuka halaman konfigurasi.
-
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 lain.
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. Setiap baris konfigurasi resource berisi dropdown jenis resource (misalnya column), bidang input nilai (wajib diisi), dan sakelar Include untuk menentukan apakah resource tersebut disertakan atau dikecualikan.
-
Pengguna kebijakan
Kebijakan harus diterapkan pada pengguna tertentu. Anda dapat memilih pengguna dari daftar Select User. Di kotak dialog Select User, pilih pengguna yang akan diberi otorisasi (misalnya,
test). -
Izin kebijakan
Klik Add Permissions untuk menampilkan bagian add/edit permissions. Di panel add/edit permissions, pilih izin yang diperlukan (misalnya, Select dan Create), lalu klik Add untuk mengonfirmasi.
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. Konfigurasikan kebijakan Ranger dengan nilai bidang berikut:
-
Policy Name:
select-permission-example -
database:
testdb(Include) -
table:
test(Include) -
column:
id(Include) -
Audit Logging: Yes
-
Allow Conditions: Select User adalah
test, Permissions adalah select
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=*.
Buat kebijakan akses di Apache Ranger dengan konfigurasi utama berikut:
-
Policy Name:
create-permission-example -
Policy Type: Access
-
database:
testdb(Include enabled) -
table:
*(Include enabled) -
column:
*(Include enabled) -
Audit Logging: Yes
Pada bagian Allow Conditions, atur Select User menjadi test dan Permissions menjadi Create.
Contoh 3: Izin URL
Saat Anda menjalankan pernyataan Hive SQL 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". Edit kebijakan untuk layanan emr-hive di Ranger dengan konfigurasi utama berikut:
-
Policy Name:
url-permission-example -
Jenis resource: url, nilai:
oss://test-bucket/test, dengan Recursive diaktifkan -
Allow Conditions: User adalah
test, Permissions adalah Read
Jika Anda tidak perlu mengontrol izin URL, Anda juga dapat mengubah kebijakan untuk all - url dalam Policy Name izin default dan menambahkan public ke Select Group. Hal ini memberikan semua pengguna izin baca dan tulis untuk semua URL.
Di Ranger, public adalah kelompok khusus yang mewakili semua pengguna. Ketika Select Group suatu kebijakan diatur ke public, izin dalam kebijakan tersebut berlaku untuk semua pengguna.
> Hive