Mengonfigurasi kebijakan Apache Ranger untuk Spark SQL di HDInsight dengan Paket Keamanan Perusahaan
Artikel ini menjelaskan cara mengonfigurasi kebijakan Apache Ranger untuk Spark SQL dengan Paket Keamanan Perusahaan di HDInsight.
Dalam artikel ini, Anda akan mempelajari cara:
- Buat kebijakan Apache Ranger.
- Verifikasi kebijakan Ranger yang diterapkan.
- Terapkan panduan untuk mengatur Apache Ranger untuk Spark SQL.
Prasyarat
- Kluster Apache Spark di HDInsight versi 5.1 dengan Paket Keamanan Perusahaan
Koneksi ke UI admin Apache Ranger
Dari browser, sambungkan ke antarmuka pengguna admin Ranger dengan menggunakan URL
https://ClusterName.azurehdinsight.net/Ranger/
.Ubah
ClusterName
ke nama kluster Spark Anda.Masuk dengan menggunakan kredensial admin Microsoft Entra Anda. Kredensial admin Microsoft Entra tidak sama dengan kredensial kluster HDInsight atau kredensial Secure Shell simpul HDInsight Linux (SSH).
Membuat pengguna domain
Untuk informasi tentang cara membuat sparkuser
pengguna domain, lihat Membuat kluster HDInsight dengan ESP. Dalam skenario produksi, pengguna domain berasal dari penyewa Microsoft Entra Anda.
Membuat kebijakan Ranger
Di bagian ini, Anda membuat dua kebijakan Ranger:
- Kebijakan akses untuk mengakses
hivesampletable
dari Spark SQL - Kebijakan masking untuk mengaburkan kolom di
hivesampletable
Membuat kebijakan akses Ranger
Buka UI admin Ranger.
Di bawah HADOOP SQL, pilih hive_and_spark.
Pada tab Akses , pilih Tambahkan Kebijakan Baru.
Masukkan nilai berikut:
Properti Nilai Nama Kebijakan read-hivesampletable-all database Default tabel hivesampletable column * Pilih Pengguna sparkuser
Izin select Jika pengguna domain tidak diisi secara otomatis untuk Pilih Pengguna, tunggu beberapa saat agar Ranger disinkronkan dengan ID Microsoft Entra.
Pilih Tambahkan untuk menyimpan kebijakan.
Buka notebook Zeppelin dan jalankan perintah berikut untuk memverifikasi kebijakan:
%sql select * from hivesampletable limit 10;
Berikut hasilnya sebelum kebijakan diterapkan:
Berikut hasilnya setelah kebijakan diterapkan:
Membuat kebijakan masking Ranger
Contoh berikut menunjukkan cara membuat kebijakan untuk menutupi kolom:
Pada tab Masking , pilih Tambahkan Kebijakan Baru.
Masukkan nilai berikut:
Properti Nilai Nama Kebijakan mask-hivesampletable Database Apache Hive Default Tabel Apache Hive hivesampletable Kolom Apache Hive devicemake Pilih Pengguna sparkuser
Jenis Akses select Pilih Opsi Masking Hash Pilih Simpan untuk menyimpan kebijakan.
Buka notebook Zeppelin dan jalankan perintah berikut untuk memverifikasi kebijakan:
%sql select clientId, deviceMake from hivesampletable;
Catatan
Secara default, kebijakan untuk Apache Hive dan Spark SQL umum di Ranger.
Menerapkan panduan untuk menyiapkan Apache Ranger untuk Spark SQL
Skenario berikut menjelajahi panduan untuk membuat kluster HDInsight 5.1 Spark dengan menggunakan database Ranger baru dan dengan menggunakan database Ranger yang ada.
Skenario 1: Gunakan database Ranger baru saat membuat kluster HDInsight 5.1 Spark
Saat Anda menggunakan database Ranger baru untuk membuat kluster, repositori Ranger relevan yang berisi kebijakan Ranger untuk Apache Hive dan Spark dibuat dengan nama hive_and_spark dalam layanan Hadoop SQL pada database Ranger.
Jika Anda mengedit kebijakan, kebijakan tersebut diterapkan ke Apache Hive dan Spark.
Pertimbangkan poin-poin ini:
Jika Anda memiliki dua database metastore dengan nama yang sama yang digunakan untuk katalog Apache Hive (misalnya, DB1) dan Spark (misalnya, DB1):
- Jika Spark menggunakan katalog Spark (
metastore.catalog.default=spark
), kebijakan diterapkan ke database DB1 katalog Spark. - Jika Spark menggunakan katalog Apache Hive (
metastore.catalog.default=hive
), kebijakan diterapkan ke database DB1 katalog Apache Hive.
Dari perspektif Ranger, tidak ada cara untuk membedakan antara DB1 katalog Apache Hive dan Spark.
Dalam kasus seperti itu, kami sarankan Anda:
- Gunakan katalog Apache Hive untuk Apache Hive dan Spark.
- Pertahankan nama database, tabel, dan kolom yang berbeda untuk katalog Apache Hive dan Spark sehingga kebijakan tidak diterapkan ke database di seluruh katalog.
- Jika Spark menggunakan katalog Spark (
Jika Anda menggunakan katalog Apache Hive untuk Apache Hive dan Spark, pertimbangkan contoh berikut.
Katakanlah Anda membuat tabel bernama table1 melalui Apache Hive dengan pengguna xyz saat ini. Ini membuat file Hadoop Distributed File System (HDFS) bernama table1.db yang pemiliknya adalah pengguna xyz .
Sekarang bayangkan Anda menggunakan pengguna abc untuk memulai sesi Spark SQL. Dalam sesi pengguna abc ini, jika Anda mencoba menulis apa pun ke table1, itu terikat untuk gagal karena pemilik tabel adalah xyz.
Dalam kasus seperti itu, kami sarankan Anda menggunakan pengguna yang sama di Apache Hive dan Spark SQL untuk memperbarui tabel. Pengguna tersebut harus memiliki hak istimewa yang memadai untuk melakukan operasi pembaruan.
Skenario 2: Gunakan database Ranger yang ada (dengan kebijakan yang ada) saat membuat kluster HDInsight 5.1 Spark
Saat Anda membuat kluster HDInsight 5.1 dengan menggunakan database Ranger yang ada, repositori Ranger baru dibuat lagi pada database ini dengan nama kluster baru dalam format ini: hive_and_spark.
Katakanlah Anda memiliki kebijakan yang ditentukan dalam repositori Ranger yang sudah dinamai oldclustername_hive pada database Ranger yang ada di dalam layanan Hadoop SQL. Anda ingin berbagi kebijakan yang sama di kluster HDInsight 5.1 Spark baru. Untuk mencapai tujuan ini, gunakan langkah-langkah berikut.
Catatan
Pengguna yang memiliki hak istimewa admin Ambari dapat melakukan pembaruan konfigurasi.
Buka UI Ambari dari kluster HDInsight 5.1 baru Anda.
Buka layanan Spark3, lalu buka Konfigurasi.
Buka konfigurasi Advanced ranger-spark-security.
atau Anda juga dapat membuka konfigurasi ini di /etc/spark3/conf dengan menggunakan SSH.
Edit dua konfigurasi (ranger.plugin.spark.service.name dan ranger.plugin.spark.policy.cache.dir) untuk menunjuk ke repositori kebijakan lama oldclustername_hive, lalu simpan konfigurasi.
Ambari:
File XML:
Mulai ulang layanan Ranger dan Spark dari Ambari.
Buka UI admin Ranger dan klik tombol edit di bawah layanan HADOOP SQL .
Untuk layanan oldclustername_hive , tambahkan pengguna rangersparklookup di daftar policy.download.auth.users dan tag.download.auth.users dan klik simpan.
Kebijakan diterapkan pada database di katalog Spark. Jika Anda ingin mengakses database di katalog Apache Hive:
Masalah yang diketahui
- Integrasi Apache Ranger dengan Spark SQL tidak berfungsi jika admin Ranger tidak berfungsi.
- Di log audit Ranger, saat Anda mengarahkan mouse ke atas kolom Sumber Daya , itu tidak dapat memperlihatkan seluruh kueri yang Anda jalankan.