Share via


Lägga till eller redigera villkor för Azure-rolltilldelning med Hjälp av Azure CLI

Ett Villkor för Azure-rolltilldelning är ytterligare en kontroll som du kan lägga till i rolltilldelningen för att ge mer detaljerad åtkomstkontroll. Du kan till exempel lägga till ett villkor som kräver att ett objekt har en specifik tagg för att läsa objektet. Den här artikeln beskriver hur du lägger till, redigerar, listar eller tar bort villkor för dina rolltilldelningar med hjälp av Azure CLI.

Förutsättningar

Information om kraven för att lägga till eller redigera rolltilldelningsvillkor finns i Villkorskrav.

Lägg till ett villkor

Om du vill lägga till ett rolltilldelningsvillkor använder du az role assignment create. Kommandot az role assignment create innehåller följande parametrar relaterade till villkor.

Parameter Typ Description
condition String Villkor under vilket användaren kan beviljas behörighet.
condition-version String Version av villkorssyntaxen. Om --condition anges utan --condition-versionanges versionen till standardvärdet 2.0.

I följande exempel visas hur du tilldelar rollen Storage Blob Data Reader med ett villkor. Villkoret kontrollerar om containernamnet är lika med "blobs-example-container".

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"

Följande visar ett exempel på utdata:

{
    "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"
}

Redigera ett villkor

Om du vill redigera ett befintligt rolltilldelningsvillkor använder du az role assignment update och en JSON-fil som indata. Följande visar ett exempel på en JSON-fil där villkor och beskrivning uppdateras. conditionEndast egenskaperna , conditionVersionoch description kan redigeras. Du måste ange alla egenskaper för att uppdatera rolltilldelningsvillkoret.

{
    "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"
}

Använd az role assignment update för att uppdatera villkoret för rolltilldelningen.

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

Följande visar ett exempel på utdata:

{
    "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"
}

Lista ett villkor

Om du vill visa en lista över ett rolltilldelningsvillkor använder du az role assignment list. Mer information finns i Lista Azure-rolltilldelningar med Hjälp av Azure CLI.

Ta bort ett villkor

Om du vill ta bort ett rolltilldelningsvillkor redigerar du rolltilldelningsvillkoret och anger både condition egenskaperna och condition-version till antingen en tom sträng ("") eller null.

Om du vill ta bort både rolltilldelningen och villkoret kan du också använda kommandot az role assignment delete . Mer information finns i Ta bort Azure-rolltilldelningar.

Nästa steg