Účinek auditIfNotExists v definicích služby Azure Policy
Účinek auditIfNotExists
umožňuje auditování prostředků souvisejících s prostředkem, který odpovídá if
podmínce, ale nemá vlastnosti zadané v details
then
podmínce.
AuditIfNotExists – vyhodnocení
auditIfNotExists
spustí se po zpracování žádosti o vytvoření nebo aktualizaci prostředku poskytovatelem prostředků a vrácení stavového kódu úspěchu. K auditu dochází v případě, že neexistují žádné související prostředky nebo pokud se prostředky definované ExistenceCondition
nehodnotí jako true. Pro nové a aktualizované prostředky azure Policy přidá Microsoft.Authorization/policies/audit/action
operaci do protokolu aktivit a označí prostředek jako nevyhovující předpisům. Při aktivaci je prostředek, který splnil podmínku if
, prostředkem, který je označený jako nevyhovující předpisům.
AuditIfNotExists – vlastnosti
Vlastnost details
AuditIfNotExists účinky má všechny dílčíproperties, které definují související prostředky, které se mají shodovat.
type
(povinné)- Určuje typ souvisejícího prostředku, který se má shodovat.
- Pokud
type
je typ prostředku pod prostředkemif
podmínky, zásady se dotazují na prostředky tohototype
prostředku v rámci rozsahu vyhodnoceného prostředku. V opačném případě se zásady dotazují ve stejné skupině prostředků nebo předplatném jako vyhodnocený prostředek v závislosti na hodnotěexistenceScope
.
name
(volitelné)- Určuje přesný název prostředku, který se má shodovat, a způsobí, že zásada místo všech prostředků zadaného typu načte jeden konkrétní prostředek.
- Pokud jsou hodnoty podmínek pro
if.field.type
athen.details.type
shodné,name
pak se vyžadují a musí být[field('name')]
nebo[field('fullName')]
pro podřízený prostředek. Místo toho by se ale měl zvážit účinek auditu.
Poznámka:
type
a name
segmenty lze zkombinovat za účelem obecného načtení vnořených prostředků.
K načtení konkrétního prostředku můžete použít "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
a "name": "parentResourceName/nestedResourceName"
.
Pokud chcete načíst kolekci vnořených prostředků, můžete místo segmentu příjmení zadat zástupný znak ?
. Příklad: "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
a "name": "parentResourceName/?"
. To lze kombinovat s funkcemi polí pro přístup k prostředkům souvisejícím s vyhodnoceným prostředkem, například "name": "[concat(field('name'), '/?')]"
"
resourceGroupName
(volitelné)- Umožňuje porovnávání souvisejících prostředků pocházet z jiné skupiny prostředků.
- Nevztahuje se, pokud
type
se jedná o prostředek, který by byl pod prostředkemif
podmínky. - Výchozí hodnota je
if
skupina prostředků podmínky.
existenceScope
(volitelné)- Povolené hodnoty jsou Subscription a ResourceGroup.
- Nastaví obor, ze kterého se má načíst související prostředek, ze kterého se má shodovat.
- Nevztahuje se, pokud
type
se jedná o prostředek, který by byl pod prostředkemif
podmínky. - V případě skupiny prostředků by se v případě zadání omezila na skupinu
resourceGroupName
prostředků. PokudresourceGroupName
není zadáno, omezí se to naif
skupinu prostředků podmínky, což je výchozí chování. - V případě předplatného se dotazuje na celé předplatné souvisejícího prostředku. Pro správné vyhodnocení by měl být obor přiřazení nastavený na předplatné nebo vyšší.
- Výchozí hodnota je ResourceGroup.
evaluationDelay
(volitelné)- Určuje, kdy se má vyhodnotit existence souvisejících prostředků. Zpoždění se používá pouze pro vyhodnocení, která jsou výsledkem požadavku na vytvoření nebo aktualizaci prostředku.
- Povolené hodnoty jsou
AfterProvisioning
,AfterProvisioningSuccess
,AfterProvisioningFailure
nebo ISO 8601 doba trvání mezi 0 a 360 minut. - Hodnoty AfterProvisioning kontrolují výsledek zřizování prostředku, který byl vyhodnocen v podmínce pravidla
if
zásad.AfterProvisioning
po dokončení zřizování bez ohledu na výsledek. Zřizování, které trvá déle než šest hodin, se při určování zpoždění vyhodnocení po zřízení považuje za selhání. - Výchozí hodnota je
PT10M
(10 minut). - Určení dlouhé prodlevy vyhodnocení může způsobit, že se zaznamenaný stav dodržování předpisů prostředku neaktualizuje, dokud se neaktualizuje další aktivační událost vyhodnocení.
existenceCondition
(volitelné)- Pokud není zadaný, jakýkoli související prostředek
type
splňuje účinek a neaktivuje audit. - Používá stejný jazyk jako pravidlo zásad pro podmínku
if
, ale vyhodnocuje se vůči jednotlivým souvisejícím prostředkům. - Pokud se některý související prostředek vyhodnotí jako pravdivý, efekt se splní a neaktivuje audit.
- Pomocí funkce [field()] můžete zkontrolovat ekvivalenci s hodnotami v podmínce
if
. - Můžete například použít k ověření, že nadřazený prostředek (v
if
podmínce) je ve stejném umístění prostředku jako odpovídající související prostředek.
- Pokud není zadaný, jakýkoli související prostředek
Příklad AuditIfNotExists
Příklad: Vyhodnotí virtuální počítače a určí, jestli existuje antimalwarové rozšíření, pak audituje, když chybí.
{
"if": {
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Azure.Security"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/type",
"equals": "IaaSAntimalware"
}
]
}
}
}
}
Další kroky
- Projděte si příklady v ukázkách azure Policy.
- Projděte si strukturu definic Azure Policy.
- Seznamte se s programovým vytvářením zásad.
- Zjistěte, jak získat data dodržování předpisů.
- Zjistěte, jak napravit nevyhovující prostředky.
- Zkontrolujte skupiny pro správu Azure.