Azure-Richtliniendefinitionen auditIfNotExists-Effekt
Der Effekt auditIfNotExists
ermöglicht die Überwachung von Ressourcen, die zwar mit der Ressource, die die Bedingung if
erfüllt, zusammenhängen, für die aber keine Eigenschaften in den details
der Bedingung then
angegeben sind.
Auswertung von „AuditIfNotExists“
auditIfNotExists
wird ausgeführt, nachdem ein Ressourcenanbieter eine Erstellungs- oder Aktualisierungsressourcenanforderung verarbeitet und einen Erfolgsstatuscode zurückgegeben hat. Die Überprüfung findet statt, wenn keine entsprechenden Ressourcen vorhanden sind oder wenn die über ExistenceCondition
definierten Ressourcen nicht als TRUE ausgewertet werden. Bei neuen und aktualisierten Ressourcen fügt Azure Policy dem Aktivitätsprotokoll einen Microsoft.Authorization/policies/audit/action
-Vorgang hinzu und markiert die Ressource als nicht konform. Bei Auslösung ist die Ressource, die die if
-Bedingung erfüllt hat, die Ressource, die als nicht konform markiert wird.
Eigenschaften von „AuditIfNotExists“
Die details
-Eigenschaft der Auswirkung „AuditIfNotExists“ umfasst die folgenden Untereigenschaften zur Definition der entsprechenden Ressourcen für den Abgleich.
type
(erforderlich)- Gibt den Typ der entsprechenden abzugleichenden Ressource an.
- Wenn es sich bei
type
um einen Ressourcentyp unterhalb der Bedingungsressourceif
handelt, fragt die Richtlinie Ressourcen von diesemtype
innerhalb des Bereichs der ausgewerteten Ressource ab. Andernfalls werden Richtlinienabfragen innerhalb derselben Ressourcengruppe oder desselben Abonnements wie die ausgewertete Ressource je nachexistenceScope
durchgeführt.
name
(optional)- Gibt den exakten Namen der Ressource für den Abgleich an und führt dazu, dass die Richtlinie nicht alle Ressourcen des angegebenen Typs, sondern eine bestimmte Ressource abruft.
- Wenn die Bedingungswerte für
if.field.type
undthen.details.type
übereinstimmen, wirdname
jetzt erforderlich und muss[field('name')]
oder[field('fullName')]
für eine untergeordnete Ressource sein. Allerdings sollte stattdessen ein audit-Effekt in Erwägung gezogen werden.
Hinweis
Segmente type
und name
können kombiniert werden, um geschachtelte Ressourcen generisch abzurufen.
Um eine bestimmte Ressource abzurufen, können Sie "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
und "name": "parentResourceName/nestedResourceName"
verwenden.
Zum Abrufen einer Sammlung geschachtelter Ressourcen kann anstelle des letzten Namenssegments ein Platzhalterzeichen ?
angegeben werden. Beispiel: "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
und "name": "parentResourceName/?"
. Dieses kann mit Feldfunktionen kombiniert werden, um auf Ressourcen zuzugreifen, die mit der ausgewerteten Ressource in Zusammenhang stehen, z. B. "name": "[concat(field('name'), '/?')]"
".
resourceGroupName
(optional)- Hierdurch ist es möglich, für den Abgleich eine Ressource aus einer anderen Ressourcengruppe festzulegen.
- Diese Einstellung ist nicht anwendbar, wenn
type
eine Ressource unterhalb derif
-Bedingungsressource ist. - Standardmäßig wird die Ressourcengruppe der
if
-Bedingungsressource verwendet.
existenceScope
(optional)- Zulässige Werte sind Subscription und ResourceGroup.
- Legt den Bereich fest, aus dem die entsprechende Ressource für den Abgleich abgerufen werden soll.
- Diese Einstellung ist nicht anwendbar, wenn
type
eine Ressource unterhalb derif
-Bedingungsressource ist. - Bei ResourceGroup würde die Ressourcengruppe in
resourceGroupName
, falls angegeben, beschränkt. WennresourceGroupName
nicht angegeben ist, wird der Bereich auf die Ressourcengruppe derif
-Bedingungsressource begrenzt. Dies ist das Standardverhalten. - Für Subscription wird das gesamte Abonnement nach der entsprechenden Ressource abgefragt. Der Zuweisungsbereich sollte für die ordnungsgemäße Auswertung auf das Abonnement oder höher festgelegt werden.
- Die Standardeinstellung ist ResourceGroup.
evaluationDelay
(optional)- Hiermit wird angegeben, wann die Existenz der zugehörigen Ressourcen ausgewertet werden soll. Die Verzögerung wird nur bei Auswertungen verwendet, die das Ergebnis einer Erstell- oder Aktualisierungsanforderung für die Ressource sind.
- Zu den zulässigen Werten zählen
AfterProvisioning
,AfterProvisioningSuccess
undAfterProvisioningFailure
sowie eine Dauer gemäß ISO 8601 zwischen 0 und 360 Minuten. - Die AfterProvisioning-Werte untersuchen die Bereitstellungsergebnisse der Ressource, die in der
if
-Bedingung der Richtlinienregel ausgewertet wurde.AfterProvisioning
wird unabhängig vom Ergebnis nach der Bereitstellung ausgeführt. Die Bereitstellung, die mehr als sechs Stunden dauert, wird beim Ermitteln von Verzögerungen bei der Nachbereitstellungsauswertung als Fehler behandelt. - Der Standardwert ist
PT10M
(zehn Minuten). - Eine lange Auswertungsverzögerung kann dazu führen, dass der aufgezeichnete Konformitätszustand der Ressource bis zur nächsten Auswertungsauslösung nicht aktualisiert wird.
existenceCondition
(optional)- Sofern nicht angegeben, erfüllt jede Ressource mit entsprechendem
type
die Bedingung der Auswirkung und löst keine Überwachung aus. - Verwendet dieselbe Sprachsyntax wie die Richtlinienregel für die
if
-Bedingung, wird jedoch für jede entsprechende Ressource einzeln ausgeführt. - Wenn eine übereinstimmende Ressource als TRUE ausgewertet wird, ist die Auswirkung erfüllt und löst keine Überwachung aus.
- [field()] kann verwendet werden, um auf Äquivalenz mit Werten in der
if
-Bedingung zu überprüfen. - Beispielsweise könnte so überprüft werden, ob die übergeordnete Ressource (in der
if
-Bedingung) sich am selben Ressourcenstandort befindet wie die übereinstimmende Ressource.
- Sofern nicht angegeben, erfüllt jede Ressource mit entsprechendem
Beispiel für „AuditIfNotExists“
Beispiel: Wertet Virtual Machines aus, um zu bestimmen, ob die Antischadsoftware-Erweiterung vorhanden ist, und überprüft, wenn sie fehlt.
{
"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"
}
]
}
}
}
}
Nächste Schritte
- Sehen Sie sich die Beispiele unter Azure Policy-Beispiele an.
- Lesen Sie die Informationen unter Struktur von Azure Policy-Definitionen.
- Informieren Sie sich über das programmgesteuerte Erstellen von Richtlinien.
- Informieren Sie sich über das Abrufen von Konformitätsdaten.
- Erfahren Sie, wie Sie nicht konforme Ressourcen korrigieren können.
- Siehe Azure-Verwaltungsgruppen.