Hinzufügen und Bearbeiten der Bedingungen für die Azure-Rollenzuweisung mithilfe der REST-API
Eine Azure-Rollenzuweisungsbedingung ist eine zusätzliche Überprüfung, die Sie Ihrer Rollenzuweisung optional hinzufügen können, um die Zugriffssteuerung präziser zu gestalten. So können Sie beispielsweise eine Bedingung hinzufügen, die festgelegt, dass ein Objekt über ein bestimmtes Tag verfügen muss, damit das Objekt gelesen werden kann. In diesem Artikel wird beschrieben, wie Sie Bedingungen mithilfe der REST-API für Ihre Rollenzuweisungen hinzufügen, bearbeiten, auflisten und löschen können.
Voraussetzungen
Sie müssen die folgenden Versionen verwenden:
2020-03-01-preview
oder höher2020-04-01-preview
oder höher, wenn Sie die Eigenschaftdescription
für Rollenzuweisungen verwenden möchten2022-04-01
ist die erste stabile Version.
Weitere Informationen zu den Voraussetzungen für das Hinzufügen oder Bearbeiten von Rollenzuweisungsbedingungen finden Sie unter Voraussetzungen für Bedingungen.
Eine Bedingung hinzufügen
Verwenden Sie den Vorgang Role Assignments – Create (Rollenzuweisungen: Erstellen) REST-API, um eine Rollenzuweisungsbedingung hinzuzufügen. Der Vorgang Role Assignments – Create umfasst die folgenden Parameter bezüglich Bedingungen.
Parameter | Typ | Beschreibung |
---|---|---|
condition |
String | Hierbei handelt es sich um die Bedingung, unter der dem Benutzer die Berechtigung erteilt werden kann. |
conditionVersion |
String | Hierbei handelt es sich um die Version der Bedingungssyntax. Wenn condition ohne conditionVersion angegeben wird, wird die Standardversion 2.0 festgelegt. |
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}"
}
}
Im folgenden Beispiel wird gezeigt, wie Sie die Rolle Storage-Blobdatenleser mit einer Bedingung zuweisen. Die Bedingung überprüft, ob der Containername „blobs-example-container“ entspricht.
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"
}
}
Nachfolgend 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
Zum Bearbeiten einer vorhandenen Rollenzuweisungsbedingung verwenden Sie denselben REST-API-Vorgang (Role Assignments – Create), den Sie zum Hinzufügen der Rollenzuweisungsbedingung verwendet haben. Im folgenden JSON-Beispielcode wurden condition
und description
geändert. Nur die Eigenschaften condition
, conditionVersion
und description
können bearbeitet werden. Sie müssen die anderen Eigenschaften entsprechend der vorhandenen Rollenzuweisung angeben.
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"
}
}
Auflisten einer Bedingung
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
Zum Löschen einer Rollenzuweisungsbedingung bearbeiten Sie die Rollenzuweisungsbedingung und legen sowohl für die Bedingung als auch für die Bedingungsversion entweder eine leere Zeichenfolge oder den Wert NULL fest.
Alternativ können Sie den REST-API-Vorgang Role Assignments – Delete (Rollenzuweisungen: Löschen) verwenden, wenn Sie sowohl die Rollenzuweisung als auch die Bedingung löschen möchten. Weitere Informationen finden Sie unter Entfernen von Azure-Rollenzuweisungen.