Peran kustom Azure
Jika peran bawaan Microsoft Azure tidak memenuhi kebutuhan spesifik organisasi, Anda dapat membuat peran kustom sendiri. Sama seperti peran bawaan, Anda dapat menetapkan peran kustom kepada pengguna, grup, dan perwakilan layanan pada cakupan grup manajemen, langganan, dan grup sumber daya.
Peran kustom dapat dibagikan antara langganan yang mempercayai penyewa Microsoft Entra yang sama. Ada batas 5.000 peran kustom per penyewa. (Untuk Microsoft Azure yang dioperasikan oleh 21Vianet, batasnya adalah 2.000 peran kustom.) Peran kustom dapat dibuat menggunakan portal Azure, Azure PowerShell, Azure CLI, atau REST API.
Langkah-langkah untuk membuat peran kustom
Berikut langkah-langkah dasar untuk membuat peran kustom.
Tentukan izin yang Anda butuhkan.
Saat membuat peran kustom, Anda perlu mengetahui tindakan yang tersedia untuk menentukan izin Anda. Biasanya, Anda mulai dengan peran bawaan yang ada lalu memodifikasinya sesuai kebutuhan Anda. Anda akan menambahkan tindakan ke properti
Actions
atauNotActions
dari definisi peran. Jika Anda memiliki tindakan data, Anda akan menambahkannya ke propertiDataActions
atauNotDataActions
.Untuk informasi selengkapnya, lihat bagian berikutnya Cara menentukan izin yang Anda butuhkan.
Tentukan bagaimana Anda ingin membuat peran kustom.
Anda dapat membuat peran kustom menggunakan portal Azure, Azure PowerShell, Azure CLI, atau REST API.
Buat peran kustom.
Cara termudah adalah menggunakan portal Azure. Untuk mempelajari langkah-langkah membuat peran kustom menggunakan portal Azure, lihat Membuat atau memperbarui peran kustom Azure menggunakan portal Azure.
Uji peran kustom.
Setelah Anda memiliki peran kustom, Anda harus mengujinya untuk memverifikasi bahwa peran kustom berfungsi seperti yang Anda harapkan. Jika nanti Anda perlu melakukan penyesuaian, Anda dapat memperbarui peran kustom.
Cara menentukan izin yang Anda butuhkan
Azure memiliki ribuan izin untuk disertakan dalam peran kustom Anda. Berikut beberapa metode yang dapat Anda gunakan untuk menentukan izin yang ingin ditambahkan ke peran kustom Anda:
Lihatlah peran bawaan yang ada.
Anda mungkin ingin mengubah peran yang sudah ada atau menggabungkan izin yang digunakan dalam beberapa peran.
Cantumkan layanan Azure yang ingin Anda beri akses.
Tentukan penyedia sumber daya yang memetakan ke layanan Azure.
Layanan Azure mengekspos fungsionalitas dan izin mereka melalui penyedia sumber daya. Misalnya, penyedia sumber daya Microsoft.Compute menyediakan sumber daya mesin virtual dan penyedia sumber daya Microsoft.Billing menyediakan sumber daya langganan dan tagihan. Penyedia sumber daya dapat membantu Anda mempersempit dan menentukan izin yang Anda butuhkan untuk peran kustom Anda.
Saat Anda membuat peran kustom menggunakan portal Azure, Anda juga dapat menentukan penyedia sumber daya dengan mencari kata kunci. Fungsionalitas pencarian ini dijelaskan dalam Membuat atau memperbarui peran kustom Azure menggunakan portal Azure.
Cari izin yang tersedia untuk menemukan izin yang ingin Anda sertakan.
Saat Anda membuat peran kustom menggunakan portal Azure, Anda bisa mencari izin berdasarkan kata kunci. Misalnya, Anda dapat mencari izin mesin virtual atau penagihan. Anda juga dapat mengunduh semua izin sebagai file CSV lalu mencari file ini. Fungsionalitas pencarian ini dijelaskan dalam Membuat atau memperbarui peran kustom Azure menggunakan portal Azure.
Contoh peran kustom
Berikut gambaran peran kustom yang ditampilkan menggunakan Azure PowerShell dalam format JSON. Peran kustom ini dapat digunakan untuk memantau dan memulai ulang mesin virtual.
{
"Name": "Virtual Machine Operator",
"Id": "88888888-8888-8888-8888-888888888888",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
]
}
Berikut gambaran peran kustom yang sama seperti yang ditampilkan menggunakan Azure CLI.
[
{
"assignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
],
"description": "Can monitor and restart virtual machines.",
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
"name": "88888888-8888-8888-8888-888888888888",
"permissions": [
{
"actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Virtual Machine Operator",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
Properti peran kustom
Tabel berikut ini menjelaskan arti properti peran kustom.
Properti | Wajib | Tipe | Deskripsi |
---|---|---|---|
Name roleName |
Ya | String | Nama tampilan peran kustom. Meskipun definisi peran adalah grup manajemen atau sumber daya tingkat langganan, definisi peran dapat digunakan dalam beberapa langganan yang berbagi penyewa Microsoft Entra yang sama. Nama tampilan ini harus unik pada cakupan penyewa Microsoft Entra. Dapat mencakup huruf, angka, spasi, dan karakter khusus. Jumlah karakter maksimum adalah 512. |
Id name |
Ya | String | ID unik dari peran kustom. Untuk Azure PowerShell dan Azure CLI, ID ini secara otomatis dihasilkan saat Anda membuat peran baru. |
IsCustom roleType |
Ya | String | Menunjukkan apakah ini adalah peran kustom. Atur ke true atau CustomRole untuk peran kustom. Atur ke false atau BuiltInRole untuk peran bawaan. |
Description description |
Ya | String | Deskripsi peran kustom. Dapat mencakup huruf, angka, spasi, dan karakter khusus. Jumlah maksimum karakter adalah 2048. |
Actions actions |
Ya | Tali[] | Array untai (karakter) yang menentukan tindakan sarana kontrol yang perannya mengizinkan untuk dilakukan. Untuk informasi selengkapnya, lihat Actions. |
NotActions notActions |
No | Tali[] | Array untai (karakter) yang menentukan tindakan sarana kontrol yang dikecualikan dari Actions yang diizinkan. Untuk informasi selengkapnya, lihat NotActions. |
DataActions dataActions |
No | Tali[] | Array untai (karakter) yang menentukan tindakan data plane yang diizinkan peran untuk dilakukan pada data Anda di dalam objek itu. Jika Anda membuat peran kustom dengan DataActions , peran tersebut tidak dapat ditetapkan di cakupan grup manajemen. Untuk informasi selengkapnya, lihat DataActions. |
NotDataActions notDataActions |
No | Tali[] | Array untai (karakter) yang menentukan tindakan data plane yang dikecualikan dari DataActions yang diizinkan. Untuk informasi selengkapnya, lihat NotDataActions. |
AssignableScopes assignableScopes |
Ya | Tali[] | Array untai (karakter) yang menentukan cakupan bahwa peran kustom dapat ditetapkan. Jumlah AssignableScopes maksimum adalah 2.000. Untuk informasi selengkapnya, lihat AssignableScopes. |
String izin tidak peka huruf besar-kecil. Saat Anda membuat peran kustom, konvensinya adalah mencocokkan kasus yang Anda lihat untuk izin di operasi penyedia sumber Azure.
Izin wildcard
Actions
, NotActions
, DataActions
, dan NotDataActions
mendukung wildcard (*
) untuk menentukan izin. Wildcard (*
) memperluas izin untuk semua yang cocok dengan untai tindakan yang Anda berikan. Misalnya, Anda ingin menambahkan semua izin yang terkait dengan Azure Cost Management dan ekspor. Anda bisa menambahkan semua untai (karakter) tindakan ini:
Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action
Alih-alih menambahkan semua untai (karakter) ini, Anda bisa menambahkan untai (karakter) wildcard. Misalnya, untai (karakter) wildcard berikut setara dengan lima untai (karakter) sebelumnya. Untai wildcard ini juga akan mencakup izin ekspor di masa mendatang yang mungkin ditambahkan.
Microsoft.CostManagement/exports/*
Catatan
Disarankan agar Anda menentukan Actions
dan DataActions
secara eksplisit alih-alih menggunakan karakter kartubebas (*
). Akses dan izin tambahan yang diberikan melalui masa mendatang Actions
atau DataActions
mungkin perilaku yang tidak diinginkan menggunakan kartubebas.
Siapa saja yang bisa membuat, menghapus, memperbarui, atau menampilkan peran kustom
Sama seperti peran bawaan, properti AssignableScopes
menentukan cakupan yang perannya tersedia untuk penugasan. Properti AssignableScopes
untuk peran kustom juga mengontrol siapa saja yang bisa membuat, menghapus, memperbarui, atau melihat peran kustom.
Tugas | Tindakan | Deskripsi |
---|---|---|
Buat/hapus peran kustom | Microsoft.Authorization/ roleDefinitions/write |
Pengguna yang diberikan tindakan ini pada semua AssignableScopes peran kustom dapat membuat (atau menghapus) peran kustom untuk digunakan dalam lingkup tersebut. Misalnya, Pemilik dan Administrator Akses Pengguna grup manajemen, langganan, dan grup sumber daya. |
Perbarui peran kustom | Microsoft.Authorization/ roleDefinitions/write |
Pengguna yang diberikan tindakan ini pada semua AssignableScopes peran kustom dapat memperbarui peran kustom dalam lingkup tersebut. Misalnya, Pemilik dan Administrator Akses Pengguna grup manajemen, langganan, dan grup sumber daya. |
Tampilkan peran kustom | Microsoft.Authorization/ roleDefinitions/read |
Pengguna yang diberikan tindakan ini pada lingkup dapat melihat peran kustom yang tersedia untuk penugasan pada lingkup tersebut. Semua peran bawaan memungkinkan peran kustom tersedia untuk penugasan. |
Catatan
Meskipun peran diganti namanya, ID peran tidak berubah. Jika Anda menggunakan skrip atau otomasi untuk membuat tugas peran, ini adalah praktik terbaik untuk menggunakan ID peran unik, alih-alih nama peran. Oleh karena itu, jika peran diganti namanya, skrip Anda kemungkinan akan berfungsi.
Menemukan penetapan peran untuk menghapus peran kustom
Sebelum dapat menghapus peran kustom, Anda harus menghapus penetapan peran apa pun yang menggunakan peran kustom. Jika Anda mencoba menghapus peran kustom dengan penetapan peran, Anda mendapatkan pesan: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments)
.
Berikut adalah langkah-langkah untuk membantu menemukan penetapan peran sebelum menghapus peran kustom:
- Mencantumkan definisi peran kustom.
- Di bagian AssignableScopes , dapatkan grup manajemen, langganan, dan grup sumber daya.
- Ulangi
AssignableScopes
dan cantumkan penetapan peran. - Hapus penetapan peran yang menggunakan peran kustom.
- Jika Anda menggunakan Microsoft Entra Privileged Identity Management, hapus penetapan peran kustom yang memenuhi syarat.
- Hapus peran kustom.
Untuk informasi tentang cara menemukan peran kustom yang tidak digunakan, lihat Gejala - Tidak ada lagi definisi peran yang dapat dibuat.
Batasan peran kustom
Daftar berikut menjelaskan batasan untuk peran kustom.
- Setiap penyewa dapat memiliki hingga 5000 peran kustom.
- Microsoft Azure yang dioperasikan oleh 21Vianet dapat memiliki hingga 2000 peran kustom untuk setiap penyewa.
- Anda tidak dapat mengatur
AssignableScopes
ke lingkup root ("/"
). - Anda tidak dapat menggunakan wildcard (
*
) diAssignableScopes
. Pembatasan wildcard ini membantu memastikan pengguna tidak dapat berpotensi mendapatkan akses ke lingkup dengan memperbarui definisi peran. - Anda hanya dapat memiliki satu wildcard dalam untai (karakter) tindakan.
- Anda hanya dapat menentukan satu kelompok pengelolaan dalam
AssignableScopes
peran kustom. - Azure Resource Manager tidak memvalidasi keberadaan grup manajemen dalam definisi
AssignableScopes
peran . - Peran kustom dengan
DataActions
tidak dapat ditetapkan di cakupan grup manajemen. - Anda dapat membuat peran kustom dengan
DataActions
dan satu grup manajemen diAssignableScopes
. Anda tidak dapat menetapkan peran kustom di cakupan grup manajemen itu sendiri; namun, Anda dapat menetapkan peran kustom pada cakupan langganan dalam grup manajemen. Ini dapat membantu jika Anda perlu membuat satu peran kustom denganDataActions
yang perlu ditetapkan dalam beberapa langganan, alih-alih membuat peran kustom terpisah untuk setiap langganan.
Untuk informasi selengkapnya tentang grup manajemen, lihat Apa itu grup manajemen Azure?.
Format input dan output
Untuk membuat peran kustom menggunakan baris perintah, biasanya Anda menggunakan JSON untuk menentukan properti yang Anda inginkan pada peran kustom. Tergantung pada alat yang Anda gunakan, format input dan output akan terlihat sedikit berbeda. Bagian ini mencantumkan format input dan output tergantung pada alatnya.
Azure PowerShell
Untuk membuat peran kustom menggunakan Azure PowerShell, Anda harus menyediakan input berikut.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Untuk membuat peran kustom menggunakan Azure PowerShell, Anda harus menyediakan input berikut. Perhatikan bahwa properti Id
telah ditambahkan.
{
"Name": "",
"Id": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Contoh berikut memperlihatkan output saat Anda mencantumkan peran kustom menggunakan Azure PowerShell dan perintah ConvertTo-Json.
{
"Name": "",
"Id": "",
"IsCustom": true,
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Azure CLI
Untuk membuat atau memperbarui peran kustom menggunakan Azure CLI, Anda harus menyediakan input berikut. Format ini sama dengan format saat Anda membuat peran kustom menggunakan Azure PowerShell.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Contoh berikut memperlihatkan output saat Anda mencantumkan peran kustom menggunakan Azure CLI.
[
{
"assignableScopes": [],
"description": "",
"id": "",
"name": "",
"permissions": [
{
"actions": [],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
REST API
Untuk membuat atau memperbarui peran kustom menggunakan REST API, Anda harus menyediakan input berikut. Format ini sama dengan format yang dihasilkan saat Anda membuat peran kustom menggunakan portal Azure.
{
"properties": {
"roleName": "",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}
Contoh berikut memperlihatkan output saat Anda mencantumkan peran kustom menggunakan REST API.
{
"properties": {
"roleName": "",
"type": "CustomRole",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
],
"createdOn": "",
"updatedOn": "",
"createdBy": "",
"updatedBy": ""
},
"id": "",
"type": "Microsoft.Authorization/roleDefinitions",
"name": ""
}