Delen via


Azure Policy-definities auditIfNotExists-effect

Het auditIfNotExists effect maakt het mogelijk om resources te controleren die betrekking hebben op de resource die voldoet aan de if voorwaarde, maar die niet beschikken over de in de details van de then voorwaarde gespecificeerde eigenschappen.

AuditIfNotExists-evaluatie

auditIfNotExists wordt uitgevoerd nadat een resourceprovider een resourceaanvraag heeft verwerkt of bijgewerkt en een geslaagde statuscode heeft geretourneerd. De controle vindt plaats als er geen gerelateerde bronnen zijn of als de bronnen vastgelegd door ExistenceCondition niet als waar worden geëvalueerd. Voor nieuwe en bijgewerkte resources voegt Azure Policy een Microsoft.Authorization/policies/audit/action bewerking toe aan het activiteitenlogboek en markeert de resource als niet-compatibel. Wanneer deze wordt geactiveerd, is de resource die aan de if voorwaarde voldoet de resource die is gemarkeerd als niet-compatibel.

Eigenschappen van AuditIfNotExists

De details eigenschap van de AuditIfNotExists-effecten heeft alle subeigenschappen die de overeenkomstige gerelateerde resources definiëren.

  • type (vereist)
    • Specificeer het type van het gerelateerde hulpmiddel dat moet overeenkomen.
    • Als type een resourcetype is dat onder de voorwaarderesource if valt, voert het beleid opvragen uit voor resources van dit type type binnen de reikwijdte van de geëvalueerde resource. Anders worden query's over beleid binnen dezelfde resourcegroep of hetzelfde abonnement als de geëvalueerde resource afhankelijk van de existenceScope.
  • name (optioneel)
    • Hiermee geeft u de exacte naam van de resource die overeenkomt en zorgt ervoor dat het beleid één specifieke resource ophaalt in plaats van alle resources van het opgegeven type.
    • Wanneer de voorwaardewaarden voor if.field.type en then.details.type overeenkomen, wordt namevereist en moet het [field('name')] zijn, of [field('fullName')] voor een ondergeschikte resource. In plaats daarvan moet echter een controle-effect worden overwogen.

Opmerking

type en name segmenten kunnen worden gecombineerd om algemeen geneste resources op te halen.

Als u een specifieke resource wilt ophalen, kunt u deze gebruiken "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" en "name": "parentResourceName/nestedResourceName".

Als u een verzameling geneste resources wilt ophalen, kunt u een jokerteken ? opgeven in plaats van het achternaamsegment. Bijvoorbeeld "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" en "name": "parentResourceName/?". Dit kan worden gecombineerd met veldfuncties voor toegang tot resources die zijn gerelateerd aan de geëvalueerde resource, zoals "name": "[concat(field('name'), '/?')]".".

  • resourceGroupName (optioneel)
    • Hiermee kan de overeenkomende resource afkomstig zijn van een andere resourcegroep.
    • Dit geldt niet als type een resource is die zich onder de if voorwaarde bevindt.
    • De standaardinstelling is de resourcegroep van de voorwaarderesource if.
  • existenceScope (optioneel)
    • Toegestane waarden zijn Abonnement en ResourceGroup.
    • Hiermee stelt u de reikwijdte in voor het ophalen van de gerelateerde resource om te matchen.
    • Dit geldt niet als type een resource is die onder de if voorwaarde-resource zou vallen.
    • Voor ResourceGroup zou, indien gespecificeerd, beperkt worden tot de resourcegroep in resourceGroupName. Als resourceGroupName niet is opgegeven, wordt beperkt tot de resourcegroep van de voorwaarderesource van if, wat het standaardgedrag is.
    • Voor Abonnement wordt een query uitgevoerd op het hele abonnement voor de gerelateerde resource. Het taakbereik moet worden ingesteld op abonnement of hoger voor een juiste evaluatie.
    • De standaardwaarde is ResourceGroup.
  • evaluationDelay (optioneel)
    • Hiermee geeft u op wanneer het bestaan van de gerelateerde resources moet worden geëvalueerd. De vertraging wordt alleen gebruikt voor evaluaties die het gevolg zijn van een aanvraag voor het maken of bijwerken van resources.
    • Toegestane waarden zijn AfterProvisioning, AfterProvisioningSuccessof AfterProvisioningFailureeen ISO 8601-duur tussen 0 en 360 minuten.
    • De waarden na inrichting inspecteren het inrichtingsresultaat van de resource die is geëvalueerd in de voorwaarde van if de beleidsregel. AfterProvisioning wordt uitgevoerd nadat de provisioning is voltooid, ongeacht de uitkomst. Inrichting die meer dan zes uur in beslag neemt, wordt beschouwd als een mislukking bij het bepalen van AfterProvisioning evaluatievertragingen.
    • De standaardwaarde is PT10M (10 minuten).
    • Het specificeren van een lange evaluatievertraging kan ervoor zorgen dat de geregistreerde compliancestatus van de resource pas wordt geüpdatet bij de volgende evaluatietrigger.
  • existenceCondition (optioneel)
    • Als dit niet is gespecificeerd, voldoet elke gerelateerde resource van type aan het effect en activeert het de controle niet.
    • Gebruikt dezelfde taal als de beleidsregel voor de if voorwaarde, maar wordt afzonderlijk geëvalueerd op basis van elke gerelateerde resource.
    • Als een bijbehorende gerelateerde bron als waar wordt beoordeeld, is het effect voldaan en wordt de controle niet geactiveerd.
    • Kan [field()] gebruiken om de gelijkwaardigheid met waarden in de if voorwaarde te controleren.
    • Kan bijvoorbeeld worden gebruikt om te controleren of de bovenliggende resource (in de if voorwaarde) zich op dezelfde resourcelocatie bevindt als de overeenkomende gerelateerde resource.

Voorbeeld AuditIfNotExists

Voorbeeld: Evalueert virtuele machines om te bepalen of de Antimalware-extensie bestaat en controleert wanneer deze ontbreekt.

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

Volgende stappen