Freigeben über


Hinzufügen oder Bearbeiten von Azure-Rollenzuweisungsbedingungen mithilfe der REST-API

Eine Azure-Rollenzuweisungsbedingung ist eine zusätzliche Überprüfung, die Sie optional zu Ihrer Rollenzuweisung hinzufügen können, um eine differenziertere Zugriffssteuerung bereitzustellen. So können Sie beispielsweise eine Bedingung hinzufügen, die vorschreibt, dass ein Objekt ein bestimmtes Etikett tragen muss, um es lesen zu können. In diesem Artikel wird beschrieben, wie Sie Bedingungen für Ihre Rollenzuweisungen mithilfe der REST-API hinzufügen, bearbeiten, auflisten oder löschen.

Voraussetzungen

Sie müssen die folgenden Versionen verwenden:

  • 2020-03-01-preview oder höher
  • 2020-04-01-preview oder später, wenn Sie die description Eigenschaft für Rollenzuweisungen verwenden möchten
  • 2022-04-01 ist die erste stabile Version

Weitere Informationen zu den Voraussetzungen zum Hinzufügen oder Bearbeiten von Rollenzuweisungsbedingungen finden Sie unter Bedingungen.

Bedingung hinzufügen

Um eine Rollenzuweisungsbedingung hinzuzufügen, verwenden Sie die Rollen Zuweisungen - Erstellen REST-API. Rollenzuweisungen – Erstellen enthält die folgenden Parameter im Zusammenhang mit Bedingungen.

Parameter Typ Description
condition String Bedingung, unter der dem Benutzer die Berechtigung erteilt werden kann.
conditionVersion String Version der Bedingungssyntax. Wenn condition ohne conditionVersion angegeben ist, wird die Version auf den Standardwert von 2.0 gesetzt.

Verwenden Sie die folgende Anforderung und den folgenden Text:

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}"
    }
}

Das folgende Beispiel zeigt, wie Die Rolle " Storage Blob Data Reader " mit einer Bedingung zugewiesen wird. Die Bedingung prüft, ob der Containername mit "blobs-example-container" übereinstimmt.

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"
    }
}

Im Folgenden sehen Sie ein Beispiel für die Ausgabe:

{
    "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}"
}

Bearbeiten einer Bedingung

Um eine vorhandene Rollenzuweisungsbedingung zu bearbeiten, verwenden Sie die gleiche Rollenzuweisungen - Erstellen REST-API, wie beim Hinzufügen der Rollenzuweisungsbedingung. Im folgenden Beispiel wird ein JSON-Beispiel gezeigt, in dem condition und description aktualisiert werden. Nur die condition, conditionVersion und description Eigenschaften können bearbeitet werden. Sie müssen die anderen Eigenschaften angeben, die mit der vorhandenen Rollenzuweisung übereinstimmen sollen.

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"
    }
}

Eine Bedingung auflisten

Um eine Rollenzuweisungsbedingung aufzulisten, verwenden Sie eine der Get- oder List-REST-APIs für Rollenzuweisungen. Weitere Informationen finden Sie unter Auflisten von Azure-Rollenzuweisungen mithilfe der REST-API.

Löschen einer Bedingung

Um eine Rollenzuweisungsbedingung zu löschen, bearbeiten Sie die Rollenzuweisungsbedingung, und legen Sie sowohl die Bedingungs- als auch die Bedingungsversion auf eine leere Zeichenfolge oder null fest.

Wenn Sie auch die Rollenzuweisung und die Bedingung löschen möchten, können Sie die Rollenzuweisungen – Lösch-API verwenden. Weitere Informationen finden Sie unter Entfernen von Azure-Rollenzuweisungen.

Nächste Schritte