Kontrol akses dan konfigurasikan data lake di Azure Data Lake Storage Gen2

Artikel ini membantu Anda menilai dan memahami mekanisme kontrol akses di Azure Data Lake Storage Gen2. Mekanisme ini termasuk kontrol akses berbasis peran Azure (RBAC) dan daftar kontrol akses (ACL). Anda belajar:

  • Cara mengevaluasi akses antara Azure RBAC dan ACL
  • Cara mengonfigurasi kontrol akses menggunakan salah satu atau kedua mekanisme ini
  • Cara menerapkan mekanisme kontrol akses ke pola implementasi data lake

Anda memerlukan pengetahuan dasar tentang kontainer penyimpanan, kelompok keamanan, Azure RBAC, serta ACL. Untuk membingkai diskusi, kami mereferensikan struktur data lake umum zona yang mentah, diperkaya, dan dikumpulkan.

Anda dapat menggunakan dokumen ini dengan manajemen akses Data.

Menggunakan peran Azure RBAC bawaan

Azure Storage memiliki dua lapisan akses: manajemen layanan dan data. Anda dapat mengakses langganan dan akun penyimpanan melalui lapisan manajemen layanan. Akses kontainer, blob, dan sumber daya data lainnya melalui lapisan data. Misalnya, jika Anda menginginkan daftar akun penyimpanan dari Azure, kirimkan permintaan ke titik akhir manajemen. Jika Anda ingin daftar sistem file, folder, atau file di akun penyimpanan, kirim permintaan ke titik akhir layanan.

Peran dapat berisi izin untuk mengakses lapisan manajemen atau data. Peran Pembaca memberikan akses baca-saja ke sumber daya lapisan manajemen tetapi tidak untuk membaca akses ke data.

Peran seperti Pemilik, Kontributor, Pembaca, dan Kontributor Akun Penyimpanan, mengizinkan prinsip keamanan untuk mengelola akun penyimpanan. Tetapi mereka tidak menyediakan akses ke data di akun tersebut. Hanya peran yang secara eksplisit ditentukan untuk akses data yang mengizinkan prinsip keamanan untuk mengakses data. Peran ini, kecuali Pembaca, mendapatkan akses ke kunci penyimpanan untuk mengakses data.

Peran manajemen bawaan

Berikut ini adalah peran manajemen bawaan.

  • Pemilik: Mengelola semuanya, termasuk akses ke sumber daya. Peran ini memberikan akses utama.
  • Kontributor: Mengelola semuanya, kecuali akses ke sumber daya. Peran ini memberikan akses utama.
  • Kontributor Akun Penyimpanan: Manajemen penuh akun penyimpanan. Peran ini memberikan akses utama.
  • Pembaca: Membaca dan mencantumkan sumber daya. Peran ini tidak memberikan akses utama.

Peran data bawaan

Berikut ini adalah peran data bawaan.

  • Pemilik Data Blob Penyimpanan: Akses penuh ke kontainer dan data blob Azure Storage, termasuk mengatur kepemilikan dan mengelola kontrol akses POSIX.
  • Kontributor Data Blob Storage: Membaca, menulis, dan menghapus kontainer serta blob Azure Storage.
  • Pembaca Data Blob Storage: Membaca dan mencantumkan kontainer serta blob Azure Storage.

Pemilik Data Blob Penyimpanan adalah peran pengguna super yang diberikan akses penuh ke semua operasi bermutasi. Operasi ini termasuk mengatur pemilik direktori atau file dan ACL untuk direktori dan file yang mana mereka bukan pemiliknya. Akses pengguna super adalah satu-satunya cara yang berwenang untuk mengubah pemilik sumber daya.

Catatan

Tugas Azure RBAC dapat memakan waktu hingga lima menit untuk menyebarkan dan mulai berlaku.

Cara akses dievaluasi

Selama otorisasi berbasis perwakilan keamanan, sistem mengevaluasi izin dalam urutan berikut. Untuk informasi selengkapnya, lihat diagram berikut ini.

  • Azure RBAC dievaluasi terlebih dahulu dan lebih diprioritaskan daripada tugas ACL apa pun.
  • Jika operasi sepenuhnya diotorisasi berdasarkan RBAC, maka ACL tidak dievaluasi sama sekali.
  • Jika operasi tidak sepenuhnya diotorisasi, maka ACL akan dievaluasi.

Untuk informasi selengkapnya, lihat Cara izin dievaluasi.

Catatan

Model izin ini hanya berlaku untuk Azure Data Lake Storage saja. Ini tidak berlaku untuk tujuan umum atau penyimpanan blob tanpa namespace hierarki diaktifkan. Deskripsi ini tidak termasuk kunci bersama dan metode autentikasi SAS. Ini juga mengecualikan skenario di mana prinsip keamanan ditetapkan peran bawaan Pemilik Data Blob Penyimpanan, yang menyediakan akses pengguna super. Atur allowSharedKeyAccess ke false sehingga akses diaudit oleh identitas.

Diagram of a flow chart that shows how access is evaluated.

Untuk informasi selengkapnya tentang izin berbasis ACL yang diperlukan untuk operasi tertentu, lihat Daftar kontrol akses di Azure Data Lake Storage Gen2.

Catatan

  • Daftar kontrol akses hanya berlaku untuk prinsipal keamanan di penyewa yang sama, termasuk pengguna tamu.
  • Setiap pengguna dengan izin untuk melampirkan ke kluster dapat membuat titik pemasangan Azure Databricks. Konfigurasikan titik pemasangan menggunakan kredensial perwakilan layanan atau opsi passthrough Microsoft Entra. Pada saat pembuatan, izin tidak dievaluasi. Izin dievaluasi saat operasi menggunakan titik pemasangan. Setiap pengguna yang dapat melampirkan ke kluster dapat mencoba menggunakan titik pemasangan.
  • Saat pengguna membuat definisi tabel di Azure Databricks atau Azure Synapse Analytics, mereka harus memiliki akses baca ke data yang mendasar.

Konfigurasikan akses ke Azure Data Lake Storage

Siapkan kontrol akses di Azure Data Lake Storage menggunakan Azure RBAC, ACL, atau kombinasi keduanya.

Konfigurasikan akses hanya menggunakan Azure RBAC

Jika kontrol akses tingkat kontainer cukup, penugasan Azure RBAC menawarkan pendekatan manajemen sederhana untuk mengamankan data. Disarankan agar Anda menggunakan daftar kontrol akses untuk sejumlah besar aset data terbatas atau di mana Anda memerlukan kontrol akses terperinci.

Mengonfigurasi akses menggunakan ACL saja

Berikut ini adalah kontrol akses mencantumkan rekomendasi konfigurasi untuk analitik skala cloud.

Tetapkan entri kontrol akses ke grup keamanan daripada pengguna individual atau perwakilan layanan. Untuk informasi selengkapnya, lihat Menggunakan grup keamanan versus pengguna individual.

Saat menambahkan atau menghapus pengguna dari grup, Anda tidak diharuskan membuat pembaruan untuk Data Lake Storage. Selain itu, menggunakan grup mengurangi kemungkinan melebihi 32 entri kontrol akses per file atau folder ACL. Setelah empat entri default, hanya ada 28 entri yang tersisa untuk penetapan izin.

Bahkan ketika Anda menggunakan grup, Anda dapat memiliki banyak entri kontrol akses di tingkat atas pohon direktori. Situasi ini terjadi ketika izin terperinci untuk grup yang berbeda diperlukan.

Diagram that shows several security groups requiring access to three data products.

Mengonfigurasi akses menggunakan Azure RBAC dan daftar kontrol akses

Izin Kontributor Data Blob Penyimpanan dan Pembaca Data Blob Penyimpanan menyediakan akses ke data dan bukan akun penyimpanan. Anda dapat memberikan akses di tingkat akun penyimpanan atau tingkat kontainer. Jika Kontributor Data Blob Penyimpanan ditetapkan, ACL tidak dapat digunakan untuk mengelola akses. Di mana Pembaca Data Blob Penyimpanan ditetapkan, Anda dapat memberikan izin tulis yang ditingkatkan menggunakan ACL. Untuk informasi selengkapnya, lihat Cara akses dievaluasi.

Pendekatan ini mendukung skenario di mana sebagian besar pengguna membutuhkan akses baca tetapi hanya beberapa pengguna saja yang perlu menulis akses. Zona data lake bisa menjadi akun penyimpanan yang berbeda dan aset data bisa menjadi kontainer yang berbeda. Zona data lake dapat diwakili oleh kontainer dan aset data yang diwakili oleh folder.

