Menggunakan peran untuk mengontrol akses sumber daya
Peran bawaan untuk Azure Resources (menggunakan PowerShell)
Azure menyediakan beberapa peran bawaan untuk mencakup skenario keamanan yang paling umum. Untuk memahami cara kerja peran, mari kita periksa tiga peran yang berlaku untuk semua jenis sumber daya:
- Pemilik: Memiliki akses penuh ke semua sumber daya termasuk hak untuk mendelegasikan akses kepada orang lain.
- Kontributor: Dapat membuat dan mengelola semua jenis sumber daya Azure tetapi tidak dapat memberi akses kepada orang lain.
- Pembaca: Dapat melihat sumber daya Azure yang ada.
Definisi peran
Setiap peran adalah sekumpulan properti yang ditentukan dalam file Notasi Objek JavaScript (JSON). Definisi peran ini mencakup Nama, ID,dan Deskripsi. Ini juga termasuk izin yang diizinkan (Tindakan), izin ditolak (Bukan Tindakan), dan ruang lingkup (misalnya, akses baca) untuk peran tersebut.
Untuk peran Pemilik, itu berarti semua tindakan, yang ditunjukkan oleh tanda bintang (*); tidak ada tindakan yang ditolak; dan semua cakupan, ditunjukkan dengan garis miring (/).
Anda bisa mendapatkan informasi ini menggunakan Get-AzRoleDefinition Owner
cmdlet PowerShell.
Get-AzRoleDefinition Owner
Kode ini harus menghasilkan output berikut:
Name : Owner
Id : 8e3af657-a8ff-443c-a75c-2fe8c4bcb635
IsCustom : False
Description : Lets you manage everything, including access to resources.
Actions : {*}
NotActions : {}
DataActions : {}
NotDataActions : {}
AssignableScopes : {/}
Cobalah hal yang sama untuk peran Kontributor dan Pembaca untuk melihat tindakan yang diizinkan dan ditolak.
Peran bawaan
Untuk pemeriksaan mendalam tentang peran RBAC dan pengguna di ID Microsoft Entra, lihat Memeriksa peran RBAC dan pengguna di ID Microsoft Entra.
Apa definisi peran?
Definisi peran adalah kumpulan izin. Definisi peran mencantumkan operasi yang dapat dilakukan peran, seperti membaca, menulis, dan menghapus. Yang juga dapat mencantumkan operasi yang tidak dapat dilakukan atau operasi yang terkait dengan data yang mendasarinya.
Seperti yang dijelaskan sebelumnya, definisi peran memiliki struktur berikut:
Nama | Deskripsi |
---|---|
Id |
Pengidentifikasi unik untuk peran tersebut, ditetapkan oleh Azure |
IsCustom |
True jika peran kustom, False jika peran bawaan |
Description |
Deskripsi peran yang dapat dibaca |
Actions [] |
Izin yang diizinkan; * menunjukkan semua |
NotActions [] |
Izin yang ditolak |
DataActions [] |
Izin khusus yang diperbolehkan seperti yang diterapkan pada data, misalnya Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read |
NotDataActions [] |
Izin tertentu ditolak seperti yang diterapkan pada data. |
AssignableScopes [] |
Cakupan di mana peran ini berlaku; / menunjukkan global, tetapi dapat mencapai ke pohon hierarkis |
Struktur ini dinyatakan sebagai JSON ketika digunakan dalam role-based access control (RBAC) atau dari API yang mendasarinya. Misalnya, berikut definisi peran Kontributor dalam format JSON.
{
"Name": "Contributor",
"Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
"IsCustom": false,
"Description": "Lets you manage everything except access to resources.",
"Actions": [
"*"
],
"NotActions": [
"Microsoft.Authorization/*/Delete",
"Microsoft.Authorization/*/Write",
"Microsoft.Authorization/elevateAccess/Action"
],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/"
]
}
Tindakan dan Bukan Tindakan
Anda dapat menyesuaikan Actions
dan NotActions
properti untuk memberikan dan menolak izin yang tepat yang Anda butuhkan. Properti ini selalu dalam format:{Company}.{ProviderName}/{resourceType}/{action}
Sebagai contoh, berikut adalah tindakan untuk tiga peran yang kita lihat sebelumnya:
Peran Bawaan | Tindakan | NotActions |
---|---|---|
Pemilik (perbolehkan semua tindakan) | * |
- |
Kontributor (perbolehkan semua tindakan kecuali menulis atau menghapus penetapan peran) | * |
Microsoft.Authorization/*/Delete, Microsoft.Authorization/*/Write, Microsoft.Authorization/elevateAccess/Action |
Pembaca (memperbolehkan semua tindakan baca) | */read |
- |
Operasi kartubebas (*
) di bawah Actions
menunjukkan bahwa prinsipal yang ditetapkan untuk peran ini dapat melakukan semua tindakan; atau dengan kata lain, peran ini dapat mengelola semuanya, termasuk tindakan yang didefinisikan di masa depan karena jenis sumber daya baru ditambahkan ke Azure. Dengan peran Pembaca, hanya read
tindakan yang diizinkan.
Operasi di bawah NotActions
dikurangi dari Actions
. Dengan peran Kontributor, NotActions
menghapus kemampuan peran ini untuk mengelola akses ke sumber daya dan juga menetapkan akses ke sumber daya.
DataActions dan NotDataActions
Operasi data ditentukan dalam DataActions
dan NotDataActions
properti. Anda dapat menentukan operasi data secara terpisah dari operasi manajemen. Ini mencegah penetapan peran saat ini dengan kartubebas (*
) tiba-tiba memiliki akses ke data. Berikut adalah beberapa operasi data yang dapat Anda tentukan di DataActions
dan NotDataActions
:
- Membaca daftar blob dalam kontainer
- Menulis blob penyimpanan dalam kontainer
- Menghapus pesan dalam antrean
Anda hanya dapat menambahkan operasi data ke DataActions
properti dan NotDataActions
. Penyedia sumber daya mengidentifikasi operasi mana yang merupakan operasi data dengan mengatur isDataAction
properti ke true
. Peran yang tidak memiliki operasi data dapat menghilangkan properti ini dari definisi peran.
Tindakan ini bekerja persis seperti sepupu manajemen mereka. Anda dapat menentukan tindakan yang ingin Anda izinkan (atau *
untuk semua), lalu menyediakan daftar tindakan tertentu untuk dihapus dalam NotDataActions
koleksi. Berikut adalah beberapa contoh; Anda dapat menemukan daftar lengkap tindakan dan tindakan data dalam dokumentasi penyedia sumber daya:
Operasi data | Deskripsi |
---|---|
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete |
Menghapus data blob |
Microsoft.Compute/virtualMachines/login/action |
Masuk ke VM sebagai pengguna reguler |
Microsoft.EventHub/namespaces/messages/send/action |
Mengirim pesan di event hub |
Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read |
Mengembalikan file/folder atau daftar file/folder |
Microsoft.Storage/storageAccounts/queueServices/queues/messages/read |
Membaca pesan dari antrean |
Lingkup yang Dapat Ditetapkan
Mendefinisikan properti Tindakan dan Bukan Tindakan tidak cukup untuk sepenuhnya mengimplementasikan peran. Anda juga perlu lingkup peran Anda dengan benar.
Properti AssignableScopes dari peran menentukan lingkup (langganan, grup sumber daya, atau sumber daya) di mana peran tersedia untuk penetapan. Anda dapat membuat peran kustom tersedia untuk penetapan hanya di langganan atau grup sumber daya yang membutuhkannya, sehingga menghindari mengacaukan pengalaman pengguna untuk sisa langganan atau grup sumber daya.
Berikut adalah beberapa contoh:
Untuk | Menggunakan Lingkup |
---|---|
Membatasi langganan | "/subscriptions/{sub-id}" |
Membatasi grup sumber daya tertentu pada langganan tertentu | "/subscriptions/{sub-id}/resourceGroups/{rg-name}" |
Membatasi ke sumber daya tertentu | "/subscriptions/{sub-id}/resourceGroups/{rg-name}/{resource-name}" |
Membuat peran tersedia untuk penugasan dalam dua langganan | "/subscriptions/{sub-id}", "/subscriptions/{sub-id}" |
Buat peran
MICROSOFT Entra ID dilengkapi dengan peran bawaan yang kemungkinan mencakup 99% dari apa yang ingin Anda lakukan. Lebih baik menggunakan peran bawaan jika memungkinkan. Namun, Anda dapat membuat peran khusus jika Anda merasa perlu.
Catatan
Pembuatan peran kustom memerlukan Microsoft Entra ID P1 atau P2; Anda tidak dapat membuat peran kustom di tingkat gratis.
Anda dapat membuat peran baru melalui beberapa mekanisme:
Pusat admin Microsoft Entra: Anda dapat menggunakan pusat admin Microsoft Entra untuk membuat peran kustom dengan memilih Peran & admin di bawah Peran & admin di menu sebelah kiri, lalu memilih Peran kustom baru.
portal Azure: Anda dapat menggunakan portal Azure untuk membuat peran kustom dengan memilih Peran ID>Microsoft Entra dan administrator>Peran kustom baru.
Azure PowerShell: Anda dapat menggunakan
New-AzRoleDefinition
cmdlet untuk menentukan peran baru.Azure Graph API: Anda dapat menggunakan panggilan REST ke Graph API untuk membuat peran baru secara terprogram.
Bagian Ringkasan modul ini menyertakan tautan ke dokumentasi untuk pendekatan ini.