Buat atau perbarui peran kustom Azure menggunakan REST API
Jika peran bawaan Microsoft Azure tidak memenuhi kebutuhan spesifik organisasi, Anda dapat membuat peran kustom sendiri. Artikel ini menjelaskan cara mencantumkan, membuat, memperbarui, atau menghapus peran kustom menggunakan REST API.
Prasyarat
Anda harus menggunakan versi berikut:
2015-07-01
atau yang lebih baru
Untuk informasi selengkapnya, lihat API versi REST API Azure RBAC.
Mencantumkan semua definisi peran kustom
Untuk mencantumkan semua definisi peran kustom dalam penyewa, gunakan Definisi Peran - Daftar REST API.
Contoh berikut mencantumkan semua definisi peran kustom dalam penyewa:
Permintaan
GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
Respons
{ "value": [ { "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" } ] }
Mencantumkan semua definisi peran kustom pada cakupan
Untuk mencantumkan definisi peran kustom pada cakupan, gunakan Definisi Peran - Daftar REST API.
Mulai dengan permintaan berikut:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda cantumkan definisi perannya.
Cakupan Jenis subscriptions/{subscriptionId1}
Langganan subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Grup sumber daya subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Sumber daya providers/Microsoft.Management/managementGroups/{groupId1}
Grup manajemen Ganti {filter} dengan tipe peran.
Filter Deskripsi $filter=type+eq+'CustomRole'
Filter berdasarkan jenis CustomRole Contoh berikut mencantumkan semua definisi peran kustom dalam langganan:
Permintaan
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
Respons
{ "value": [ { "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" } ] }
Cantumkan definisi peran kustom berdasarkan nama
Untuk mendapatkan informasi tentang definisi peran kustom dengan nama tampilannya, gunakan Definisi Peran - Dapatkan REST API.
Mulai dengan permintaan berikut:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda cantumkan definisi perannya.
Cakupan Jenis subscriptions/{subscriptionId1}
Langganan subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Grup sumber daya subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Sumber daya providers/Microsoft.Management/managementGroups/{groupId1}
Grup manajemen Ganti {filter} dengan nama tampilan untuk peran tersebut.
Filter Deskripsi $filter=roleName+eq+'{roleDisplayName}'
Gunakan formulir URL yang dikodekan dari nama tampilan peran yang tepat. Contohnya, $filter=roleName+eq+'Virtual%20Machine%20Contributor'
Contoh berikut mencantumkan definisi peran kustom bernama Billing Reader Plus dalam langganan:
Permintaan
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName+eq+'Billing Reader Plus'&api-version=2022-04-01
Respons
{ "value": [ { "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" } ] }
Cantumkan definisi peran kustom berdasarkan ID
Untuk mendapatkan informasi tentang definisi peran kustom dengan pengidentifikasi uniknya, gunakan Definisi Peran - Dapatkan REST API.
Gunakan Definisi Peran - Daftar REST API untuk mendapatkan pengidentifikasi GUID untuk peran tersebut.
Mulai dengan permintaan berikut:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda cantumkan definisi perannya.
Cakupan Jenis subscriptions/{subscriptionId1}
Langganan subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Grup sumber daya subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Sumber daya providers/Microsoft.Management/managementGroups/{groupId1}
Grup manajemen Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.
Contoh berikut mencantumkan definisi peran kustom dengan pengidentifikasi 17adabda-4bf1-4f4e-8c97-1f0cab6dea1c dalam langganan:
Permintaan
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c?api-version=2022-04-01
Respons
{ "properties": { "roleName": "Billing Reader Plus", "type": "CustomRole", "description": "Read billing data and download invoices", "assignableScopes": [ "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15" ], "permissions": [ { "actions": [ "Microsoft.Authorization/*/read", "Microsoft.Billing/*/read", "Microsoft.Commerce/*/read", "Microsoft.Consumption/*/read", "Microsoft.Management/managementGroups/read", "Microsoft.CostManagement/*/read", "Microsoft.Billing/invoices/download/action", "Microsoft.CostManagement/exports/*" ], "notActions": [ "Microsoft.CostManagement/exports/delete" ], "dataActions": [], "notDataActions": [] } ], "createdOn": "2021-05-22T21:57:23.5764138Z", "updatedOn": "2021-05-22T21:57:23.5764138Z", "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70", "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70" }, "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c", "type": "Microsoft.Authorization/roleDefinitions", "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c" }
Membuat peran kustom
Untuk membuat peran kustom, gunakan Definisi Peran - Buat Atau Perbarui REST API. Untuk memanggil API ini, Anda harus masuk dengan pengguna yang diberi peran yang memiliki Microsoft.Authorization/roleDefinitions/write
izin pada semua assignableScopes
. Dari peran bawaan, hanya Pemilik dan Administrator Akses Pengguna yang diberikan izin ini.
Tinjau daftar operasi penyedia sumber daya yang tersedia untuk membuat izin untuk peran kustom Anda.
Gunakan alat GUID untuk menghasilkan pengidentifikasi unik yang akan digunakan untuk pengidentifikasi penetapan peran. Pengidentifikasi memiliki format:
00000000-0000-0000-0000-000000000000
Mulai dengan permintaan dan isi berikut:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
{ "name": "{roleDefinitionId}", "properties": { "roleName": "", "description": "", "type": "CustomRole", "permissions": [ { "actions": [ ], "notActions": [ ] } ], "assignableScopes": [ "/subscriptions/{subscriptionId1}", "/subscriptions/{subscriptionId2}", "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}", "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}", "/providers/Microsoft.Management/managementGroups/{groupId1}" ] } }
Dalam URI, ganti {cakupan} dengan
assignableScopes
peran kustom pertama.Cakupan Jenis subscriptions/{subscriptionId1}
Langganan subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Grup sumber daya providers/Microsoft.Management/managementGroups/{groupId1}
Grup manajemen Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.
Dalam isi permintaan, ganti {roleDefinitionId} dengan pengidentifikasi GUID.
Jika
assignableScopes
adalah grup langganan atau sumber daya, ganti instans {subscriptionId} atau {resourceGroup} dengan pengidentifikasi Anda.Jika
assignableScopes
adalah grup manajemen, ganti instans {groupId} dengan pengidentifikasi grup manajemen Anda.Di properti
actions
, tambahkan tindakan yang diizinkan peran untuk dilakukan.Di properti
notActions
, tambahkan tindakan yang dikecualikan dariactions
yang diizinkan.Di
roleName
properti dandescription
, tentukan nama peran dan deskripsi yang unik. Untuk informasi tentang properti lain, lihatPeran kustom Azure.Berikut ini merupakan contoh isi permintaan:
{ "name": "88888888-8888-8888-8888-888888888888", "properties": { "roleName": "Virtual Machine Operator", "description": "Can monitor and restart virtual machines.", "type": "CustomRole", "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.Support/*" ], "notActions": [] } ], "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000", "/providers/Microsoft.Management/managementGroups/marketing-group" ] } }
Perbarui peran kustom
Untuk membuat peran kustom, gunakan Definisi Peran - Buat Atau Perbarui REST API. Untuk memanggil API ini, Anda harus masuk dengan pengguna yang diberi peran yang memiliki Microsoft.Authorization/roleDefinitions/write
izin pada semua assignableScopes
, seperti Administrator Akses Pengguna.
Gunakan Definisi Peran - Daftar atau Definisi Peran - Dapatkan REST API untuk mendapatkan informasi tentang peran kustom. Untuk informasi selengkapnya, lihat bagian Daftar semua definisi peran kustom sebelumnya.
Mulai dengan permintaan berikut:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
Dalam URI, ganti {cakupan} dengan
assignableScopes
peran kustom pertama.Cakupan Jenis subscriptions/{subscriptionId1}
Langganan subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Grup sumber daya providers/Microsoft.Management/managementGroups/{groupId1}
Grup manajemen Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.
Berdasarkan informasi tentang peran kustom, buat isi permintaan dengan format berikut:
{ "name": "{roleDefinitionId}", "properties": { "roleName": "", "description": "", "type": "CustomRole", "permissions": [ { "actions": [ ], "notActions": [ ] } ], "assignableScopes": [ "/subscriptions/{subscriptionId1}", "/subscriptions/{subscriptionId2}", "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}", "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}", "/providers/Microsoft.Management/managementGroups/{groupId1}" ] } }
Perbarui isi permintaan dengan perubahan yang ingin Anda buat ke peran kustom.
Berikut ini merupakan contoh isi permintaan dengan tindakan pengaturan diagnostik baru yang telah ditambahkan:
{ "name": "88888888-8888-8888-8888-888888888888", "properties": { "roleName": "Virtual Machine Operator", "description": "Can monitor and restart virtual machines.", "type": "CustomRole", "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/*" ], "notActions": [] } ], "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000", "/providers/Microsoft.Management/managementGroups/marketing-group" ] } }
Menghapus peran kustom
Untuk menghapus peran kustom, gunakan Definisi Peran - Hapus REST API. Untuk memanggil API ini, Anda harus masuk dengan pengguna yang diberi peran yang memiliki Microsoft.Authorization/roleDefinitions/delete
izin pada semua assignableScopes
. Dari peran bawaan, hanya Pemilik dan Administrator Akses Pengguna yang diberikan izin ini.
Hapus penetapan peran apa pun yang menggunakan peran kustom. Untuk informasi selengkapnya, lihat Menemukan penetapan peran untuk menghapus peran kustom.
Gunakan Definisi Peran - Daftar atau Definisi Peran - Dapatkan REST API untuk mendapatkan informasi tentang peran kustom. Untuk informasi selengkapnya, lihat bagian Daftar semua definisi peran kustom sebelumnya.
Mulai dengan permintaan berikut:
DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
Di dalam URI, ganti {cakupan} dengan cakupan yang ingin Anda hapus peran kustomnya.
Cakupan Jenis subscriptions/{subscriptionId1}
Langganan subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Grup sumber daya providers/Microsoft.Management/managementGroups/{groupId1}
Grup manajemen Ganti {roleDefinitionId} dengan pengidentifikasi GUID dari definisi peran.