Manajemen peran keamanan
Penting
Sebelum mengubah aturan otorisasi pada kluster Kusto Anda, baca yang berikut ini: ringkasan kontrol akses Kustootorisasi berbasis peran
Artikel ini menjelaskan perintah kontrol yang digunakan untuk mengelola peran keamanan.
Peran keamanan menentukan prinsipal keamanan mana (pengguna dan aplikasi) yang memiliki izin untuk melakukan operasi pada sumber daya yang aman seperti database atau tabel, dan operasi apa yang diizinkan. Misalnya, prinsipal yang memiliki peran keamanan database viewer untuk database tertentu dapat meminta dan melihat semua entitas database tersebut (dengan pengecualian tabel terbatas).
Peran keamanan dapat dikaitkan dengan prinsipal keamanan atau kelompok keamanan (yang dapat memiliki prinsipal keamanan lain atau kelompok keamanan lainnya). Ketika prinsipal keamanan mencoba untuk melakukan operasi pada sumber daya yang aman, sistem memeriksa bahwa prinsipal dikaitkan dengan setidaknya satu peran keamanan yang memberikan izin untuk melakukan operasi ini pada sumber daya. Ini disebut pemeriksaan otorisasi. Gagal dalam pemeriksaan otorisasi membatalkan operasi.
Perintah manajemen peran keamanan
Sintaks
VerbSecurableObjectTypeSecurableObjectNameRole [(ListOfPrincipals) [Description]]
Argumen
Verb menunjukkan jenis tindakan yang akan dilakukan:
.show,.add,.drop, dan.set.Kata kerja Deskripsi .addMenambahkan satu atau beberapa prinsipal ke peran. .dropMenghapus satu atau beberapa prinsipal dari peran tersebut. .setMengatur peran ke daftar prinsipal tertentu, menghapus semua yang sebelumnya (jika ada). SecurableObjectType adalah jenis objek yang perannya ditentukan.
SecurableObjectType Deskripsi databaseDatabase yang ditentukan tableTabel yang ditentukan materialized-viewTampilan materialisasi yang ditentukan SecurableObjectName adalah nama objek.
Role adalah nama peran yang relevan.
Peran Deskripsi adminsMemiliki kontrol atas objek yang dapat diamankan, termasuk kemampuan untuk melihat, memodifikasinya, dan menghapus objek dan semua sub-objek. usersDapat melihat objek yang dapat diamankan, dan membuat objek baru di bawahnya. viewersDapat melihat objek yang dapat diamankan. unrestrictedviewersPada tingkat database saja, memungkinkan melihat tabel terbatas (yang tidak diekspos ke "normal" viewersdanusers).ingestorsPada tingkat database saja, memungkinkan penyerapan data ke semua tabel. monitorsPada cakupan yang ditentukan (Database atau AllDatabases) memungkinkan metadata (skema, operasi, permissiosn) melihat operasi. ListOfPrincipals adalah daftar pengidentifikasi prinsipal keamanan opsional yang dibatasi koma (nilai jenis
string).Description adalah nilai opsional jenis
stringyang disimpan di samping asosiasi, untuk tujuan audit di masa mendatang.
Perintah .show
Perintah .show mencantumkan prinsipal yang ditetapkan pada objek yang dapat diamankan. Garis dikembalikan untuk setiap peran yang ditugaskan ke prinsipal.
Sintaks
.showSecurableObjectTypeSecurableObjectNameprincipals
Contoh
Perintah kontrol berikut mencantumkan semua prinsipal keamanan yang memiliki beberapa akses ke tabel StormEvents dalam database:
.show table StormEvents principals
Berikut adalah hasil potensial dari perintah ini:
| Peran | PrincipalType | PrincipalDisplayName | PrincipalObjectId | PrincipalFQN |
|---|---|---|---|---|
| Database Apsty Admin | Pengguna Azure AD | Mark Smith | cd709aed-a26c-e3953dec735e | aaduser=msmith@fabrikam.com |
Mengelola peran keamanan database
.setdatabaseDatabaseNameRolenone [skip-results]
.setdatabaseDatabaseNameRole(Principal [,Principal...] ) [skip-results] [Description]
.adddatabaseDatabaseNameRole(Principal [,Principal...] ) [skip-results] [Description]
.dropdatabaseDatabaseNameRole(Principal [,Principal...] ) [skip-results] [Description]
Perintah pertama menghapus semua prinsipal dari peran. Yang kedua menghapus semua prinsipal dari peran, dan menetapkan set prinsipal baru. Yang ketiga menambahkan prinsipal baru ke peran tanpa menghapus prinsipal yang ada. Yang terakhir menghapus prinsipal yang ditunjukkan dari peran dan menjaga yang lain.
Di mana:
DatabaseName adalah nama database yang peran keamanannya sedang dimodifikasi.
Role adalah:
admins,ingestors,monitors,unrestrictedviewers,users, atauviewers.Principal adalah satu atau beberapa prinsipal. Lihat prinsipal dan penyedia identitas untuk cara menentukan prinsipal ini.
skip-results, jika disediakan, meminta agar perintah tidak mengembalikan daftar prinsipal database yang diperbarui.Description, jika disediakan, adalah teks yang akan dikaitkan dengan perubahan dan diambil oleh perintah
.showyang sesuai.
Contoh
// No need to specify AAD tenant for UPN, as Kusto performs the resolution by itself
.add database Test users ('aaduser=imikeoein@fabrikam.com') 'Test user (AAD)'
// AAD SG on 'fabrikam.com' tenant
.add database Test admins ('aadGroup=SGEmail@fabrikam.com')
// OPTIONAL: AAD App on another tenant - by tenant guid
.add database Test viewers ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;9752a91d-8e15-44e2-aa72-e9f8e12c3ec5') 'Test app on another tenant (AAD)'
Mengelola peran keamanan tabel
.settableTableNameRolenone [skip-results]
.settableTableNameRole(Principal [,Principal...] ) [skip-results] [Description]
.addtableTableNameRole(Principal [,Principal...] ) [skip-results] [Description]
.droptableTableNameRole(Principal [,Principal...] ) [skip-results] [Description]
Perintah pertama menghapus semua prinsipal dari peran. Yang kedua menghapus semua prinsipal dari peran, dan menetapkan set prinsipal baru. Yang ketiga menambahkan prinsipal baru ke peran tanpa menghapus prinsipal yang ada. Yang terakhir menghapus prinsipal yang ditunjukkan dari peran dan menjaga yang lain.
Di mana:
TableName adalah nama tabel yang peran keamanannya sedang dimodifikasi.
Role adalah:
adminsatauingestors.Principal adalah satu atau beberapa prinsipal. Lihat prinsipal dan penyedia identitas untuk cara menentukan prinsipal ini.
skip-results, jika disediakan, meminta agar perintah tidak mengembalikan daftar prinsipal tabel yang diperbarui.Description, jika disediakan, adalah teks yang akan dikaitkan dengan perubahan dan diambil oleh perintah
.showyang sesuai.
Contoh
// No need to specify AAD tenant for UPN, as Kusto performs the resolution by itself
.add table TestTable admins ('aaduser=imikeoein@fabrikam.com') 'Test user (AAD)'
// AAD SG on 'fabrikam.com' tenant
.add table TestTable ingestors ('aadGroup=SGEmail@fabrikam.com')
// OPTIONAL: AAD App on another tenant - by tenant guid
.add table TestTable ingestors ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;9752a91d-8e15-44e2-aa72-e9f8e12c3ec5') 'Test app on another tenant (AAD)'
Mengelola peran keamanan tampilan materialisasi
.showmaterialized-viewMaterializedViewNameprincipals
.setmaterialized-viewMaterializedViewNameadmins(Principal,[Principal...])
.addmaterialized-viewMaterializedViewNameadmins(Principal,[Principal...])
.dropmaterialized-viewMaterializedViewNameadmins(Principal,[Principal...])
Di mana:
- MaterializedViewName adalah nama tampilan materialisasi yang peran keamanannya sedang dimodifikasi
- Principal adalah satu atau beberapa prinsipal. Lihat prinsipal dan penyedia identitas
Mengelola peran keamanan fungsi
.setfunctionFunctionNameRolenone [skip-results]
.setfunctionFunctionNameRole(Principal [,Principal...] ) [skip-results] [Description]
.addfunctionFunctionNameRole(Principal [,Principal...] ) [skip-results] [Description]
.dropfunctionFunctionNameRole(Principal [,Principal...] ) [skip-results] [Description]
Perintah pertama menghapus semua prinsipal dari peran. Yang kedua menghapus semua prinsipal dari peran, dan menetapkan set prinsipal baru. Yang ketiga menambahkan prinsipal baru ke peran tanpa menghapus prinsipal yang ada. Yang terakhir menghapus prinsipal yang ditunjukkan dari peran dan menjaga yang lain.
Di mana:
FunctionName adalah nama fungsi yang peran keamanannya sedang dimodifikasi.
Role selalu
admin.Principal adalah satu atau beberapa prinsipal. Lihat prinsipal dan penyedia identitas untuk cara menentukan prinsipal ini.
skip-results, jika disediakan, meminta agar perintah tidak mengembalikan daftar prinsipal fungsi yang diperbarui.Description, jika disediakan, adalah teks yang akan dikaitkan dengan perubahan dan diambil oleh perintah
.showyang sesuai.
Contoh
.add function MyFunction admins ('aaduser=imike@fabrikam.com') 'This user should have access'