Pendekatan grup daftar kontrol akses berlapis

Ada dua pendekatan untuk kelompok ACL berlapis.

Opsi 1: Grup eksekusi induk

Sebelum membuat file dan folder, mulailah dengan grup induk. Tetapkan izin eksekusi grup tersebut ke default dan akses ACL di tingkat kontainer. Lalu tambahkan grup yang memerlukan akses data ke grup induk.

Peringatan

Kami akan merekomendasikan terhadap pola ini di mana Anda memiliki penghapusan rekursif dan sebaliknya menggunakan Opsi 2: Daftar kontrol akses entri lain.

Teknik ini dikenal sebagai grup bersarang. Grup anggota mewarisi izin grup induk, yang menyediakan izin beroperasi global untuk semua grup anggota. Grup anggota tidak memerlukan izin beroperasi karena izin ini diwariskan. Lebih banyak bersarang mungkin memberikan fleksibilitas dan kelincahan yang lebih besar. Tambahkan grup keamanan yang mewakili tim atau pekerjaan otomatis ke pembaca akses data serta grup penulis.

Diagram that shows nested groups where global run includes data assets for readers and writers and includes analysis team and engineering jobs.

Opsi 2: Daftar kontrol akses entri lainnya

Pendekatan yang disarankan adalah menggunakan ACL entri lain yang diatur pada kontainer atau root. Tentukan default dan akses ACL seperti yang ditunjukkan di layar berikut ini. Pendekatan ini memastikan bahwa setiap bagian dari jalur dari root ke tingkat terendah telah melaksanakan izin.

Screen capture that shows the manage access dialog box with other highlighted and access and default selected.

Izin eksekusi ini menyebar ke bawah ke folder turunan yang ditambahkan. Izin menyebar ke kedalaman di mana kelompok akses yang dituju membutuhkan izin untuk membaca serta menjalankan. Tingkat berada di bagian terendah dari rantai, seperti yang ditunjukkan pada layar berikut. Pendekatan ini memberikan akses untuk membaca data kepada grup. Pendekatan ini bekerja mirip seperti akses menulis.

Screen capture that shows the manage access dialog box with businessgrp 1 highlighted and access and default selected.

Penggunaan berikut adalah pola keamanan yang direkomendasikan untuk setiap zona data lake:

  • Zona mentah harus mengizinkan akses ke data hanya dengan menggunakan nama prinsipal keamanan (SPN).
  • Data yang diperkaya harus mengizinkan akses ke data hanya dengan menggunakan nama prinsipal keamanan (SPN).
  • Data yang dikumpulkan harus memungkinkan akses dengan nama prinsipal keamanan (SPN) dan nama prinsipal pengguna (UPN).

Contoh skenario untuk menggunakan grup keamanan Microsoft Entra

Ada banyak cara berbeda untuk mengatur grup. Misalnya, bayangkan Anda memiliki direktori bernama /LogData yang menyimpan data log yang dihasilkan oleh server Anda. Azure Data Factory memproses data ke dalam folder tersebut. Pengguna tertentu dari tim rekayasa layanan mengunggah log serta mengelola pengguna lain dari folder ini. Kluster ruang kerja analitik dan ilmu data Azure Databricks dapat menganalisis log dari folder tersebut.

Untuk mengaktifkan aktivitas ini, Anda bisa membuat grup LogsWriter dan grup LogsReader. Tetapkan izin berikut ini:

  • Tambahkan grup LogsWriter ke ACL direktori /LogData dengan izin rwx.
  • Tambahkan grup LogsReader ke ACL direktori /LogData dengan izin r-x.
  • Tambahkan objek perwakilan layanan atau identitas layanan terkelola (MSI) untuk Data Factory ke grup LogsWriters.
  • Tambahkan pengguna di tim teknik layanan ke grup LogsWriter.
  • Azure Databricks dikonfigurasi untuk passthrough Microsoft Entra ke penyimpanan Azure Data Lake.

Jika pengguna di tim teknik layanan mentransfer ke tim yang berbeda, cukup hapus pengguna tersebut LogsWriter dari grup.

Jika Anda tidak menambahkan pengguna tersebut ke grup, tetapi sebagai gantinya, menambahkan entri ACL khusus untuk pengguna tersebut, Anda harus menghapus entri ACL tersebut /LogData dari direktori. Anda juga harus menghapus entri dari semua subdirektori dan file di seluruh hierarki /LogData direktori direktori.

