Přidání nebo úprava podmínek přiřazení rolí Azure pomocí Azure CLI

Podmínka přiřazení role Azure je další kontrola, kterou můžete volitelně přidat do přiřazení role, abyste zajistili podrobnější řízení přístupu. Můžete například přidat podmínku, která vyžaduje, aby objekt měl ke čtení objektu určitou značku. Tento článek popisuje, jak přidat, upravit, vypsat nebo odstranit podmínky pro přiřazení rolí pomocí Azure CLI.

Předpoklady

Informace o požadavcích pro přidání nebo úpravu podmínek přiřazení role naleznete v tématu Požadavky na podmínky.

Přidat podmínku

Pokud chcete přidat podmínku přiřazení role, použijte příkaz az role assignment create. Příkaz az role assignment create obsahuje následující parametry související s podmínkami.

Parametr Typ Description
condition Řetězec Podmínka, pod kterou může uživatel udělit oprávnění.
condition-version Řetězec Verze syntaxe podmínky Pokud --condition je zadána bez --condition-version, verze je nastavena na výchozí hodnotu 2.0.

Následující příklad ukazuje, jak přiřadit roli Čtenář dat objektu blob služby Storage s podmínkou. Podmínka zkontroluje, jestli se název kontejneru rovná objektu 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"

Následuje příklad výstupu:

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

Úprava podmínky

Pokud chcete upravit existující podmínku přiřazení role, použijte příkaz az role assignment update a soubor JSON jako vstup. Následující příklad ukazuje soubor JSON, kde se aktualizují podmínky a popis. conditionLze upravit pouze objekty , conditionVersiona description vlastnosti. Chcete-li aktualizovat podmínku přiřazení role, je nutné zadat všechny vlastnosti.

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

Pomocí příkazu az role assignment update aktualizujte podmínku přiřazení role.

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

Následuje příklad výstupu:

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

Výpis podmínky

Pokud chcete vypsat podmínku přiřazení role, použijte příkaz az role assignment list. Další informace najdete v tématu Výpis přiřazení rolí Azure pomocí Azure CLI.

Odstranění podmínky

Chcete-li odstranit podmínku přiřazení role, upravte podmínku přiřazení role a nastavte obě condition vlastnosti na prázdný řetězec ("") nebo nullcondition-version .

Případně pokud chcete odstranit přiřazení role i podmínku, můžete použít příkaz az role assignment delete . Další informace najdete v tématu věnovaném odebrání přiřazení rolí v Azure.

Další kroky