Menetapkan peran Azure menggunakan REST API
Kontrol akses berbasis peran Azure (Azure RBAC) adalah sistem otorisasi yang Anda gunakan untuk mengelola akses ke sumber daya Azure. Untuk memberikan akses, Anda menetapkan peran kepada pengguna, grup, perwakilan layanan, atau identitas terkelola pada cakupan tertentu. Artikel ini menjelaskan cara menetapkan peran menggunakan REST API.
Prasyarat
Untuk menetapkan peran Azure, Anda harus memiliki:
Microsoft.Authorization/roleAssignments/write
izin, seperti Administrator Kontrol Akses Berbasis Peran atau Administrator Akses Pengguna
Anda harus menggunakan versi berikut:
2015-07-01
atau yang lebih baru untuk menetapkan peran Azure2018-09-01-preview
atau yang lebih baru untuk menetapkan peran Azure ke perwakilan layanan baru
Untuk informasi selengkapnya, lihat API versi REST API Azure RBAC.
Menetapkan peran Azure
Untuk menetapkan peran, gunakan Penetapan Peran - Buat REST API dan tentukan keamanan utama, definisi peran, dan cakupan. Untuk memanggil API ini, Anda harus memiliki akses ke Microsoft.Authorization/roleAssignments/write
tindakan, seperti Administrator Kontrol Akses Berbasis Peran.
Gunakan Definisi Peran - Daftar REST API atau lihat Peran bawaan untuk mendapatkan pengidentifikasi untuk definisi peran yang ingin Anda tetapkan.
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/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{ "properties": { "roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "principalId": "{principalId}" } }
Dalam URI, ganti {cakupan} dengan cakupan untuk penetapan peran.
Cakupan Jenis providers/Microsoft.Management/managementGroups/{groupId1}
Grup manajemen subscriptions/{subscriptionId1}
Langganan subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1
Grup sumber daya subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/microsoft.web/sites/mysite1
Sumber Daya Dalam contoh sebelumnya, microsoft.web adalah penyedia sumber daya yang merujuk ke instans App Service. Demikian pula, Anda dapat menggunakan penyedia sumber daya lain dan menentukan cakupannya. Untuk mengetahui informasi selengkapnya, lihat Penyedia sumber daya Azure dan jenis serta operasi penyedia sumber daya Azure yang didukung.
Ganti {roleAssignmentId} dengan pengidentifikasi GUID dari penetapan peran.
Dalam isi permintaan, ganti {scope} dengan cakupan yang sama seperti di URI.
Ganti {roleDefinitionId} dengan pengidentifikasi definisi peran.
Ganti {principalId} dengan pengidentifikasi objek pengguna, grup, atau perwakilan layanan yang akan diberi peran.
Permintaan dan isi berikut menetapkan peran Pembaca Microsoft Azure Backup kepada pengguna di cakupan langganan:
PUT https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}"
}
}
Berikut ini menunjukkan contoh output:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId1}",
"condition": null,
"conditionVersion": null,
"createdOn": "2022-05-06T23:55:23.7679147Z",
"updatedOn": "2022-05-06T23:55:23.7679147Z",
"createdBy": null,
"updatedBy": "{updatedByObjectId1}",
"delegatedManagedIdentityResourceId": null,
"description": null
},
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId1}"
}
Perwakilan layanan baru
Jika Anda membuat perwakilan layanan baru dan ingin segera mencoba menetapkan peran untuk perwakilan layanan tersebut, penetapan peran tersebut dapat gagal pada beberapa kasus. Misalnya, jika Anda membuat identitas terkelola baru lalu mencoba menetapkan peran ke perwakilan layanan tersebut, penetapan peran mungkin gagal. Penyebab kegagalan ini kemungkinan adalah penundaan replikasi. Perwakilan layanan dibuat di satu wilayah; namun, penetapan peran mungkin dilakukan di wilayah lain yang belum mereplikasi perwakilan layanan.
Untuk mengatasi skenario ini, gunakan Penetapan Peran - Buat REST API dan set principalType
properti ke ServicePrincipal
. Anda juga harus mengeset apiVersion
ke 2018-09-01-preview
atau nanti. 2022-04-01
adalah versi stabil pertama.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
"principalId": "{principalId}",
"principalType": "ServicePrincipal"
}
}