Školení
Modul
Náhled změn nasazení Azure pomocí what-if analýzy - Training
Použijte příkaz what-if, abyste viděli účinek nasazení před jeho aplikací.
Tento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Účinek modify
se používá k přidání, aktualizaci nebo odebrání vlastností nebo značek u předplatného nebo prostředku během vytváření nebo aktualizace. Stávající nekompatibilní prostředky lze také napravit úlohou nápravy. Přiřazení zásad s nastavenými efekty jako Modify vyžadují spravovanou identitu k nápravě. Běžným příkladem použití modify
efektu je aktualizace značek u prostředků, jako je například costCenter.
U vlastností prostředků existují určité drobné odlišnosti v chování při úpravách. Přečtěte si další informace o scénářích při vynechání úprav.
Jedno modify
pravidlo může mít libovolný počet operací. Podporované operace jsou:
indexed
režim, pokud cílový prostředek není skupina prostředků.identity.type
) virtuálních počítačů a škálovacích sad virtuálních počítačů. Můžete upravit identity.type
pouze pro virtuální počítače nebo škálovací sady virtuálních počítačů.Get-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }
Azure PowerShellu 4.6.0 nebo novějším můžete získat seznam aliasů, se modify
kterými se dá používat .Důležité
Pokud spravujete značky, doporučuje se místo příkazu Přidat použít funkci Upravit, protože funkce Modify poskytuje více typů operací a možnost opravovat existující prostředky. Připojení se ale doporučuje, pokud nemůžete vytvořit spravovanou identitu nebo upravit ještě nepodporuje alias vlastnosti prostředku.
Změna se vyhodnotí před zpracováním požadavku poskytovatelem prostředků během vytváření nebo aktualizace prostředku. Operace modify
se použijí na obsah požadavku při if
splnění podmínky pravidla zásad. Každá modify
operace může zadat podmínku, která určuje, kdy se použije.
Když je zadaný alias, provede se další kontroly, aby se zajistilo, že modify
operace nezmění obsah požadavku způsobem, který způsobí, že ho poskytovatel prostředků odmítne:
modify
v operaci odpovídá očekávanému typu tokenu pro vlastnost ve verzi rozhraní API požadavku.Pokud některé z těchto kontrol selžou, vyhodnocení zásad se vrátí do zadaného conflictEffect
stavu .
Důležité
Doporučuje se upravit definice, které obsahují aliasy, použít konfliktní účinek auditu, aby se zabránilo selhání požadavků pomocí verzí rozhraní API, kde mapovaná vlastnost není upravitelná. Pokud se stejný alias chová odlišně mezi verzemi rozhraní API, můžete k určení modify
operace používané pro každou verzi rozhraní API použít operace podmíněné úpravy.
Při vyhodnocování dojde k vynechání operací úprav:
modify
efekt spustí jako součást cyklu vyhodnocení, neprovádí změny prostředků, které už existují. Místo toho označí všechny prostředky, které splňují podmínku if
jako nevyhovující, aby je bylo možné napravit pomocí úlohy nápravy.operations
poli vyhodnocena jako nepravda, daná konkrétní operace se přeskočí.modify
operace se přeskočí.Microsoft.Storage/storageAccounts/blobServices/deleteRetentionPolicy.enabled
. Pokud vlastnost "parent" v tomto případě deleteRetentionPolicy
není v požadavku přítomna, úpravy se přeskočí, protože se předpokládá, že tato vlastnost je záměrně vynechána. Praktický příklad najdete v části Příklad vlastnosti, která není k dispozici.identity.type
pole u jiného prostředku než virtuální počítač nebo škálovací sada virtuálních počítačů, vyhodnocení zásad se úplně přeskočí, takže se změny neprovedou. V tomto případě se prostředek nepovažuje za použitelný pro zásadu.Úprava vlastností prostředku závisí na požadavku rozhraní API a aktualizované datové části prostředku. Datová část může záviset na použitém klientovi, jako je Azure Portal, a dalších faktorech, jako je poskytovatel prostředků.
Představte si, že použijete zásadu, která upravuje značky na virtuálním počítači. Při každé aktualizaci virtuálního počítače, například při změně velikosti nebo změny disku, se značky odpovídajícím způsobem aktualizují bez ohledu na obsah datové části virtuálního počítače. Důvodem je to, že značky jsou nezávislé na vlastnostech virtuálního počítače.
Pokud ale použijete zásadu, která upraví vlastnosti na virtuálním počítači, je úprava závislá na datové části prostředku. Pokud se pokusíte upravit vlastnosti, které nejsou zahrnuty v datové části aktualizace, změny se neprovedou. K tomu může dojít například při opravě assessmentMode
vlastnosti virtuálního počítače (aliasu Microsoft.Compute/virtualMachines/osProfile.windowsConfiguration.patchSettings.assessmentMode
). Vlastnost je "vnořená", takže pokud její nadřazené vlastnosti nejsou zahrnuty do požadavku, předpokládá se, že toto vynechání je úmyslné a úpravy se přeskočí. Aby se změny projevily, datová část prostředku by měla obsahovat tento kontext.
Vlastnost details
efektu modify
má všechny dílčí vlastnosti, které definují oprávnění potřebná k nápravě a operations
použité k přidání, aktualizaci nebo odebrání hodnot značek.
roleDefinitionIds
(povinné) conflictEffect
(volitelné) modify
operace nefunguje na zadaném aliasu.
operations
auditu . Pokud má více definic zásad účinek odepření, žádost se zamítá jako konflikt. Pokud mají všechny definice zásad audit, nezpracují se žádné z operations
konfliktních definic zásad.operations
(povinné) operation
(povinné)
field
(povinné) value
(volitelné) operation
je addOrReplace nebo Add.condition
(volitelné)
Pole operations
vlastností umožňuje změnit několik značek různými způsoby od jedné definice zásad. Každá operace se skládá z operation
, field
a value
vlastností. Určuje operation
, co úloha nápravy dělá se značkami, určuje, field
která značka se změní, a value
definuje nové nastavení pro tuto značku. Následující příklad provede následující změny značek:
environment
Nastaví značku na Test, i když už existuje s jinou hodnotou.TempResource
.Dept
Nastaví značku na parametr zásad DeptName nakonfigurovaný pro přiřazení zásady."details": {
...
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
},
{
"operation": "Remove",
"field": "tags['TempResource']",
},
{
"operation": "addOrReplace",
"field": "tags['Dept']",
"value": "[parameters('DeptName')]"
}
]
}
Vlastnost operation
má následující možnosti:
Operation | Popis |
---|---|
addOrReplace |
Přidá do prostředku definovanou vlastnost nebo značku a hodnotu, a to i v případě, že vlastnost nebo značka již existuje s jinou hodnotou. |
add |
Přidá do prostředku definovanou vlastnost nebo značku a hodnotu. |
remove |
Odebere definovanou značku z prostředku. Podporuje se jenom u značek. |
Příklad 1: Přidejte environment
značku a nahraďte existující environment
značky slovem Test:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "Test"
}
]
}
}
Příklad 2: Odeberte env
značku a přidejte environment
značku nebo nahraďte existující environment
značky parametrizovanou hodnotou:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"conflictEffect": "deny",
"operations": [
{
"operation": "Remove",
"field": "tags['env']"
},
{
"operation": "addOrReplace",
"field": "tags['environment']",
"value": "[parameters('tagValue')]"
}
]
}
}
Příklad 3: Ujistěte se, že účet úložiště nepovoluje veřejný přístup k objektům blob, modify
operace se použije pouze při vyhodnocování požadavků s verzí rozhraní API vyšší nebo rovno 2019-04-01
:
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab"
],
"conflictEffect": "audit",
"operations": [
{
"condition": "[greaterOrEquals(requestContext().apiVersion, '2019-04-01')]",
"operation": "addOrReplace",
"field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
"value": false
}
]
}
}
Školení
Modul
Náhled změn nasazení Azure pomocí what-if analýzy - Training
Použijte příkaz what-if, abyste viděli účinek nasazení před jeho aplikací.
Dokumentace
Definice azure Policy nasazují efektIfNotExists - Azure Policy
Definice azure Policy deployIfNotExists určují způsob správy a hlášení dodržování předpisů.
Efekt připojení definic Azure Policy - Azure Policy
Přidávací efekt definic Azure Policy určuje, jak se řídí a hlásí dodržování předpisů.
Základy účinku definic Azure Policy - Azure Policy
Základy definic Azure Policy určují, jak se řídí a hlásí dodržování předpisů.