Freigeben über


Hinzufügen oder Bearbeiten von Azure-Rollenzuweisungsbedingungen mithilfe der Azure CLI

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 festlegt, dass ein Objekt über ein bestimmtes Tag verfügen muss, damit das Objekt gelesen werden kann. In diesem Artikel wird beschrieben, wie Sie Bedingungen für Ihre Rollenzuweisungen mit Azure CLI hinzufügen, bearbeiten, auflisten oder löschen.

Voraussetzungen

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

Bedingung hinzufügen

Verwenden Sie "az role assignment create", um eine Rollenzuweisungsbedingung hinzuzufügen. Der Befehl "az role assignment create " enthält die folgenden Parameter im Zusammenhang mit Bedingungen.

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

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.

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"

Im Folgenden 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

Um eine vorhandene Rollenzuweisungsbedingung zu bearbeiten, verwenden Sie az-Rollenzuweisungsaktualisierung und eine JSON-Datei als Eingabe. Im folgenden Beispiel wird eine JSON-Beispieldatei gezeigt, in der Bedingung und Beschreibung aktualisiert werden. Nur die condition, conditionVersion und description Eigenschaften können bearbeitet werden. Sie müssen alle Eigenschaften angeben, um die Rollenzuweisungsbedingung 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"
}

Verwenden Sie az role assignment update, um die Bedingung für die Rollenzuweisung zu aktualisieren.

az role assignment update --role-assignment "./path/roleassignment.json"

Im Folgenden 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

Verwenden Sie die Az-Rollenzuweisungsliste, um eine Rollenzuweisungsbedingung auflisten zu können. Weitere Informationen finden Sie unter Auflisten von Azure-Rollenzuweisungen mit Azure CLI.

Löschen einer Bedingung

Um eine Rollenzuweisungsbedingung zu löschen, bearbeiten Sie die Rollenzuweisungsbedingung und setzen Sie sowohl die condition- als auch die condition-version-Eigenschaften entweder auf eine leere Zeichenfolge ("") oder auf null.

Wenn Sie auch die Rollenzuweisung und die Bedingung löschen möchten, können Sie den Befehl " az role assignment delete " verwenden. Weitere Informationen finden Sie unter Entfernen von Azure-Rollenzuweisungen.

Nächste Schritte