Řešení potíží s podmínkami přiřazení rolí Azure

Obecné problémy

Příznak – Podmínka se nevynucuje

Příčina 1

Objekty zabezpečení mají jedno nebo více přiřazení rolí ve stejném nebo vyšším oboru.

Řešení 1

Ujistěte se, že objekty zabezpečení nemají více přiřazení rolí (s podmínkami nebo bez podmínek), které udělují přístup ke stejné akci dat, což vede k nevynucování podmínek. Informace o logikě vyhodnocení najdete v tématu Jak Azure RBAC určuje, jestli má uživatel přístup k prostředku.

Příčina 2

Přiřazení role má několik akcí, které udělí oprávnění a vaše podmínka nebude cílit na všechny akce. Objekt blob můžete vytvořit například v případě, že máte akce nebo /blobs/write/blobs/add/action akce dat. Pokud má přiřazení role akce dat i vy cílíte pouze na jeden z nich v podmínce, přiřazení role udělí oprávnění k vytváření objektů blob a vynechá podmínku.

Řešení 2

Pokud má přiřazení role více akcí, které udělí oprávnění, ujistěte se, že cílíte na všechny relevantní akce.

Příčina 3

Když k přiřazení role přidáte podmínku, může trvat až 5 minut, než se podmínka vynutí. Když přidáte podmínku, poskytovatelé prostředků (například Microsoft Storage) obdrží oznámení o aktualizaci. Poskytovatelé prostředků okamžitě aktualizují místní mezipaměti, aby měli jistotu, že mají nejnovější přiřazení rolí. Tento proces se dokončí za 1 nebo 2 minuty, ale může to trvat až 5 minut.

Řešení 3

Počkejte 5 minut a otestujte podmínku znovu.

Příznak – Podmínka není platná chyba při přidávání podmínky

Když se pokusíte přidat přiřazení role s podmínkou, zobrazí se podobná chyba:

The given role assignment condition is invalid.

Příčina 1

Vlastnost conditionVersion je nastavena na hodnotu 1.0.

Řešení 1

Nastavte conditionVersion vlastnost na 2.0.

Příčina 2

Vaše podmínka není správně naformátovaná.

Řešení 2

Opravte všechny problémy s formátem podmínky nebo syntaxí . Případně můžete podmínku přidat pomocí editoru vizuálů na webu Azure Portal.

Problémy v editoru vizuálů

Příznak – Objekt zabezpečení se nezobrazuje ve zdroji atributů

Když se pokusíte přidat přiřazení role s podmínkou, objekt zabezpečení se nezobrazí v seznamu zdroj atributu.

Screenshot showing Principal in Attribute source list when adding a condition.

Místo toho se zobrazí zpráva:

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

Příčina

Nesplňujete požadavky. Pokud chcete použít hlavní atributy, musíte mít následující:

  • Oprávnění Microsoft Entra pro přihlášeného uživatele ke čtení aspoň jedné sady atributů
  • Vlastní atributy zabezpečení definované v Microsoft Entra ID

Řešení

  1. Otevřete vlastní atributy zabezpečení Microsoft Entra ID>.

    Pokud se zobrazí stránka Začínáme , nemáte oprávnění ke čtení alespoň jedné sady atributů nebo vlastních atributů zabezpečení, které ještě nebyly definovány.

    Screenshot that shows Custom security attributes Get started page.

  2. Pokud byly definovány vlastní atributy zabezpečení, přiřaďte jednu z následujících rolí v oboru tenanta nebo oboru sady atributů. Další informace naleznete v tématu Správa přístupu k vlastním atributům zabezpečení v Microsoft Entra ID.

    Důležité

    Globální Správa istrator a další role správce ve výchozím nastavení nemají oprávnění ke čtení, definování nebo přiřazování vlastních atributů zabezpečení.

  3. Pokud ještě nebyly definovány vlastní atributy zabezpečení, přiřaďte definici atributu Správa istrator role v oboru tenanta a přidejte vlastní atributy zabezpečení. Další informace naleznete v tématu Přidání nebo deaktivace vlastních atributů zabezpečení v Microsoft Entra ID.

    Po dokončení byste měli být schopni přečíst aspoň jednu sadu atributů.

    Screenshot that shows the attribute sets the user can read.

    Objekt zabezpečení by se teď měl zobrazit v seznamu zdrojů atributů, když přidáte přiřazení role s podmínkou.

