Aracılığıyla paylaş


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 üzeri
  • 2020-04-01-preview veya daha sonra rol atamaları için özelliğini kullanmak description istiyorsanız
  • 2022-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 conditionVersionbelirtilirsecondition, 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. conditionYalnızca , conditionVersionve 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