Kontrol akses data Azure Synapse Analytics

Untuk menyebarkan ruang kerja Azure Synapse, diperlukan akun Azure Data Lake Storage Gen2. Azure Synapse Analytics menggunakan akun penyimpanan utama untuk beberapa skenario integrasi dan juga menyimpan data dalam kontainer. Kontainer mencakup tabel Apache Spark dan log aplikasi di bawah folder yang disebut /synapse/{workspaceName}. Ruang kerja juga menggunakan kontainer untuk mengelola pustaka yang Anda instal.

Selama penyebaran ruang kerja melalui portal Microsoft Azure, sediakan akun penyimpanan yang sudah ada atau buatlah akun baru. Akun penyimpanan yang disediakan adalah akun penyimpanan utama untuk ruang kerja. Proses penyebaran memberikan akses identitas ruang kerja ke akun Data Lake Storage Gen2 yang ditentukan, menggunakan peran Kontributor Data Blob Penyimpanan.

Jika Anda menyebarkan ruang kerja di luar portal Azure, tambahkan identitas ruang kerja Azure Synapse Analytics secara manual ke peran Kontributor Data Blob Penyimpanan. Sebaiknya tetapkan peran Kontributor Data Blob Penyimpanan pada tingkat kontainer untuk mengikuti prinsip hak istimewa paling sedikit.

Saat Anda menjalankan alur, alur kerja, dan buku catatan melalui pekerjaan, alur tersebut menggunakan konteks izin identitas ruang kerja. Jika salah satu pekerjaan membaca atau menulis ke penyimpanan utama ruang kerja, identitas ruang kerja menggunakan izin baca/tulis yang diberikan melalui Kontributor Data Blob Penyimpanan.

Saat pengguna masuk ke ruang kerja untuk menjalankan skrip atau untuk pengembangan, izin konteks pengguna mengizinkan akses baca/tulis pada penyimpanan utama.

Azure Synapse Analytics mengontrol akses data terperinci menggunakan daftar kontrol akses

Saat Anda menyiapkan kontrol akses data lake, beberapa organisasi memerlukan akses tingkat terperinci. Mereka mungkin memiliki data sensitif yang tidak dapat dilihat oleh beberapa grup di organisasi. Azure RBAC hanya mengizinkan membaca atau menulis di akun penyimpanan serta tingkat kontainer. Dengan ACL, Anda dapat menyiapkan kontrol akses mendetail di tingkat folder dan file untuk memungkinkan baca/tulis pada subset data untuk grup tertentu.

Pertimbangan saat menggunakan tabel Spark

Saat Anda menggunakan tabel Apache Spark di kumpulan Spark, tabel tersebut akan membuat folder gudang. Folder berada di akar kontainer di penyimpanan utama ruang kerja:

synapse/workspaces/{workspaceName}/warehouse

Jika Anda berencana membuat tabel Apache Spark di kumpulan Azure Synapse Spark, berikan izin penulisan di folder gudang untuk grup yang menjalankan perintah yang membuat tabel Spark. Jika perintah berjalan melalui pekerjaan yang dipicu dalam alur, berikan izin tulis ke MSI ruang kerja.

Contoh ini membuat tabel Spark:

df.write.saveAsTable("table01")

Untuk informasi selengkapnya, lihat Cara menyiapkan kontrol akses untuk ruang kerja synapse Anda.

Ringkasan akses Azure Data Lake

Tidak ada pendekatan tunggal untuk mengelola akses data lake yang cocok untuk semua orang. Manfaat utama dari data lake adalah untuk menyediakan akses bebas gesekan ke data. Dalam praktiknya, organisasi yang berbeda menginginkan tingkat pemerintahan dan kontrol yang berbeda atas data mereka. Beberapa organisasi memiliki tim terpusat untuk mengelola akses serta kelompok penyediaan di bawah kontrol internal yang ketat. Organisasi lain lebih gesit dan juga memiliki kontrol terdesentralisasi. Pilih pendekatan yang memenuhi tingkat pemerintahan Anda. Pilihan Anda seharusnya tidak menyebabkan penundaan atau gesekan yang tidak semestinya dalam mendapatkan akses ke data.

Langkah berikutnya