Hinzufügen und Bearbeiten der Bedingungen für die Azure-Rollenzuweisung mithilfe der Azure-Befehlszeilenschnittstelle
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 Azure CLI für Ihre Rollenzuweisungen hinzufügen, bearbeiten, auflisten und löschen können.
Voraussetzungen
Informationen zu den Voraussetzungen für das Hinzufügen oder Bearbeiten von Rollenzuweisungsbedingungen finden Sie unter Voraussetzungen für Bedingungen.
Eine Bedingung hinzufügen
Sie verwenden az role assignment create, um eine Rollenzuweisungsbedingung hinzuzufügen. Der Befehl az role assignment 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. |
condition-version |
String | Hierbei handelt es sich um die Version der Bedingungssyntax. Wenn --condition ohne --condition-version angegeben wird, wird die Standardversion 2.0 festgelegt. |
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.
az role assignment create --role "Storage Blob Data Reader" --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName --assignee "user1@contoso.com" \
--description "Read access if container name equals blobs-example-container" \
--condition "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))" \
--condition-version "2.0"
Nachfolgend sehen Sie ein Beispiel für die Ausgabe:
{
"canDelegate": null,
"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",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Bearbeiten einer Bedingung
Verwenden Sie az role assignment update und eine JSON-Datei als Eingabe, um eine vorhandene Rollenzuweisungsbedingung zu bearbeiten. Das folgende Beispiel zeigt eine JSON-Beispieldatei, in der Bedingung und Beschreibung aktualisiert werden. Nur die Eigenschaften condition
, conditionVersion
und description
können bearbeitet werden. Sie müssen alle Eigenschaften angeben, um die Bedingung für die Rollenzuweisung zu aktualisieren.
{
"canDelegate": null,
"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",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Aktualisieren Sie mithilfe von az role assignment update die Bedingung für die Rollenzuweisung.
az role assignment update --role-assignment "./path/roleassignment.json"
Nachfolgend sehen Sie ein Beispiel für die Ausgabe:
{
"canDelegate": null,
"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",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"name": "{roleAssignmentId}",
"principalId": "{userObjectId}",
"principalType": "User",
"resourceGroup": "{resourceGroup}",
"roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
"type": "Microsoft.Authorization/roleAssignments"
}
Auflisten einer Bedingung
Sie verwenden az role assignment list, um eine Rollenzuweisungsbedingung aufzulisten. Weitere Informationen finden Sie unter Auflisten von Azure-Rollenzuweisungen mithilfe der Azure-Befehlszeilenschnittstelle.
Löschen einer Bedingung
Zum Löschen einer Rollenzuweisungsbedingung bearbeiten Sie die Rollenzuweisungsbedingung und legen sowohl die Eigenschaft condition
als auch condition-version
entweder auf eine leere Zeichenfolge (""
) oder null
fest.
Alternativ können Sie den Befehl az role assignment delete verwenden, wenn Sie sowohl die Rollenzuweisung als auch die Bedingung löschen möchten. Weitere Informationen finden Sie unter Entfernen von Azure-Rollenzuweisungen.