Menambahkan atau mengedit kondisi penetapan peran Azure menggunakan REST API
Kondisi penetapan peran Azure adalah pemeriksaan tambahan yang dapat Anda tambahkan secara opsional ke penetapan peran milik Anda untuk memberikan kontrol akses yang lebih terperinci. Misalnya, Anda dapat menambahkan kondisi yang mengharuskan objek memiliki tag tertentu untuk membaca objek. Artikel ini menjelaskan cara menambahkan, mengedit, mencantumkan, atau menghapus kondisi untuk penetapan peran Anda menggunakan REST API.
Prasyarat
Anda harus menggunakan versi berikut:
2020-03-01-preview
atau yang lebih baru2020-04-01-preview
atau yang lebih baru jika Anda ingin menggunakandescription
properti untuk penetapan peran2022-04-01
adalah versi stabil pertama
Untuk informasi selengkapnya tentang prasyarat untuk menambahkan atau mengedit kondisi penetapan peran, lihat Prasyarat kondisi.
Menambahkan kondisi
Untuk menambahkan kondisi penetapan peran, gunakan Role Assignments - Buat REST API. Penetapan Peran - Buat menyertakan parameter berikut yang terkait dengan kondisi.
Parameter | Jenis | Deskripsi |
---|---|---|
condition |
String | Kondisi yang menjadi syarat pengguna dapat diberikan izin. |
conditionVersion |
String | Versi sintaks kondisi. Jika condition ditentukan tanpa conditionVersion , versi diatur ke nilai default 2.0. |
Gunakan 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}",
"condition": "{condition}",
"conditionVersion": "2.0",
"description": "{description}"
}
}
Contoh berikut menunjukkan cara menetapkan peran Storage Blob Data Reader dengan kondisi. Kondisi ini memeriksa apakah nama kontainer sama dengan 'blobs-example-container'.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container"
}
}
Berikut ini menunjukkan contoh output:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"createdOn": "2022-07-20T06:20:44.0205560Z",
"updatedOn": "2022-07-20T06:20:44.2955371Z",
"createdBy": null,
"updatedBy": "{updatedById}",
"delegatedManagedIdentityResourceId": null,
"description": "Read access if container name equals blobs-example-container"
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId}"
}
Mengedit kondisi
Untuk mengedit kondisi penetapan peran yang ada, gunakan Role Assignments yang sama - Buat REST API seperti yang Anda gunakan untuk menambahkan kondisi penetapan peran. Berikut ini memperlihatkan contoh JSON ketika condition
dan description
diperbarui. Hanya properti condition
, conditionVersion
, dan description
saja yang dapat diedit. Anda harus menentukan properti lain agar sesuai dengan penetapan peran yang ada.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2"
}
}
Mencantumkan kondisi
Untuk mencantumkan kondisi penetapan peran, gunakan Rest API Penetapan Peran atau Daftar. Untuk informasi selengkapnya, lihat Penetapan peran List Azure menggunakan REST API.
Menghapus kondisi
Untuk menghapus kondisi penetapan peran, edit kondisi penetapan peran dan atur kondisi dan versi kondisi ke string kosong atau null.
Atau, jika ingin menghapus role assignment dan kondisi, Anda dapat menggunakan Role Assignments - Delete API. Untuk informasi selengkapnya, lihat Menghapus penetapan peran Azure.