Topik ini menjelaskan cara menggunakan Data Lake Formation (DLF) dan produk E-MapReduce (EMR) untuk mengelola izin pada data lake dalam skenario bisnis tertentu.
Informasi latar belakang
Manajemen metadata dan kontrol izin data merupakan kemampuan dasar yang disediakan oleh produk DLF untuk membangun data lake. Dengan mengakses data lake melalui tampilan metadata yang disediakan oleh DLF, kita dapat menyelesaikan masalah konsistensi metadata di dalam data lake serta mengatasi tantangan terkait berbagi data. Berbagai mesin dapat memperoleh kemampuan manajemen izin tingkat perusahaan dengan mengintegrasikan izin DLF.
Konsep
EMR: Produk E-MapReduce dari Alibaba Cloud. Untuk informasi lebih lanjut, lihat Apa itu EMR pada ECS?.
DLF Catalog: Katalog data DLF (DLF), entitas tingkat atas dari arsitektur metadata DLF, mencakup informasi metadata seperti database dan tabel data. Untuk informasi lebih lanjut, lihat Katalog Data.
DLF Data Permissions: Sistem izin data yang disediakan oleh DLF untuk data lake, mendukung kontrol izin granular halus dalam empat dimensi: database, tabel data, kolom data, dan fungsi. Untuk informasi lebih lanjut, lihat Ikhtisar.
Skenario Bisnis
Sebuah perusahaan memiliki kluster EMR dengan berbagai mesin seperti Hive, Spark, Presto, dan Impala, dan berharap untuk menggunakan izin data terpadu untuk pengguna yang berbeda dalam skenario bisnis nyata. Situasi utama adalah sebagai berikut:
Super Administrator
Memiliki semua izin pada data data lake dan kemampuan untuk memberikan izin kepada orang lain.
Administrator Data Bisnis A
Memiliki semua izin penggunaan dan akses data terkait db_a dari bisnis A dan kemampuan untuk memberikan izin database kepada orang lain.
Pengembang Data Bisnis A
Memiliki semua izin penggunaan dan akses data terkait db_a dari bisnis A.
Analis Data Bisnis A
Memiliki izin akses ke beberapa kolom dari beberapa tabel di db_a terkait bisnis A, seperti akses ke col1 dan col2 di table1.
Prosedur
Buat kluster EMR dan gunakan DLF sebagai metadata.
Masuk ke Konsol E-MapReduce.
Buat kluster E-MapReduce dengan opsi berikut:
Business Scenario: Pilih Data Lake.
Optional Services: Pilih setidaknya komponen Hive dan DLF-Auth. Komponen lain dapat dipilih berdasarkan kebutuhan bisnis.
Metadata: Pilih DLF Unified Metadata.
DLF Catalog: Pilih DLF Catalog default atau buat katalog data baru. Contoh ini menggunakan catalog_test.
Lanjutkan dengan konfigurasi lainnya untuk menyelesaikan pembuatan kluster EMR.
CatatanJika Anda sudah memiliki kluster E-MapReduce tetapi belum menginstal komponen DLF-Auth, Anda dapat menambahkan komponen DLF-Auth melalui metode Add Service di dalam kluster EMR, lalu gunakan izin data DLF.
Jika Anda sudah memiliki kluster E-MapReduce tetapi metadata Hive tidak menggunakan DLF, Anda dapat memigrasi metadata sebelum menggunakan izin database DLF. Anda dapat menghubungi kami melalui grup DingTalk: 33719678.
Inisialisasi database dan tabel data yang relevan.
Masuk ke kluster EMR. Untuk informasi lebih lanjut, lihat Masuk ke Kluster.
Hubungkan ke Hive SQL melalui Beeline.
beeline -u jdbc:hive2://<primary node name>:10000Eksekusi pernyataan berikut untuk menginisialisasi data dan membuat data uji.
--Buat database dan tabel create database db_a; create table db_a.table1( col1 string, col2 string, col3 string ); create table db_a.table2( col1 string, col2 string, col3 string ); create database db_b; create table db_b.table1( col1 string, col2 string, col3 string ); --Inisialisasi data uji --db_a.table1 insert overwrite table db_a.table1 values('1','aliyun','emrA1'),('2','aliyun','dlfA1'); --db_a.table2 insert overwrite table db_a.table2 values('1','aliyun','emrA2'),('2','aliyun','dlfA2'); --db_b.table1 insert overwrite table db_b.table1 values('1','aliyun','emrB1'),('2','aliyun','dlfB1');
Inisialisasi pengguna RAM yang diperlukan untuk login setiap peran.
Buat pengguna RAM baru untuk Super Administrator: dlf_data_admin.
Buat pengguna RAM baru untuk Administrator Data Bisnis A: dlf_dba_admin.
Buat pengguna RAM baru untuk Pengembang Data Bisnis A: dlf_dba_dev.
Buat pengguna RAM baru untuk Analis Data Bisnis A: dlf_dba_analyst.
Aktifkan kontrol izin data.
Lengkapi dua langkah berikut untuk secara resmi mengaktifkan kontrol izin data untuk kluster EMR:
Aktifkan kontrol izin data di kluster EMR. Untuk informasi lebih lanjut, lihat DLF-Auth.
Aktifkan kontrol izin untuk Catalog di DLF. Untuk informasi lebih lanjut, lihat Konfigurasikan Izin.
CatatanUntuk penggunaan produksi, disarankan untuk mengaktifkan otentikasi LDAP untuk memastikan bahwa identitas pengguna diverifikasi secara legal. Contoh berikut adalah penjelasan sederhana tentang masalah izin dan tidak mengaktifkan otentikasi LDAP, sehingga tidak diperlukan kata sandi saat menghubungkan ke Beeline.
Berikan izin otorisasi konsol DLF kepada Super Administrator dan izin akses untuk semua data.
Masuk ke Konsol Data Lake Formation.
Di panel navigasi di sebelah kiri, pilih .
Di peran admin, tambahkan pengguna dlf_data_admin. Kemudian, dlf_data_admin memiliki izin administrator untuk mengelola semua data di DLF. Anda dapat mengonfigurasi izin data terkait untuk pengguna mana pun.
Jika dlf_data_admin perlu mengonfigurasi izin data untuk pengguna RAM di konsol DLF, Anda harus menambahkan kebijakan izin untuk dlf_data_admin di Konsol RAM: AliyunDLFFullAccess, AliyunRAMReadOnlyAccess.
Masuk ke kluster EMR, hubungkan ke Hive menggunakan dlf_data_admin, dan eksekusi HiveSQL.
beeline -u jdbc:hive2://<primary node name>:10000 -n dlf_data_adminselect * from db_a.table1; select * from db_b.table1;Setelah query SQL di atas berhasil, pengguna dlf_data_admin memiliki izin akses ke semua database dan tabel data.
Berikan izin otorisasi konsol DLF kepada Administrator Data Bisnis A untuk database db_a dan izin akses untuk data database db_a.
Ganti pengguna login situs web Alibaba Cloud menjadi pengguna dlf_data_admin, dan gunakan akun ini untuk memberikan otorisasi data kepada pengguna lain.
Masuk ke Konsol Data Lake Formation.
Di panel navigasi di sebelah kiri, pilih , dan klik Add Permission.
Masukkan informasi berikut:
Principal Type: RAM User/Role.
Choose Principal: dlf_dba_admin.
Resources: Resource Authorization.
SelectCatalog List: catalog_test.
Enter an item.Database: db_a.
Permissions:
Database-Data Permission: ALL.
Database-Granted Permission: ALL.
All Objects in Database-Data Permission: ALL.
All Objects in Database-Granted Permission: ALL.
Klik OK untuk menyimpan informasi otorisasi.
Jika dlf_dba_admin perlu mengonfigurasi izin data untuk pengguna RAM di konsol DLF, Anda harus menambahkan kebijakan izin untuk dlf_dba_admin di Konsol RAM: Aliyundlffullaccess, Aliyunramreadonlyaccess.
Masuk ke kluster EMR, hubungkan ke Hive menggunakan dlf_dba_admin, dan eksekusi HiveSQL.
beeline -u jdbc:hive2://<primary node name>:10000 -n dlf_dba_adminselect * from db_a.table1; select * from db_b.table1;Setelah query SQL pertama berhasil, pengguna dlf_dba_admin memiliki semua izin database db_a dan semua sumber daya di dalam database db_a.
Setelah query SQL kedua gagal, pengguna dlf_dba_admin tidak memiliki izin database db_a dan semua sumber daya di dalam database db_a.
Berikan izin kueri dan modifikasi kepada Pengembang Data Bisnis A untuk data database db_a.
Ganti pengguna login situs web Alibaba Cloud menjadi pengguna dlf_dba_admin, dan gunakan akun ini untuk memberikan otorisasi data kepada pengguna lain.
Masuk ke Konsol Data Lake Formation.
Di panel navigasi di sebelah kiri, pilih Data Permission>Data Permissions, dan klik Add Permission.
Masukkan informasi berikut:
Principal Type: RAM User/role.
Choose Principal: dlf_dba_dev.
Resources: Resource Authorization.
SelectCatalog List: catalog_test.
Enter an item.Database: db_a.
Permissions:
Database-Data Permission: ALL.
Database-Granted Permission: ALL.
All Objects in Database-Data Permission: ALL.
All Objects in Database-Granted Permission: ALL.
Klik OK untuk menyimpan informasi otorisasi.
Masuk ke kluster EMR, hubungkan ke Hive menggunakan dlf_dba_dev, dan eksekusi HiveSQL.
beeline -u jdbc:hive2://<primary node name>:10000 -n dlf_dba_devselect * from db_a.table1; insert into table db_a.table1 values('3','aliyun','emrA1'),('4','aliyun','dlfA1'); select * from db_b.table1; insert into table db_b.table1 values('3','aliyun','emrA1'),('4','aliyun','dlfA1');Setelah query SQL pertama dan kedua berhasil, pengguna dlf_dba_dev memiliki izin kueri dan modifikasi untuk database db_a dan semua sumber daya di dalam database db_a.
Setelah query SQL ketiga dan keempat gagal, pengguna dlf_dba_dev tidak memiliki izin kueri dan modifikasi untuk database db_b dan semua sumber daya di dalam database db_a.
Berikan izin akses kepada Analis Data Bisnis A untuk table1(col1, col2) di database db_a.
Di situs web Alibaba Cloud, masuk sebagai pengguna dlf_dba_admin, dan gunakan akun ini untuk memberikan otorisasi data kepada pengguna lain.
Masuk ke Konsol Data Lake Formation.
Di panel navigasi di sebelah kiri, pilih Data Permission>Data Permissions, dan klik Add Permission.
Masukkan informasi berikut:
Principal Type: RAM User/role.
Choose Principal: dlf_dba_analyst.
Resources: Resource Authorization.
Resource Type: Column.
SelectCatalog List: catalog_test.
SelectDatabase: db_a.
SelectTable: table1.
Permissions:
DataColumn-Data Permission: ALL.
Klik OK untuk menyimpan informasi otorisasi.
Masuk ke kluster EMR, hubungkan ke Hive menggunakan dlf_dba_analyst, dan eksekusi HiveSQL.
beeline -u jdbc:hive2://<primary node name>:10000 -n dlf_dba_analystselect * from db_a.table1; select col1,col2 from db_a.table1; insert into table db_a.table1 values('5','aliyun','emrA1'),('6','aliyun','dlfA1'); select * from db_b.table1;Setelah query SQL kedua berhasil, pengguna dlf_dba_dev memiliki izin kueri untuk db_a.table1(col1, col2).
Setelah query SQL pertama gagal, pengguna dlf_dba_dev tidak memiliki izin kueri untuk db_a.table1(col3).
Setelah query SQL ketiga gagal, pengguna dlf_dba_dev tidak memiliki izin modifikasi untuk data db_a.table1.
Setelah query SQL keempat gagal, pengguna dlf_dba_dev tidak memiliki izin kueri untuk data database db_b.