Criteri di Azure definizioni auditIfNotExists effect

L'effetto auditIfNotExists consente il controllo delle risorse correlate alla risorsa che corrisponde alla if condizione, ma non hanno le proprietà specificate nella details condizione then .

Valutazione di AuditIfNotExists

auditIfNotExists viene eseguito dopo che un provider di risorse ha elaborato una richiesta di risorsa di creazione o aggiornamento e ha restituito un codice di stato di esito positivo. Il controllo si verifica se non sono presenti risorse correlate o se le risorse definite da ExistenceCondition non restituiscono true. Per le risorse nuove e aggiornate, Criteri di Azure aggiunge un'operazione Microsoft.Authorization/policies/audit/action al log attività e contrassegna la risorsa come non conforme. Quando viene attivata, la risorsa che ha soddisfatto la if condizione è la risorsa contrassegnata come non conforme.

Proprietà di AuditIfNotExists

La details proprietà degli effetti AuditIfNotExists include tutte le sottoproprietà che definiscono le risorse correlate da associare.

  • type (obbligatorio)
    • Specifica il tipo della risorsa correlata a cui corrispondere.
    • Se type è un tipo di risorsa sotto la if risorsa condizione, i criteri eseguono query per le risorse di questo type tipo all'interno dell'ambito della risorsa valutata. In caso contrario, le query sui criteri all'interno dello stesso gruppo di risorse o della stessa sottoscrizione della risorsa valutata a seconda di existenceScope.
  • name (facoltativo)
    • Specifica il nome esatto della risorsa a cui corrispondere e fa sì che il criterio recuperi una risorsa specifica invece di tutte le risorse del tipo specificato.
    • Quando i valori della condizione per if.field.type e then.details.type corrispondono, name diventa obbligatorio e devono essere [field('name')]o [field('fullName')] per una risorsa figlio. Tuttavia, deve essere considerato invece un effetto audit.

Nota

type i segmenti e name possono essere combinati per recuperare in modo generico le risorse annidate.

Per recuperare una risorsa specifica, è possibile usare "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" e "name": "parentResourceName/nestedResourceName".

Per recuperare una raccolta di risorse nidificate, è possibile specificare un carattere ? jolly al posto del segmento del cognome. Ad esempio, "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" e "name": "parentResourceName/?". Questa operazione può essere combinata con le funzioni di campo per accedere alle risorse correlate alla risorsa valutata, ad esempio "name": "[concat(field('name'), '/?')]"".

  • resourceGroupName (facoltativo)
    • Consente che la corrispondenza della risorsa correlata provenga da un gruppo di risorse diverso.
    • Non si applica se type è una risorsa che si trova sotto la risorsa della if condizione.
    • Il valore predefinito è il if gruppo di risorse della risorsa condizione.
  • existenceScope (facoltativo)
    • I valori consentiti sono Subscription e ResourceGroup.
    • Imposta l'ambito dove recuperare la risorsa correlata a cui corrispondere.
    • Non si applica se type è una risorsa che si trova sotto la risorsa della if condizione.
    • Per ResourceGroup, limitarebbe il gruppo di risorse in se resourceGroupName specificato. Se resourceGroupName non viene specificato, limitare il gruppo di risorse della if risorsa della condizione, ovvero il comportamento predefinito.
    • Per Subscription, esegue una query nell'intera sottoscrizione per la risorsa correlata. L'ambito di assegnazione deve essere impostato in una sottoscrizione o superiore per una valutazione corretta.
    • L'impostazione predefinita è ResourceGroup.
  • evaluationDelay (facoltativo)
    • Specifica quando deve essere valutata l'esistenza delle risorse correlate. Il ritardo viene usato solo per le valutazioni risultanti da una richiesta di risorsa di creazione o aggiornamento.
    • I valori consentiti sono AfterProvisioning, AfterProvisioningSuccess, AfterProvisioningFailureo una durata ISO 8601 compresa tra 0 e 360 minuti.
    • I valori AfterProvisioning controllano il risultato del provisioning della risorsa valutata nella condizione della regola dei if criteri. AfterProvisioning viene eseguito dopo il completamento del provisioning, indipendentemente dal risultato. Il provisioning che richiede più di sei ore viene considerato come un errore durante la determinazione dei ritardi di valutazione AfterProvisioning .
    • Il valore predefinito è PT10M (10 minuti).
    • Se si specifica un lungo ritardo di valutazione, lo stato di conformità registrato della risorsa potrebbe non essere aggiornato fino al trigger di valutazione successivo.
  • existenceCondition (facoltativo)
    • Se non specificato, qualsiasi risorsa correlata di type soddisfa l'effetto e non attiva il controllo.
    • Usa la stessa lingua della regola dei criteri per la if condizione, ma viene valutata in base a ogni risorsa correlata singolarmente.
    • Se qualsiasi risorsa correlata corrispondente restituisce true, l'effetto è soddisfatto e non attiva il controllo.
    • Può usare [field()] per verificare l'equivalenza con i valori nella if condizione.
    • Ad esempio, può essere usato per verificare che la risorsa padre (nella if condizione) si trova nella stessa posizione della risorsa correlata corrispondente.

Esempio di AuditIfNotExists

Esempio: valuta Macchine virtuali per determinare se l'estensione Antimalware esiste e quindi controlla quando manca.

{
  "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"
          }
        ]
      }
    }
  }
}

Passaggi successivi