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.

Nächste Schritte