Gunakan Data Lake Formation (DLF) dan E-MapReduce (EMR) untuk menerapkan kontrol akses terpadu pada data lake melalui contoh skenario bisnis dunia nyata.
Latar Belakang
DLF menyediakan tampilan metadata terpadu yang mengatasi masalah konsistensi metadata dan berbagi data. Mesin komputasi yang terintegrasi dengan DLF juga memperoleh kemampuan kontrol akses tingkat enterprise.
Konsep Utama
-
EMR: E-MapReduce adalah layanan Alibaba Cloud untuk pemrosesan data besar. Untuk informasi selengkapnya, lihat Apa itu E-MapReduce.
-
DLF Catalog: Entitas tingkat teratas dalam sistem metadata DLF yang dapat berisi metadata objek seperti database dan tabel. Untuk informasi selengkapnya, lihat data catalog.
-
Izin data DLF: Sistem izin data yang disediakan DLF untuk data lake, mendukung kontrol akses detail halus pada empat level: database, tabel, kolom, dan fungsi. Untuk informasi selengkapnya, lihat Ikhtisar izin data.
Skenario Bisnis
Sebuah perusahaan yang menggunakan kluster EMR dengan beberapa mesin kueri (termasuk Hive, Spark, Presto, dan Impala) ingin menerapkan sistem kontrol akses terpadu untuk mengelola akses data bagi peran-peran berikut:
-
super administrator
-
Memiliki semua izin pada data lake dan dapat memberikannya kepada pengguna lain.
-
-
administrator data bisnis A
-
Memiliki akses penuh ke semua data terkait Bisnis A di database
db_adan dapat memberikan izin pada database tersebut kepada pengguna lain.
-
-
Business A, pengembang data
-
Memiliki akses penuh ke semua data di database
db_a.
-
-
Analis Data Bisnis
-
Memiliki akses ke kolom tertentu dalam tabel tertentu di database
db_a, seperti kolomcol1dancol2pada tabeltable1.
-
Prosedur
-
Buat kluster EMR yang menggunakan DLF untuk manajemen metadata.
-
Masuk ke Konsol E-MapReduce.
-
Buat kluster EMR dan tentukan opsi berikut:
-
Business Scenario: Pilih Data Lake.
-
Optional Services: Pilih setidaknya komponen Hive dan DLF-Auth. Pilih komponen lain sesuai kebutuhan bisnis Anda.
-
Metadata: Pilih DLF Unified Metadata.
-
DLF Catalog: Pilih DLF Catalog default atau buat yang baru. Tutorial ini menggunakan
catalog_testsebagai contoh.
-
-
Konfigurasikan pengaturan lain sesuai kebutuhan dan buat kluster EMR.
Catatan-
Jika kluster E-MapReduce yang sudah ada tidak memiliki komponen DLF-Auth, Anda dapat menambahkannya sebagai layanan untuk menggunakan izin data DLF.
-
Jika Anda memiliki kluster E-MapReduce yang sudah ada dengan metadata Hive yang tidak dikelola oleh DLF, Anda harus melakukan migrasi metadata terlebih dahulu sebelum dapat menggunakan izin data DLF.Anda juga dapat menghubungi kami melalui grup DingTalk: 33719678.
-
-
-
Inisialisasi database dan tabel yang diperlukan.
-
Masuk ke kluster EMR. Untuk informasi selengkapnya, lihat Masuk ke kluster.
-
Hubungkan ke Hive menggunakan Beeline.
beeline -u jdbc:hive2://<primary_node_name>:10000 -
Jalankan pernyataan berikut untuk menginisialisasi 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');
-
-
Buat Pengguna RAM yang diperlukan untuk setiap peran.
-
super administrator: Buat Pengguna RAM bernama
dlf_data_admin. -
administrator data bisnis A: Buat Pengguna RAM bernama
dlf_dba_admin. -
developer data bisnis A: Buat Pengguna RAM bernama
dlf_dba_dev. -
analis data bisnis A: Buat Pengguna RAM bernama
dlf_dba_analyst.
-
-
Aktifkan kontrol akses.
Untuk mengaktifkan kontrol akses pada kluster EMR, lakukan langkah-langkah berikut:
-
Aktifkan kontrol akses di kluster EMR. Untuk informasi selengkapnya, lihat DLF-Auth.
-
Aktifkan kontrol akses untuk DLF Catalog di DLF. Untuk informasi selengkapnya, lihat Mengonfigurasi izin.
CatatanUntuk penggunaan produksi, kami merekomendasikan agar Anda juga mengaktifkan autentikasi LDAP guna memastikan identitas pengguna divalidasi dengan benar. Tutorial ini tidak mengaktifkan autentikasi LDAP demi kesederhanaan, sehingga Anda tidak diminta memasukkan kata sandi saat menghubungkan dengan Beeline.
-
-
Konfigurasikan izin untuk super administrator agar dapat mengelola izin di Konsol Data Lake Formation dan mengakses semua data.
-
Pada panel navigasi kiri, pilih .
-
Tambahkan pengguna
dlf_data_adminke peran Admin. Penggunadlf_data_adminkini menjadi administrator yang dapat mengelola semua izin data di DLF dan mengonfigurasikannya untuk pengguna mana pun. -
Agar pengguna
dlf_data_admindapat mengonfigurasi izin data untuk Pengguna RAM di Konsol Data Lake Formation, Anda juga harus menyambungkan kebijakan AliyunDLFFullAccess dan AliyunRAMReadOnlyAccess ke pengguna ini di Konsol RAM. -
Masuk ke kluster EMR, hubungkan ke Hive sebagai pengguna
dlf_data_admin, dan jalankan pernyataan HiveQL.beeline -u jdbc:hive2://<primary_node_name>:10000 -n dlf_data_adminselect * from db_a.table1; select * from db_b.table1;Kueri berhasil, yang menunjukkan bahwa pengguna
dlf_data_adminmemiliki akses ke semua database dan tabel.
-
Konfigurasikan izin untuk administrator data bisnis A agar dapat memberikan izin pada database
db_adi Konsol Data Lake Formation dan mengakses semua data di database tersebut.-
Beralih ke Pengguna RAM
dlf_data_admindi konsol Alibaba Cloud. Gunakan akun ini untuk langkah otorisasi berikutnya. -
Pada panel navigasi kiri, pilih , lalu klik Add Permission.
-
Konfigurasikan parameter berikut:
-
Principal Type: RAM User/Role.
-
Choose Principal: dlf_dba_admin.
-
Resources: Resource Authorization.
-
Select Catalog: catalog_test.
-
Select Database: db_a.
-
Permissions:
-
Database - Data Permission: All.
-
Database - Granted Permission: All.
-
All objects in the database - Data Permission: All.
-
All objects in the database - Granted Permission: All.
-
-
-
Klik OK untuk menyimpan otorisasi.
-
Agar pengguna
dlf_dba_admindapat mengonfigurasi izin data untuk Pengguna RAM lain di Konsol Data Lake Formation, Anda juga harus menyambungkan kebijakan AliyunDLFFullAccess dan AliyunRAMReadOnlyAccess ke pengguna ini di Konsol RAM. -
Masuk ke kluster EMR, hubungkan ke Hive sebagai pengguna
dlf_dba_admin, dan jalankan pernyataan HiveQL.beeline -u jdbc:hive2://<primary_node_name>:10000 -n dlf_dba_adminselect * from db_a.table1; select * from db_b.table1;Kueri pertama berhasil karena pengguna memiliki izin untuk semua resource di database
db_a.Kueri kedua gagal karena pengguna tidak memiliki izin untuk resource di database
db_b.
-
-
Konfigurasikan izin untuk developer data bisnis A agar dapat mengkueri dan memodifikasi data di database
db_a.-
Beralih ke Pengguna RAM
dlf_dba_admindi konsol Alibaba Cloud. Gunakan akun ini untuk memberikan izin data kepada pengguna lain. -
Pada panel navigasi kiri, pilih Data Permission > Data Permissions, lalu klik Add Permission.
-
Konfigurasikan parameter berikut:
-
Principal Type: RAM User/Role.
-
Choose Principal: dlf_dba_dev.
-
Resources: Resource Authorization.
-
Select Catalog: catalog_test.
-
Select Database: db_a.
-
Permissions:
-
Database - Data Permission: All.
-
Database - Granted Permission: None.
-
All objects in the database - Data Permission: All.
-
All objects in the database - Granted Permission: All.
-
-
-
Klik OK untuk menyimpan otorisasi.
-
Masuk ke kluster EMR, hubungkan ke Hive sebagai pengguna
dlf_dba_dev, dan jalankan pernyataan HiveQL.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');Pernyataan SQL pertama dan kedua berhasil, yang mengonfirmasi bahwa pengguna
dlf_dba_devmemiliki izin kueri dan modifikasi pada databasedb_aserta semua resource-nya.Pernyataan SQL ketiga dan keempat gagal karena pengguna
dlf_dba_devtidak memiliki izin untuk mengkueri atau memodifikasi databasedb_b.
-
-
Tetapkan izin untuk analis data Bisnis A agar dapat mengakses
table1(col1, col2)di databasedb_a.-
Masuk ke website Alibaba Cloud sebagai Pengguna RAM
dlf_dba_admin. Gunakan akun ini untuk memberikan izin data kepada pengguna lain. -
Masuk ke Konsol Data Lake Formation.
-
Pada panel navigasi kiri, pilih Data Permission > Data Permissions, lalu klik Add Permission.
-
Masukkan informasi berikut:
-
Principal Type: RAM User/Role.
-
Choose Principal: dlf_dba_analyst.
-
Resources: Resource Authorization.
-
Resource Type: Column.
-
Select Data Catalog: catalog_test.
-
Select Database: db_a.
-
Select Table: table1.
-
Permissions:
-
Column-Data Permission: All.
-
-
-
Klik OK untuk menyimpan informasi otorisasi.
-
Masuk ke kluster EMR, hubungkan ke Hive sebagai
dlf_dba_analyst, dan jalankan perintah HiveSQL.beeline -u jdbc:hive2://<name of the primary node>: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;Pernyataan SQL kedua berhasil karena pengguna
dlf_dba_analystmemiliki izin untuk mengkueri kolomcol1dancol2pada tabeldb_a.table1.Pernyataan SQL pertama gagal karena pengguna
dlf_dba_analysttidak memiliki izin untuk mengkueri kolomcol3pada tabeldb_a.table1.Pernyataan SQL ketiga gagal karena pengguna
dlf_dba_analysttidak memiliki izin untuk memodifikasi data pada tabeldb_a.table1.Pernyataan SQL keempat gagal karena pengguna
dlf_dba_analysttidak memiliki izin untuk mengkueri data di databasedb_b.
-
Rangkuman
Contoh di atas menunjukkan cara menggunakan izin data DLF dalam skenario bisnis khas. Anda dapat mengonfigurasi izin sesuai kebutuhan untuk memberikan tingkat akses yang sesuai kepada berbagai pengguna pada berbagai resource.