Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Podmínka je další kontrola, kterou můžete volitelně přidat k přiřazení role, abyste získali 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 formát a syntaxi podmínek přiřazení rolí.
Formát podmínky
Pokud chcete lépe porozumět podmínkám přiřazení rolí, pomůže vám to podívat se na formát.
Jednoduchá podmínka
Nejzásadnější podmínka se skládá z cílené akce a výrazu. Akce je operace, kterou může uživatel provést u typu prostředku. Výraz je výrok, který se vyhodnotí jako pravda nebo nepravda, což určuje, jestli je akce povolena.
Následující příklad ukazuje formát jednoduché podmínky.
(
(
!(ActionMatches{'<action>'})
)
OR
(
<attribute> <operator> <value>
)
)
Následující podmínka má akci „Přečíst blob“. Tento výraz kontroluje, zda je název kontejneru blobs-example-container.
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name]
StringEquals 'blobs-example-container'
)
)
Jak se podmínka vyhodnocuje
Pokud se uživatel pokusí provést akci v přiřazení role, která není <action>, !(ActionMatches) vyhodnotí se jako true a celková podmínka se vyhodnotí jako true, aby akce mohla být provedena.
Pokud se uživatel pokusí provést <action> při přiřazení role, !(ActionMatches) se hodnotí jako nepravda, takže se výraz vyhodnotí. Pokud se výraz vyhodnotí jako pravdivý, vyhodnotí se celková podmínka jako true, aby bylo možné <action> provést. Jinak není dovoleno provést <action>.
Následující pseudokód ukazuje jiný způsob, jak tuto podmínku přečíst.
if a user tries to perform an action in the role assignment that does not match <action>
{
Allow action to be performed
}
else
{
if <attribute> <operator> <value> is true
{
Allow <action> to be performed
}
else
{
Do not allow <action> to be performed
}
}
Podoperace
Některé akce mají podoperace. Například akce Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read dat obsahuje podoperaci "Seznam objektů blob". Podmínky s podoperacemi mají následující formát.
(
(
!(ActionMatches{'<action>'}
AND
SubOperationMatches{'<subOperation>'})
)
OR
(
<attribute> <operator> <value>
)
)
Více akcí
Podmínka může obsahovat více akcí, které chcete povolit, pokud je podmínka pravdivá. Pokud pro jednu podmínku vyberete více akcí, může být pro vaši podmínku méně atributů, protože atributy musí být dostupné napříč vybranými akcemi.
(
(
!(ActionMatches{'<action>'})
AND
!(ActionMatches{'<action>'})
)
OR
(
<attribute> <operator> <value>
)
)
Více výrazů
Podmínka může obsahovat více výrazů. V závislosti na operátoru lze atributy zkontrolovat na více hodnotách.
(
(
!(ActionMatches{'<action>'})
)
OR
(
<attribute> <operator> <value>
AND | OR
<attribute> <operator> {<value>, <value>, <value>}
AND | OR
<attribute> <operator> <value>
)
)
Více podmínek
Můžete také zkombinovat podmínky pro cílení na více akcí.
(
(
!(ActionMatches{'<action>'})
)
OR
(
<attribute> <operator> <value>
AND | OR
<attribute> <operator> {<value>, <value>, <value>}
AND | OR
<attribute> <operator> <value>
)
)
AND
(
(
!(ActionMatches{'<action>'})
)
OR
(
<attribute> <operator> <value>
AND | OR
<attribute> <operator> <value>
)
)
Syntaxe podmínky
Následující příklad ukazuje syntaxi podmínky přiřazení role.
(
(
!(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
AND
!(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
AND
...
)
OR
(
<attribute> <operator> {<value, <value>, ...}
AND | OR
<attribute> <operator> {<value>, <value>, ...}
AND | OR
...
)
)
AND
(
(
!(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
AND
!(ActionMatches{'<action>'} AND SubOperationMatches{'<subOperation>'})
AND
...
)
OR
(
<attribute> <operator> {<value, <value>, ...}
AND | OR
<attribute> <operator> {<value>, <value>, ...}
AND | OR
...
)
)
AND
...
Akce
V současné době je možné přidat podmínky do předdefinovaných nebo vlastních přiřazení rolí, které obsahují akce úložiště blobů nebo frontu. Patří mezi ně následující předdefinované role:
- Přispěvatel dat služby Blob Storage
- Vlastník dat Storage Blob
- Čtenář dat v objektech blob služby Storage
- Přispěvatel dat fronty služby Storage
- Zpracovatel zpráv fronty úložiště
- Odesílatel datové zprávy fronty úložiště
- Čtenář dat fronty úložiště
Seznam akcí úložiště, které můžete použít v podmínkách, najdete tady:
- Akce a atributy pro podmínky přiřazení role Azure pro Azure Blob Storage
- Akce a atributy pro podmínky přiřazení role Azure pro Azure Queue Storage
Atributy
V závislosti na vybraných akcích se atribut může nacházet na různých místech. Pokud pro jednu podmínku vyberete více akcí, může být pro vaši podmínku méně atributů, protože atributy musí být dostupné ve všech vybraných akcích. Pokud chcete zadat atribut, musíte zdroj zahrnout jako předponu.
| Zdroj atributů | Popis | Code |
|---|---|---|
| Prostředí | Atribut je přidružený k prostředí požadavku, například k síťovému původu požadavku nebo k aktuálnímu datu a času. |
@Environment |
| Hlavní | Atribut je vlastní atribut zabezpečení přiřazený k objektu zabezpečení, jako je uživatel nebo podniková aplikace (instanční objekt). | @Principal |
| Požádat | Atribut je součástí požadavku akce, například nastavení tagu indexu blobu. | @Request |
| Prostředek | Atribut je vlastnost prostředku, například název kontejneru. | @Resource |
Úplný seznam atributů úložiště, které můžete použít v podmínkách, najdete tady:
Atributy prostředí
Atributy prostředí jsou přidružené k okolnostem, za kterých se žádost o přístup provede, například datum a čas dne nebo síťové prostředí. Síťové prostředí může zahrnovat přístup přes konkrétní privátní koncový bod, podsíť virtuální sítě nebo jakékoli privátní propojení.
Následující tabulka uvádí podporované atributy prostředí pro podmínky.
| Zobrazované jméno | Popis | Atribut | Typ |
|---|---|---|---|
| Je soukromý odkaz1 | Tento atribut použijte v podmínkách, pokud chcete vyžadovat přístup k libovolnému privátnímu propojení. | isPrivateLink |
Boolean |
| Privátní koncový bod1 2 | Tento atribut použijte v podmínkách k omezení přístupu přes konkrétní privátní koncový bod. | Microsoft.Network/privateEndpoints |
Řetězec |
| Podsíť1,3 | Tento atribut použijte v podmínkách k omezení přístupu z konkrétní podsítě. | Microsoft.Network/virtualNetworks/subnets |
Řetězec |
| UTC nyní | Tento atribut použijte v podmínkách k omezení přístupu k objektům během určitých časových období. | UtcNow |
DateTime |
1 Pro operace kopírování platí Is private linkPrivate endpoint, a Subnet atributy pouze pro cíl, takový účet úložiště, nikoli zdroj. Další informace o těchto operacích kopírování získáte tak, že vyberete jednotlivé atributy v tabulce, čímž zobrazíte další podrobnosti.
2 Atribut můžete použít Private endpoint pouze v případě, že máte v předplatném nakonfigurovaný aspoň jeden privátní koncový bod.
3 Atribut můžete použít Subnet pouze v případě, že aktuálně máte aspoň jednu podsíť virtuální sítě pomocí koncových bodů služby nakonfigurovaných ve vašem předplatném.
Hlavní atributy
Hlavní atributy jsou vlastní atributy zabezpečení přiřazené objektu zabezpečení požadujícího přístup k prostředku. Objekt zabezpečení může být uživatel nebo podniková aplikace (instanční objekt).
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, například role Správce přiřazení atributů
- Vlastní atributy zabezpečení definované v Microsoft Entra ID
Další informace o vlastních bezpečnostních atribučních parametrech naleznete v:
- Přidání nebo deaktivace vlastních atributů zabezpečení v Microsoft Entra ID
- Povolení přístupu pro čtení k objektům blob na základě značek a vlastních atributů zabezpečení
- Hlavní objekt se nevyskytuje ve zdroji atributů.
Atributy požadavku
Atributy požadavku jsou přidružené k kritériím zadaným v žádosti o přístup, jako je například zadaná předpona objektů blob, které mají být uvedeny.
Atributy prostředků
Atributy prostředků jsou přidružené k objektu, ke kterému se požaduje přístup, například název účtu úložiště, název kontejneru nebo jestli je pro účet úložiště povolený hierarchický obor názvů.
Operátory funkcí
V této části jsou uvedeny operátory funkcí, které jsou k dispozici pro vytvoření podmínek.
AkceMatches
| Vlastnost | Hodnota |
|---|---|
| Operátor | ActionMatches |
| Popis | Zkontroluje, jestli aktuální akce odpovídá zadanému vzoru akce. |
| Příklady | ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}Pokud se akce rovná "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read", pak je pravda. ActionMatches{'Microsoft.Authorization/roleAssignments/*'}Pokud se kontrolovaná akce rovná „Microsoft.Authorization/roleAssignments/write“, pak to platí. ActionMatches{'Microsoft.Authorization/roleDefinitions/*'}Pokud se akce kontrolovaná rovná hodnotě Microsoft.Authorization/roleAssignments/write, pak nepravda. |
SubOperationMatches
| Vlastnost | Hodnota |
|---|---|
| Operátor | SubOperationMatches |
| Popis | Zkontroluje, jestli aktuální podoperace odpovídá zadanému vzoru podoperace. |
| Příklady | SubOperationMatches{'Blob.List'} |
Existuje
| Vlastnost | Hodnota |
|---|---|
| Operátor | Exists |
| Popis | Zkontroluje, jestli zadaný atribut existuje. |
| Příklady | Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:snapshot] |
| Podpora atributů1 |
Název oboru šifrování Snímek ID verze |
1 Operátor Exists je podporován pouze pro tyto atributy ve vizuálním tvůrci podmínek ABAC v Azure portálu. Operátor Exists můžete přidat k libovolnému atributu pomocí jiných nástrojů, jako je PowerShell, Azure CLI, REST API a editor kódu podmínek v Azure portálu.
Logické operátory
Tato část obsahuje seznam logických operátorů, které jsou k dispozici pro vytváření podmínek.
And
| Vlastnost | Hodnota |
|---|---|
| Operátory | AND&& |
| Popis | Operátor And. |
| Příklady | !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'}) |
Nebo
| Vlastnost | Hodnota |
|---|---|
| Operátory | OR|| |
| Popis | Nebo operátor. |
| Příklady | @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId] DateTimeEquals '2022-06-01T00:00:00.0Z' OR NOT Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId |
Ne
| Vlastnost | Hodnota |
|---|---|
| Operátory | NOT! |
| Popis | Operátor negace nebo negace |
| Příklady | NOT Exists @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId] |
Booleovské porovnávací operátory
Tato část obsahuje seznam logických relačních operátorů, které jsou k dispozici pro vytváření podmínek.
| Vlastnost | Hodnota |
|---|---|
| Operátory | BoolEqualsBoolNotEquals |
| Popis | Logické porovnání. |
| Příklady | @Resource[Microsoft.Storage/storageAccounts:isHnsEnabled] BoolEquals true |
Operátory porovnání řetězců
V této části jsou uvedeny operátory porovnání řetězců, které jsou k dispozici pro vytváření podmínek.
StringEquals
| Vlastnost | Hodnota |
|---|---|
| Operátory | StringEqualsStringEqualsIgnoreCase |
| Popis | Rozlišovat malá a velká písmena (nebo nerozlišovat) při porovnávání. Hodnoty musí přesně odpovídat řetězci. |
| Příklady | @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEquals 'Cascade' |
StringNotEquals
| Vlastnost | Hodnota |
|---|---|
| Operátory | StringNotEqualsStringNotEqualsIgnoreCase |
| Popis | Negace operátoru StringEquals (nebo StringEqualsIgnoreCase) |
ŘetězecZačínáNa
| Vlastnost | Hodnota |
|---|---|
| Operátory | StringStartsWithStringStartsWithIgnoreCase |
| Popis | Rozlišovat malá a velká písmena (nebo nerozlišovat) při porovnávání. Hodnoty začínají řetězcem znaků. |
ŘetězecNezačínáNa
| Vlastnost | Hodnota |
|---|---|
| Operátory | StringNotStartsWithStringNotStartsWithIgnoreCase |
| Popis | Negace operátoru StringStartsWith (nebo StringStartsWithIgnoreCase) |
StringLike
| Vlastnost | Hodnota |
|---|---|
| Operátory | StringLikeStringLikeIgnoreCase |
| Popis | Rozlišovat malá a velká písmena (nebo nerozlišovat) při porovnávání. Hodnoty mohou zahrnovat zástupný znak pro shodu s více znaky (*) nebo zástupný znak pro shodu s jedním znakem (?) kdekoli v řetězci. V případě potřeby lze tyto znaky escapovat pomocí zpětného lomítka \* a \?. |
| Příklady | @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:path] StringLike 'readonly/*'Resource[name1] StringLike 'a*c?'Pokud se zdroj[name1] rovná "abcd", pak je to pravda Resource[name1] StringLike 'A*C?'Pokud se Resource[name1] rovná "abcd", pak false Resource[name1] StringLike 'a*c'Pokud se Resource[name1] rovná "abcd", pak false |
StringNotLike
| Vlastnost | Hodnota |
|---|---|
| Operátory | StringNotLikeStringNotLikeIgnoreCase |
| Popis | Negace operátoru StringLike (nebo StringLikeIgnoreCase) |
Číselné relační operátory
Tato část obsahuje seznam číselných relačních operátorů, které jsou k dispozici pro vytváření podmínek.
| Vlastnost | Hodnota |
|---|---|
| Operátory | NumericEqualsNumericNotEqualsNumericGreaterThanNumericGreaterThanEqualsNumericLessThanNumericLessThanEquals |
| Popis | Párování čísel Podporují se pouze celá čísla. |
Operátory porovnání data a času
V této části jsou uvedeny operátory porovnání data a času, které jsou k dispozici pro vytváření podmínek.
| Vlastnost | Hodnota |
|---|---|
| Operátory | DateTimeEqualsDateTimeNotEqualsDateTimeGreaterThanDateTimeGreaterThanEqualsDateTimeLessThanDateTimeLessThanEquals |
| Popis | Kontrola úplné přesnosti ve formátu: yyyy-mm-ddThh:mm:ss.mmmmmmmZ. Používá se pro ID verze objektu blob, snímek objektu blob a aktuální čas UTC. |
| Příklady | @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs:versionId] DateTimeEquals '2022-06-01T00:00:00.0Z' |
Relační operátory GUID
V této části jsou uvedeny globálně jedinečné relační operátory identifikátoru (GUID), které jsou k dispozici pro vytváření podmínek.
| Vlastnost | Hodnota |
|---|---|
| Operátory | GuidEqualsGuidNotEquals |
| Popis | Porovnávání bez ohledu na velikost písmen s formátem: 00000000-0000-0000-0000-000000000000. Používá se k identifikaci zdroje, jako je ID objektu zabezpečení nebo ID definice role. |
| Příklady |
Operátory porovnání napříč produkty
V této části jsou uvedeny operátory porovnání mezi produkty, které jsou k dispozici pro vytváření podmínek.
ProJakoukoliZJakýchkoliHodnot
| Vlastnost | Hodnota |
|---|---|
| Operátory | ForAnyOfAnyValues:StringEqualsForAnyOfAnyValues:StringEqualsIgnoreCaseForAnyOfAnyValues:StringNotEqualsForAnyOfAnyValues:StringNotEqualsIgnoreCaseForAnyOfAnyValues:StringLikeForAnyOfAnyValues:StringLikeIgnoreCaseForAnyOfAnyValues:StringNotLikeForAnyOfAnyValues:StringNotLikeIgnoreCaseForAnyOfAnyValues:NumericEqualsForAnyOfAnyValues:NumericNotEqualsForAnyOfAnyValues:NumericGreaterThanForAnyOfAnyValues:NumericGreaterThanEqualsForAnyOfAnyValues:NumericLessThanForAnyOfAnyValues:NumericLessThanEqualsForAnyOfAnyValues:GuidEqualsForAnyOfAnyValues:GuidNotEquals |
| Popis | Pokud alespoň jedna hodnota na levé straně splňuje porovnání s alespoň jednou hodnotou na pravé straně, výraz se vyhodnotí jako true. Má formát: ForAnyOfAnyValues:<BooleanFunction>. Podporuje více řetězců a čísel. |
| Příklady | @Resource[Microsoft.Storage/storageAccounts/encryptionScopes:name] ForAnyOfAnyValues:StringEquals {'validScope1', 'validScope2'}Pokud se název oboru šifrování rovná validScope1 nebo validScope2, pak true.{'red', 'blue'} ForAnyOfAnyValues:StringEquals {'blue', 'green'}true {'red', 'blue'} ForAnyOfAnyValues:StringEquals {'orange', 'green'}nepravda |
ForAllOfAnyValues
| Vlastnost | Hodnota |
|---|---|
| Operátory | ForAllOfAnyValues:StringEqualsForAllOfAnyValues:StringEqualsIgnoreCaseForAllOfAnyValues:StringNotEqualsForAllOfAnyValues:StringNotEqualsIgnoreCaseForAllOfAnyValues:StringLikeForAllOfAnyValues:StringLikeIgnoreCaseForAllOfAnyValues:StringNotLikeForAllOfAnyValues:StringNotLikeIgnoreCaseForAllOfAnyValues:NumericEqualsForAllOfAnyValues:NumericNotEqualsForAllOfAnyValues:NumericGreaterThanForAllOfAnyValues:NumericGreaterThanEqualsForAllOfAnyValues:NumericLessThanForAllOfAnyValues:NumericLessThanEqualsForAllOfAnyValues:GuidEqualsForAllOfAnyValues:GuidNotEquals |
| Popis | Pokud každá hodnota na levé straně splňuje porovnání s alespoň jednou hodnotou na pravé straně, výraz se vyhodnotí jako true. Má formát: ForAllOfAnyValues:<BooleanFunction>. Podporuje více řetězců a čísel. |
| Příklady | @Request[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] ForAllOfAnyValues:StringEquals {'Cascade', 'Baker', 'Skagit'}{'red', 'blue'} ForAllOfAnyValues:StringEquals {'orange', 'red', 'blue'}true {'red', 'blue'} ForAllOfAnyValues:StringEquals {'red', 'green'}nepravda |
ForAnyOfAllValues
| Vlastnost | Hodnota |
|---|---|
| Operátory | ForAnyOfAllValues:StringEqualsForAnyOfAllValues:StringEqualsIgnoreCaseForAnyOfAllValues:StringNotEqualsForAnyOfAllValues:StringNotEqualsIgnoreCaseForAnyOfAllValues:StringLikeForAnyOfAllValues:StringLikeIgnoreCaseForAnyOfAllValues:StringNotLikeForAnyOfAllValues:StringNotLikeIgnoreCaseForAnyOfAllValues:NumericEqualsForAnyOfAllValues:NumericNotEqualsForAnyOfAllValues:NumericGreaterThanForAnyOfAllValues:NumericGreaterThanEqualsForAnyOfAllValues:NumericLessThanForAnyOfAllValues:NumericLessThanEqualsForAnyOfAllValues:GuidEqualsForAnyOfAllValues:GuidNotEquals |
| Popis | Pokud alespoň jedna hodnota na levé straně splňuje porovnání s každou hodnotou na pravé straně, výraz se vyhodnotí jako true. Má formát: ForAnyOfAllValues:<BooleanFunction>. Podporuje více řetězců a čísel. |
| Příklady | {10, 20} ForAnyOfAllValues:NumericLessThan {15, 18}true |
ForAllOfAllValues
| Vlastnost | Hodnota |
|---|---|
| Operátory | ForAllOfAllValues:StringEqualsForAllOfAllValues:StringEqualsIgnoreCaseForAllOfAllValues:StringNotEqualsForAllOfAllValues:StringNotEqualsIgnoreCaseForAllOfAllValues:StringLikeForAllOfAllValues:StringLikeIgnoreCaseForAllOfAllValues:StringNotLikeForAllOfAllValues:StringNotLikeIgnoreCaseForAllOfAllValues:NumericEqualsForAllOfAllValues:NumericNotEqualsForAllOfAllValues:NumericGreaterThanForAllOfAllValues:NumericGreaterThanEqualsForAllOfAllValues:NumericLessThanForAllOfAllValues:NumericLessThanEqualsForAllOfAllValues:GuidEqualsForAllOfAllValues:GuidNotEquals |
| Popis | Pokud každá hodnota na levé straně splňuje porovnání s každou hodnotou na pravé straně, výraz se vyhodnotí jako true. Má formát: ForAllOfAllValues:<BooleanFunction>. Podporuje více řetězců a čísel. |
| Příklady | {10, 20} ForAllOfAllValues:NumericLessThan {5, 15, 18}nepravda {10, 20} ForAllOfAllValues:NumericLessThan {25, 30}true {10, 20} ForAllOfAllValues:NumericLessThan {15, 25, 30}nepravda |
Speciální znaky
| Znak | Popis |
|---|---|
* |
Hvězdička (*) představuje shodu s víceznakovým zástupným znakem, kterou lze použít s operátory Like. V případě potřeby můžete utéct hvězdičkou přidáním zpětného lomítka \*. |
? |
Otazník (?) představuje zástupný znak pro jednu libovolnou znakovou shodu, který lze použít s operátory Like. V případě potřeby můžete otazník odescapovat přidáním zpětného lomítka \?. |
$ |
Znak dolaru ($) slouží k delineaci klíčů značek. V Azure PowerShellu, pokud řetězec uzavřený v dvojitých uvozovkách (") obsahuje znak dolaru, musíte jej předponovat zpětným apostrofem (`). Například: tags:Project<`$key_case_sensitive`$>. |
Seskupování a priorita
Pokud máte tři nebo více výrazů pro cílovou akci s různými operátory mezi výrazy, pořadí vyhodnocení je nejednoznačné. Pomocí závorek () seskupíte výrazy a určíte pořadí, ve kterém se výrazy vyhodnocují. Výrazy uzavřené v závorkách mají vyšší prioritu. Pokud máte například následující výraz:
a AND b OR c
Závorky je nutné přidat jedním z následujících způsobů:
(a AND b) OR c
a AND (b OR c)