Share via


Voorwaarden voor Azure-roltoewijzing toevoegen of bewerken met behulp van Azure CLI

Een voorwaarde voor azure-roltoewijzing is een extra controle dat u desgewenst aan uw roltoewijzing kunt toevoegen om nauwkeuriger toegangsbeheer te bieden. U kunt bijvoorbeeld een voorwaarde toevoegen waarvoor een object een specifieke tag moet hebben om het object te lezen. In dit artikel wordt beschreven hoe u voorwaarden voor uw roltoewijzingen toevoegt, bewerkt, weergeeft of verwijdert met behulp van Azure CLI.

Vereisten

Zie Voorwaarden voor informatie over de vereisten voor het toevoegen of bewerken van voorwaarden voor roltoewijzing.

Een voorwaarde toevoegen

Als u een voorwaarde voor roltoewijzing wilt toevoegen, gebruikt u az role assignment create. De opdracht az role assignment create bevat de volgende parameters met betrekking tot voorwaarden.

Parameter Type Omschrijving
condition String Voorwaarde waaronder de gebruiker toestemming kan krijgen.
condition-version String Versie van de voorwaardesyntaxis. Als --condition deze niet is opgegeven --condition-version, wordt de versie ingesteld op de standaardwaarde 2.0.

In het volgende voorbeeld ziet u hoe u de rol Opslagblobgegevenslezer met een voorwaarde toewijst. De voorwaarde controleert of de containernaam gelijk is aan '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"

Hieronder ziet u een voorbeeld van de uitvoer:

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

Een voorwaarde bewerken

Als u een bestaande voorwaarde voor roltoewijzing wilt bewerken, gebruikt u az role assignment update en een JSON-bestand als invoer. Hieronder ziet u een voorbeeld van een JSON-bestand waarin de voorwaarde en beschrijving worden bijgewerkt. Alleen de condition, conditionVersionen description eigenschappen kunnen worden bewerkt. U moet alle eigenschappen opgeven om de voorwaarde voor roltoewijzing bij te werken.

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

Gebruik az role assignment update om de voorwaarde voor de roltoewijzing bij te werken.

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

Hieronder ziet u een voorbeeld van de uitvoer:

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

Een voorwaarde weergeven

Als u een voorwaarde voor roltoewijzing wilt weergeven, gebruikt u az role assignment list. Zie Azure-roltoewijzingen weergeven met behulp van Azure CLI voor meer informatie.

Een voorwaarde verwijderen

Als u een voorwaarde voor roltoewijzing wilt verwijderen, bewerkt u de voorwaarde voor roltoewijzing en stelt u zowel de als de condition eigenschappen in op een lege tekenreeks ("") of null.condition-version

Als u zowel de roltoewijzing als de voorwaarde wilt verwijderen, kunt u ook de opdracht az role assignment delete gebruiken. Zie Azure-roltoewijzingen verwijderen voor meer informatie.

Volgende stappen