Úč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ředkem if podmínky, zásady se dotazují na prostředky tohoto type 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 a then.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ředkem if 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ředkem if podmínky.
    • V případě skupiny prostředků by se v případě zadání omezila na skupinu resourceGroupName prostředků. Pokud resourceGroupName není zadáno, omezí se to na if 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, AfterProvisioningFailurenebo 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.

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