Příznak – Objekt zabezpečení se nezobrazuje ve zdroji atributů při použití PIM

Když se pokusíte přidat přiřazení role s podmínkou pomocí služby Microsoft Entra Privileged Identity Management (PIM), objekt zabezpečení se nezobrazí v seznamu zdrojů atributů.

Screenshot showing Principal in Attribute source list when adding a condition using Privileged Identity Management.

Příčina

PIM v současné době nepodporuje použití hlavního atributu v podmínce přiřazení role.

Chybové zprávy v editoru vizuálů

Příznak – nerozpoznaný stav

Po použití editoru kódu přepnete do editoru vizuálů a zobrazí se zpráva podobná této:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

Příčina

Aktualizace byly provedeny v podmínce, že editor vizuálů nemůže parsovat.

Řešení

Opravte všechny problémy s formátem podmínky nebo syntaxí . Případně můžete podmínku odstranit a zkusit to znovu.

Příznak – Atribut se nevztahuje na chybu pro dříve uloženou podmínku

Když otevřete dříve uloženou podmínku v editoru vizuálů, zobrazí se následující zpráva:

Attribute does not apply for the selected actions. Select a different set of actions.

Příčina

V květnu 2022 se akce Čtení objektu blob změnila z následujícího formátu:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

Blob.List Vyloučení podoperace:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

Pokud jste vytvořili podmínku s akcí Číst objekt blob před květnem 2022, může se tato chybová zpráva zobrazit v editoru vizuálů.

Řešení

Otevřete podokno akce Vybrat a znovu vyberte akci Číst objekt blob.

Příznak – Atribut nepoužívá chybu

Když vyberete jednu nebo více akcí v editoru vizuálů s existujícím výrazem, zobrazí se následující zpráva a dříve vybraný atribut se odebere:

Attribute does not apply for the selected actions. Select a different set of actions.

Příčina

Dříve vybraný atribut již neplatí pro aktuálně vybrané akce.

Řešení 1

V části Přidat akci vyberte akci, která se vztahuje na vybraný atribut. Seznam akcí úložiště, které každý atribut úložiště podporuje, najdete v tématu Akce a atributy podmínek přiřazení rolí Azure pro Azure Blob Storage a Akce a atributy pro podmínky přiřazení rolí Azure pro fronty Azure.

Řešení 2

V části Výraz sestavení vyberte atribut, který se vztahuje na aktuálně vybrané akce. Seznam atributů úložiště, které každá akce úložiště podporuje, najdete v tématu Akce a atributy pro podmínky přiřazení role Azure pro Azure Blob Storage a Akce a atributy pro podmínky přiřazení role Azure pro fronty Azure.

Příznak – atribut se v tomto upozornění kontextu nepoužije.

Když provedete úpravy v editoru kódu a pak přepnete do editoru vizuálů, zobrazí se následující zpráva a dříve vybraný atribut se odebere:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

Příčina

Zadaný atribut není v aktuálním oboru dostupný, například použití Version ID v účtu úložiště s povoleným hierarchickým oborem názvů.

Řešení

Pokud chcete použít aktuálně zadaný atribut, vytvořte podmínku přiřazení role v jiném oboru, například v oboru skupiny prostředků. Nebo výraz odeberte a znovu vytvořte pomocí aktuálně vybraných akcí.

Příznak – Chyba nerozpoznaný atribut

Když provedete úpravy v editoru kódu a pak přepnete do editoru vizuálů, zobrazí se následující zpráva a dříve vybraný atribut se odebere:

Attribute is not recognized. Select a valid attribute or remove the expression.

Příčina

Zadaný atribut není rozpoznán, pravděpodobně kvůli překlepu.

Řešení

V editoru kódu opravte překlep. Nebo odeberte existující výraz a pomocí editoru vizuálů vyberte atribut.

Příznak – Hodnota atributu je neplatná chyba

Když provedete úpravy v editoru kódu a pak přepnete do editoru vizuálů, zobrazí se následující zpráva a dříve vybraný atribut se odebere:

Attribute value is invalid. Select another attribute or value.

Příčina

Pravá strana výrazu obsahuje atribut nebo hodnotu, která není platná.

Řešení

Pomocí editoru vizuálů vyberte atribut nebo zadejte hodnotu.

Příznak – Žádná vybraná chyba

Když odeberete všechny akce v editoru vizuálů, zobrazí se následující zpráva:

No actions selected. Select one or more actions to edit expressions.

Příčina

