Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure Data Lake Storage Gen1 menerapkan model kontrol akses yang berasal dari HDFS, yang pada gilirannya berasal dari model kontrol akses POSIX. Artikel ini merangkum dasar-dasar model kontrol akses untuk Data Lake Storage Gen1.
Daftar kontrol akses pada file dan folder
Ada dua jenis daftar kontrol akses (ACL), ACL Akses dan ACL Default.
ACL Akses: Ini mengontrol akses ke suatu objek. File dan folder keduanya memiliki ACL Akses.
Default ACLs: "template" ACL yang terkait dengan folder untuk menentukan ACL akses bagi item anak apa pun yang dibuat di bawah folder tersebut. File tidak memiliki default ACL.
ACL untuk Akses dan ACL Default memiliki struktur yang sama.
Nota
Mengubah ACL Default pada item induk tidak memengaruhi ACL Akses atau ACL Default dari item turunan yang sudah ada sebelumnya.
Hak akses
Izin pada objek sistem file adalah Baca, Tulis, dan Jalankan, dan dapat digunakan pada file dan folder seperti yang ditunjukkan dalam tabel berikut:
Arsip | Folder | |
---|---|---|
Baca (R) | Dapat membaca konten file | Memerlukan Baca dan Jalankan untuk mencantumkan isi folder |
Tulis (W) | Dapat menulis atau menambahkan ke file | Memerlukan Tulis dan Jalankan untuk membuat item anak dalam folder |
Jalankan(X) | Tidak berarti apa pun dalam konteks Data Lake Storage Gen1 | Diperlukan untuk menelusuri item anak dari folder |
Formulir singkat untuk izin
RWX digunakan untuk menunjukkan Baca + Tulis + Jalankan. Ada bentuk numerik yang lebih singkat di mana Baca=4, Tulis=2, dan Jalankan=1, yang jumlahnya mewakili semua izin tersebut. Berikut ini adalah beberapa contoh.
Formulir numerik | Formulir pendek | Apa artinya |
---|---|---|
7 | RWX |
Baca + Tulis + Jalankan |
5 | R-X |
Baca + Jalankan |
4 | R-- |
Bacalah |
0 | --- |
Tidak ada izin |
Izin tidak diwariskan
Dalam model bergaya POSIX yang digunakan oleh Data Lake Storage Gen1, izin untuk item disimpan pada item itu sendiri. Dengan kata lain, izin untuk item tidak dapat diwariskan dari item induk.
Skenario umum yang terkait dengan izin
Berikut ini adalah beberapa skenario umum untuk membantu Anda memahami izin mana yang diperlukan untuk melakukan operasi tertentu pada akun Data Lake Storage Gen1.
Operasi | Objek | / | Seattle/ | Portland/ | Data.txt |
---|---|---|---|---|---|
Bacalah | Data.txt | --X |
--X |
--X |
R-- |
Lampirkan pada | Data.txt | --X |
--X |
--X |
-W- |
Menghapus | Data.txt | --X |
--X |
-WX |
--- |
Buat | Data.txt | --X |
--X |
-WX |
--- |
Daftar | / | R-X |
--- |
--- |
--- |
Daftar | /Seattle/ | --X |
R-X |
--- |
--- |
Daftar | /Seattle/Portland/ | --X |
--X |
R-X |
--- |
Nota
Izin tulis pada file tidak diperlukan untuk menghapusnya selama dua kondisi sebelumnya benar.
Pengguna dan identitas
Setiap file dan folder memiliki izin yang berbeda untuk identitas ini:
- Pengguna yang memiliki
- Kelompok pemilik
- Pengguna bernama
- Grup yang diberi nama
- Semua pengguna lain
Identitas pengguna dan grup adalah identitas Microsoft Entra. Jadi kecuali dinyatakan lain, "pengguna", dalam konteks Data Lake Storage Gen1, dapat berarti pengguna Microsoft Entra atau grup keamanan Microsoft Entra.
Pengguna dengan akses penuh
Pengguna super memiliki hak terbanyak dari semua pengguna di akun Data Lake Storage Gen1. Pengguna super:
- Memiliki hak akses RWX untuk semua file dan folder.
- Dapat mengubah izin pada file atau folder mana pun.
- Dapat mengubah pengguna pemilik atau grup pemilik file atau folder apa pun.
Semua pengguna yang merupakan bagian dari peran Pemilik untuk akun Data Lake Storage Gen1 secara otomatis adalah pengguna super.
Pengguna yang memiliki
Pengguna yang membuat item secara otomatis adalah pengguna pemilik item. Pengguna pemilik dapat:
- Mengubah izin file yang dimiliki.
- Mengubah grup pemilik file yang dimiliki, selama pengguna pemilik juga merupakan anggota grup target.
Nota
Pengguna pemilik tidak dapat mengubah pengguna pemilik file atau folder. Hanya pengguna super yang dapat mengubah pengguna pemilik file atau folder.
Grup pemilik
Latar belakang
Di ACL POSIX, setiap pengguna dikaitkan dengan "grup utama." Misalnya, pengguna "alice" mungkin termasuk dalam grup "keuangan". Alice mungkin juga termasuk dalam beberapa grup, tetapi satu grup selalu ditetapkan sebagai grup utamanya. Di POSIX, saat Alice membuat file, grup pemilik file tersebut diatur ke grup utamanya, yang dalam hal ini adalah "keuangan". Grup pemilik berperilaku serupa dengan izin yang ditetapkan untuk pengguna/grup lain.
Karena tidak ada "grup utama" yang terkait dengan pengguna di Data Lake Storage Gen1, grup pemilik ditetapkan seperti di bawah ini.
Menetapkan grup pemilik untuk file atau folder baru
- Kasus 1: Direktori akar "/". Folder ini dibuat saat akun Data Lake Storage Gen1 dibuat. Dalam hal ini, grup pemilik diatur ke GUID all-zero. Nilai ini tidak mengizinkan akses apa pun. Ini adalah tempat penampung sampai grup ditugaskan.
- Kasus 2 (Setiap kasus lainnya): Saat item baru dibuat, grup pemilik disalin dari folder induk.
Mengubah grup pemilik
Kelompok pemilik dapat diubah oleh:
- Pengguna dengan hak istimewa mana pun.
- Pengguna pemilik, jika pengguna pemilik tersebut juga merupakan anggota dari grup target.
Nota
Grup pemilik tidak dapat mengubah ACL file atau folder.
Untuk akun yang dibuat pada atau sebelum September 2018, grup pemilik ditetapkan kepada pengguna yang membuat akun dalam kasus folder root untuk Kasus 1, di atas. Satu akun pengguna tidak valid untuk memberikan izin melalui grup pemilik, sehingga tidak ada izin yang diberikan oleh pengaturan default ini. Anda dapat menetapkan izin ini ke grup pengguna yang valid.
Algoritma pemeriksaan akses
Pseudocode berikut mewakili algoritma pemeriksaan akses untuk akun Data Lake Storage Gen1.
def access_check( user, desired_perms, path ) :
# access_check returns true if user has the desired permissions on the path, false otherwise
# user is the identity that wants to perform an operation on path
# desired_perms is a simple integer with values from 0 to 7 ( R=4, W=2, X=1). User desires these permissions
# path is the file or folder
# Note: the "sticky bit" is not illustrated in this algorithm
# Handle super users.
if (is_superuser(user)) :
return True
# Handle the owning user. Note that mask IS NOT used.
entry = get_acl_entry( path, OWNER )
if (user == entry.identity)
return ( (desired_perms & entry.permissions) == desired_perms )
# Handle the named users. Note that mask IS used.
entries = get_acl_entries( path, NAMED_USER )
for entry in entries:
if (user == entry.identity ) :
mask = get_mask( path )
return ( (desired_perms & entry.permmissions & mask) == desired_perms)
# Handle named groups and owning group
member_count = 0
perms = 0
entries = get_acl_entries( path, NAMED_GROUP | OWNING_GROUP )
for entry in entries:
if (user_is_member_of_group(user, entry.identity)) :
member_count += 1
perms | = entry.permissions
if (member_count>0) :
return ((desired_perms & perms & mask ) == desired_perms)
# Handle other
perms = get_perms_for_other(path)
mask = get_mask( path )
return ( (desired_perms & perms & mask ) == desired_perms)
Masker
Seperti yang diilustrasikan dalam Algoritma Pemeriksaan Akses, masker membatasi akses untuk pengguna bernama, grup pemilik, dan grup bernama.
Nota
Untuk akun Data Lake Storage Gen1 baru, pengaturan untuk ACL Akses folder akar ("/") secara default adalah RWX.
Bit lekat
Bit lengket adalah fitur yang lebih canggih dari sistem file POSIX. Dalam konteks Data Lake Storage Gen1, tidak mungkin bit lengket akan diperlukan. Singkatnya, jika bit lengket diaktifkan pada folder, item anak hanya dapat dihapus atau diganti namanya oleh pengguna pemilik item anak.
Bit lengket tidak ditampilkan di portal Microsoft Azure.
Izin default pada file dan folder baru
Saat file atau folder baru dibuat di bawah folder yang sudah ada, ACL Default pada folder induk menentukan:
- ACL Bawaan dan ACL Akses folder turunan.
- ACL Akses file anak (file tidak memiliki ACL Default).
umask
Saat membuat file atau folder, umask digunakan untuk memodifikasi bagaimana ACL default diatur pada item anak. umask adalah nilai 9-bit pada folder induk yang berisi nilai RWX untuk pengguna pemilik, grup pemilik, dan lainnya.
Umask untuk Azure Data Lake Storage Gen1 adalah nilai konstanta yang ditetapkan ke 007. Nilai ini diterjemahkan ke
komponen umask | Formulir numerik | Formulir pendek | Makna |
---|---|---|---|
umask.pemilik_pengguna | 0 | --- |
Untuk pengguna pemilik, salin ACL Default induk ke ACL Akses anak |
umask.grup_pemilik | 0 | --- |
Untuk grup pemilik, salin ACL Default induk ke ACL Akses anak |
umask.other | 7 | RWX |
Untuk yang lain, hapus semua izin pada ACL Akses anak |
Nilai umask yang digunakan oleh Azure Data Lake Storage Gen1 secara efektif berarti bahwa nilai untuk yang lain tidak pernah ditransmisikan secara default pada anak baru - terlepas dari apa yang ditunjukkan oleh ACL Default.
Pseudocode berikut menunjukkan bagaimana umask diterapkan saat membuat ACL untuk item anak.
def set_default_acls_for_new_child(parent, child):
child.acls = []
for entry in parent.acls :
new_entry = None
if (entry.type == OWNING_USER) :
new_entry = entry.clone(perms = entry.perms & (~umask.owning_user))
elif (entry.type == OWNING_GROUP) :
new_entry = entry.clone(perms = entry.perms & (~umask.owning_group))
elif (entry.type == OTHER) :
new_entry = entry.clone(perms = entry.perms & (~umask.other))
else :
new_entry = entry.clone(perms = entry.perms )
child_acls.add( new_entry )
Pertanyaan umum tentang ACL di Data Lake Storage Gen1
Apakah saya harus mengaktifkan dukungan untuk ACL?
Tidak. Kontrol akses melalui ACL selalu aktif untuk akun Data Lake Storage Gen1.
Izin mana yang diperlukan untuk menghapus folder dan isinya secara rekursif?
- Folder induk harus memiliki izin Tulis + Jalankan .
- Folder yang akan dihapus, dan setiap folder di dalamnya, memerlukan izin Baca + Tulis + Jalankan .
Nota
Anda tidak memerlukan izin Tulis untuk menghapus file dalam folder. Selain itu, folder akar "/" tidak pernah dapat dihapus.
Siapa pemilik file atau folder?
Pembuat file atau folder menjadi pemiliknya.
Grup mana yang ditetapkan sebagai grup pemilik file atau folder saat pembuatan?
Grup pemilik disalin dari grup pemilik folder induk tempat file atau folder baru dibuat.
Saya adalah pengguna pemilik file tetapi saya tidak memiliki izin RWX yang saya butuhkan. Apa yang harus kulakukan?
Pengguna pemilik dapat mengubah izin file untuk memberi diri mereka sendiri izin RWX yang mereka butuhkan.
Saat saya melihat ACL di portal Microsoft Azure saya melihat nama pengguna tetapi melalui API, saya melihat GUID, mengapa demikian?
Entri dalam ACL disimpan sebagai GUID yang sesuai dengan pengguna di ID Microsoft Entra. API mengembalikan GUID apa adanya. Portal Microsoft Azure mencoba membuat ACL lebih mudah digunakan dengan menerjemahkan GUID ke dalam nama yang mudah diingat jika memungkinkan.
Mengapa saya terkadang melihat GUID di ACL saat saya menggunakan portal Microsoft Azure?
GUID ditampilkan ketika pengguna tidak ada di Microsoft Entra lagi. Biasanya ini terjadi ketika pengguna telah meninggalkan perusahaan atau jika akun mereka telah dihapus di ID Microsoft Entra. Selain itu, pastikan Anda menggunakan ID yang tepat untuk mengatur ACL (detail yang dimaksud di bawah).
Saat menggunakan perwakilan layanan, ID apa yang harus saya gunakan untuk mengatur ACL?
Di Portal Microsoft Azure, buka MICROSOFT Entra ID -> Aplikasi perusahaan dan pilih aplikasi Anda. Tab Gambaran Umum harus menampilkan ID Objek dan inilah yang harus digunakan saat menambahkan ACL untuk akses data (dan bukan Id Aplikasi).
Apakah Data Lake Storage Gen1 mendukung pewarisan ACL?
Tidak, tetapi ACL Default dapat digunakan untuk mengatur ACL untuk file anak dan folder yang baru dibuat di bawah folder induk.
Apa batasan untuk entri ACL pada file dan folder?
32 ACL dapat diatur per file dan per direktori. Setiap ACL akses dan default memiliki batas entri 32 ACL mereka sendiri. Gunakan grup keamanan untuk penugasan ACL jika memungkinkan. Dengan menggunakan grup, Anda lebih kecil kemungkinannya untuk melebihi jumlah maksimum entri ACL per file atau direktori.
Di mana saya dapat mempelajari selengkapnya tentang model kontrol akses POSIX?
- Daftar Kontrol Akses POSIX di Linux
- Panduan izin HDFS
- Tanya Jawab Umum POSIX
- POSIX 1003.1 2008
- POSIX 1003.1 2013
- POSIX 1003.1 2016
- POSIX ACL di Ubuntu