Share via


Azure Policy-definities auditIfNotExists-effect

Het auditIfNotExists effect maakt het mogelijk om resources te controleren die betrekking hebben op de resource die overeenkomt met de if voorwaarde, maar niet over de eigenschappen die zijn opgegeven in de detailsthen voorwaarde.

AuditIfNotExists-evaluatie

auditIfNotExists wordt uitgevoerd nadat een resourceprovider een resourceaanvraag heeft verwerkt of bijgewerkt en een geslaagde statuscode heeft geretourneerd. De controle treedt op als er geen gerelateerde resources zijn of als de resources die zijn gedefinieerd door ExistenceCondition niet 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 auditIfNotExists

De details eigenschap van de effecten AuditIfNotExists heeft alle subproperties die de gerelateerde resources definiëren die overeenkomen.

  • type (vereist)
    • Hiermee geeft u het type van de gerelateerde resource die moet overeenkomen.
    • Als type dit een resourcetype is onder de if voorwaarderesource, voert het beleid query's uit voor resources hiervan type binnen het bereik van de geëvalueerde resource. Anders worden beleidsquery's 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 overeenkomst zijn, wordt dit name vereist en moet [field('name')]dit zijn, of [field('fullName')] voor een onderliggende resource. In plaats daarvan moet echter een controle-effect worden overwogen.

Notitie

type en name segmenten kunnen worden gecombineerd om geneste resources algemeen 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 dit een resource is die zich onder de if voorwaarderesource bevindt.
    • De standaardwaarde is de resourcegroep van de if voorwaarderesource.
  • existenceScope (optioneel)
    • Toegestane waarden zijn Abonnement en ResourceGroup.
    • Hiermee stelt u het bereik in van waar de gerelateerde resource moet worden opgehaald waaruit moet worden gematcht.
    • Dit geldt niet als type dit een resource is die zich onder de if voorwaarderesource bevindt.
    • Voor ResourceGroup zou dit worden beperkt tot de resourcegroep waarin resourceGroupName deze is opgegeven. Als resourceGroupName dit niet is opgegeven, beperkt u zich tot de resourcegroep van de if voorwaarderesource. Dit is het standaardgedrag.
    • Voor Abonnement voert u een query uit op het hele abonnement voor de gerelateerde resource. Het toewijzingsbereik moet worden ingesteld op abonnement of hoger voor de 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 het inrichten is voltooid, ongeacht het resultaat. Inrichting die langer dan zes uur duurt, wordt behandeld als een fout bij het bepalen van na het inrichten van evaluatievertragingen.
    • De standaardwaarde is PT10M (10 minuten).
    • Het opgeven van een lange evaluatievertraging kan ertoe leiden dat de vastgelegde nalevingsstatus van de resource pas wordt bijgewerkt als de volgende evaluatietrigger.
  • existenceCondition (optioneel)
    • Als dit niet is opgegeven, voldoet een gerelateerde resource aan type het effect en wordt de controle niet geactiveerd.
    • Gebruikt dezelfde taal als de beleidsregel voor de if voorwaarde, maar wordt afzonderlijk geëvalueerd op basis van elke gerelateerde resource.
    • Als een overeenkomende gerelateerde resource waar oplevert, is het effect tevreden 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