Existuje existující výraz, ale jako cíl nebyly vybrány žádné akce.

Řešení

V části Přidat akci přidejte jednu nebo více akcí, na které má výraz cílit.

Příznak – Žádná dostupná chyba

Když se pokusíte přidat výraz, zobrazí se následující zpráva:

No options available

Příčina

Vybrali jste, že chcete cílit na více akcí a neexistují žádné atributy, které se vztahují na všechny aktuálně vybrané akce.

Řešení

V části Přidat akci vyberte méně akcí, na které chcete cílit. Pokud chcete cílit na akce, které jste odebrali, přidejte více podmínek.

Příznak – ID definic rolí se nenašla

Když se pokusíte přidat výraz, zobrazí se následující zpráva:

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Příčina

Některá ID definic rolí, která jste se pokusili přidat pro atribut ID definice role, nebyla nalezena nebo nemá správný formát GUID: 00000000-0000-0000-0000-000000000000

Řešení

Pomocí editoru podmínek vyberte roli. Pokud jste nedávno přidali vlastní roli, aktualizujte stránku nebo se odhlaste a znovu se přihlaste.

Příznak – ID objektu zabezpečení se nenašla

Když se pokusíte přidat výraz, zobrazí se následující zpráva:

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Příčina

Některá ID objektu zabezpečení, která jste se pokusili přidat pro atribut ID objektu zabezpečení, nebyla nalezena nebo nemá správný formát GUID: 00000000-0000-0000-0000-000000000000

Řešení

Pomocí editoru podmínek vyberte objekt zabezpečení. Pokud jste objekt zabezpečení nedávno přidali, aktualizujte stránku nebo se odhlaste a znovu se přihlaste.

Chybové zprávy v Azure PowerShellu

Příznak – Atribut prostředku není platná chyba

Když se pokusíte přidat přiřazení role s podmínkou pomocí Azure PowerShellu, zobrazí se chyba podobná této:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Příčina

Pokud podmínka obsahuje znak dolaru ($), musíte ho předponovat zpětným znakem (').

Řešení

Před znaménko dolaru přidejte zpětné znaménko ('). Následující příklad ukazuje. Další informace o pravidlech uvozovek v PowerShellu najdete v tématu O pravidlech uvozovek.

$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>] StringEquals 'Cascade'))"

Příznak – chyba při kopírování a vkládání podmínky

Příčina

Pokud používáte PowerShell a zkopírujete podmínku z dokumentu, může obsahovat speciální znaky, které způsobují následující chybu. Některé editory (například Microsoft Word) při formátování textu, který se nezobrazuje, přidávají řídicí znaky.

The given role assignment condition is invalid.

Řešení

Pokud jste zkopírovali podmínku z editoru formátovaného textu a jste si jistí, že je podmínka správná, odstraňte všechny mezery a vrátíte je a pak přidejte příslušné mezery. Případně můžete použít editor prostého textu nebo editor kódu, například Visual Studio Code.

Chybové zprávy v Azure CLI

Příznak – Atribut prostředku není platná chyba

Když se pokusíte přidat přiřazení role s podmínkou pomocí Azure CLI, zobrazí se podobná chyba:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Příčina

Pokud podmínka obsahuje znak dolaru ($), musíte ho předponovat zpětným lomítkem (\).

Řešení

Před každé znaménko dolaru přidejte zpětné lomítko (\). Následující příklad ukazuje. Další informace opravidlech

condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<\$key_case_sensitive\$>] StringEquals 'Cascade'))"

Příznak – Chyba nerozpoznaných argumentů

Když se pokusíte přidat přiřazení role s podmínkou pomocí Azure CLI, zobrazí se podobná chyba:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

Příčina

Pravděpodobně používáte starší verzi Azure CLI, která nepodporuje parametry podmínky přiřazení role.

Řešení

Aktualizujte na nejnovější verzi Azure CLI (2.18 nebo novější). Další informace najdete v tématu Instalace Azure CLI.

Příznak – chyba při přiřazování řetězce podmínky proměnné v Bash

Když se pokusíte přiřadit řetězec podmínky proměnné v Bash, zobrazí se bash: !: event not found zpráva.

Příčina

Pokud je v Bash povolené rozšíření historie, může se zpráva bash: !: event not found zobrazit kvůli vykřičníku (!).

Řešení

Zakažte rozšíření historie pomocí příkazu set +H. K opětovnému povolení rozšíření historie použijte set -H.

Další kroky