Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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-previewoder höher -
2020-04-01-previewoder später, wenn Sie diedescriptionEigenschaft für Rollenzuweisungen verwenden möchten -
2022-04-01ist 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.