REST API kullanarak Azure rol atama koşullarını ekleme veya düzenleme
Azure rol atama koşulu, daha ayrıntılı erişim denetimi sağlamak için isteğe bağlı olarak rol atamanıza ekleyebileceğiniz ek bir denetimdir. Örneğin, bir nesnenin nesneyi okumak için belirli bir etikete sahip olmasını gerektiren bir koşul ekleyebilirsiniz. Bu makalede, REST API kullanarak rol atamalarınız için koşulların nasıl ekleneceği, düzenleneceği, listeleneceği veya silineceği açıklanmaktadır.
Ön koşullar
Aşağıdaki sürümleri kullanmanız gerekir:
2020-03-01-preview
veya üzeri2020-04-01-preview
veya daha sonra rol atamaları için özelliğini kullanmakdescription
istiyorsanız2022-04-01
ilk kararlı sürümdür
Rol atama koşullarını ekleme veya düzenleme önkoşulları hakkında daha fazla bilgi için bkz . Koşullar önkoşulları.
Koşul ekle
Rol atama koşulu eklemek için Rol Atamaları - REST API oluşturma'yı kullanın. Rol Atamaları - Oluşturma , koşullarla ilgili aşağıdaki parametreleri içerir.
Parametre | Türü | Veri Akışı Açıklaması |
---|---|---|
condition |
String | Kullanıcıya izin verilebilen koşul. |
conditionVersion |
String | Koşul söz diziminin sürümü. olmadan conditionVersion belirtilirsecondition , sürüm varsayılan 2.0 değerine ayarlanır. |
Aşağıdaki isteği ve gövdeyi kullanın:
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}"
}
}
Aşağıdaki örnekte, Depolama Blob Veri Okuyucusu rolünün bir koşulla nasıl atanacakları gösterilmektedir. Koşul, kapsayıcı adının 'blobs-example-container' değerine eşit olup olmadığını denetler.
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"
}
}
Aşağıda çıktının bir örneği gösterilmektedir:
{
"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}"
}
Koşulu düzenleme
Mevcut rol atama koşulunu düzenlemek için, rol atama koşulunu eklemek için kullandığınız Rol Atamaları - REST API'sini oluşturun . Aşağıda ve güncelleştirilen condition
description
örnek bir JSON gösterilmektedir. condition
Yalnızca , conditionVersion
ve description
özellikleri düzenlenebilir. Mevcut rol ataması ile eşleşecek diğer özellikleri belirtmeniz gerekir.
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"
}
}
Koşulu listeleme
Rol atama koşulunu listelemek için Rol Atamaları Get veya List REST API'sini kullanın. Daha fazla bilgi için bkz . REST API kullanarak Azure rol atamalarını listeleme.
Koşulu silme
Rol atama koşulunu silmek için rol atama koşulunu düzenleyin ve hem koşul hem de koşul sürümünü boş dize veya null olarak ayarlayın.
Alternatif olarak, rol atamasını ve koşulu silmek istiyorsanız Rol Atamaları - Silme API'sini kullanabilirsiniz. Daha fazla bilgi için, bkz. Azure rol atamalarını kaldırma.
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin