Grundlegendes zu Azure Policy-AuswirkungenUnderstand Azure Policy effects

Jede Richtliniendefinition in Azure Policy hat eine einzelne Auswirkung.Each policy definition in Azure Policy has a single effect. Diese Auswirkung bestimmt, was geschieht, wenn die Richtlinienregel auf eine Übereinstimmung ausgewertet wird.That effect determines what happens when the policy rule is evaluated to match. Die Auswirkungen für eine neue Ressource, eine aktualisierte Ressource oder eine vorhandene Ressource sind hierbei unterschiedlich.The effects behave differently if they are for a new resource, an updated resource, or an existing resource.

Derzeit werden in einer Richtliniendefinition diese Auswirkungen unterstützt:These effects are currently supported in a policy definition:

Reihenfolge der AuswertungOrder of evaluation

Anforderungen zum Erstellen oder Aktualisieren einer Ressource über Azure Resource Manager werden von Azure Policy zuerst ausgewertet.Requests to create or update a resource through Azure Resource Manager are evaluated by Azure Policy first. Azure Policy erstellt eine Liste aller Zuweisungen, die auf die Ressource zutreffen, und wertet dann die Ressource anhand jeder Definition aus.Azure Policy creates a list of all assignments that apply to the resource and then evaluates the resource against each definition. Azure Policy verarbeitet einige der Auswirkungen, bevor die Anforderung an den geeigneten Ressourcenanbieter übergeben wird.Azure Policy processes several of the effects before handing the request to the appropriate Resource Provider. Auf diese Weise wird eine unnötige Verarbeitung durch einen Ressourcenanbieter verhindert, wenn eine Ressource nicht den konfigurierten Governancevorgaben von Azure Policy entspricht.Doing so prevents unnecessary processing by a Resource Provider when a resource doesn't meet the designed governance controls of Azure Policy.

  • Zuerst wird Deaktiviert überprüft, um zu ermitteln, ob die Richtlinienregel ausgewertet werden soll.Disabled is checked first to determine if the policy rule should be evaluated.
  • Append und Modify werden dann ausgewertet.Append and Modify are then evaluated. Die Anforderung kann durch beide geändert werden, deshalb kann eine durchgeführte Änderung die Auslösung der Auswirkungen „Audit“ oder „Deny“ verhindern.Since either could alter the request, a change made may prevent an audit or deny effect from triggering.
  • Anschließend wird deny ausgewertet.Deny is then evaluated. Durch die Auswertung von „deny“ vor „audit“ wird eine zweimalige Protokollierung einer unerwünschten Ressource verhindert.By evaluating deny before audit, double logging of an undesired resource is prevented.
  • Anschließend wird audit ausgewertet, bevor die Anforderung an den Ressourcenanbieter weitergeleitet wird.Audit is then evaluated before the request going to the Resource Provider.

Nachdem der Ressourcenanbieter einen Erfolgscode zurückgegeben hat, werden AuditIfNotExists und DeployIfNotExists ausgewertet, um zu bestimmen, ob eine zusätzliche Konformitätsprotokollierung oder -aktion erforderlich ist.After the Resource Provider returns a success code, AuditIfNotExists and DeployIfNotExists evaluate to determine if additional compliance logging or action is required.

Für die Auswirkungen EnforceOPAConstraint und EnforceRegoPolicy gibt es derzeit keine Reihenfolge der Auswertung.There currently isn't any order of evaluation for the EnforceOPAConstraint or EnforceRegoPolicy effects.

DeaktiviertDisabled

Diese Auswirkung ist in Testsituationen oder nach dem Parametrisieren der Auswirkung durch die Richtliniendefinition hilfreich.This effect is useful for testing situations or for when the policy definition has parameterized the effect. Aufgrund dieser Flexibilität kann eine einzelne Zuweisung deaktiviert werden, statt alle Zuweisungen dieser Richtlinie zu deaktivieren.This flexibility makes it possible to disable a single assignment instead of disabling all of that policy's assignments.

Eine Alternative zur Auswirkung „Deaktiviert“ stellt die Eigenschaft enforcementMode dar, die in der Richtlinienzuweisung festgelegt wird.An alternative to the Disabled effect is enforcementMode which is set on the policy assignment. Wenn für enforcementMode der Wert Disabled festgelegt ist, werden Ressourcen dennoch ausgewertet.When enforcementMode is Disabled, resources are still evaluated. Eine Protokollierung, z.B. Aktivitätsprotokolle, und die Richtlinienauswirkung treten nicht auf.Logging, such as Activity logs, and the policy effect don't occur. Weitere Informationen finden Sie unter Richtlinienzuweisung – Erzwingungsmodus.For more information, see policy assignment - enforcement mode.

AnfügenAppend

„append“ wird verwendet, um der angeforderten Ressource während der Erstellung oder Aktualisierung zusätzliche Felder hinzuzufügen.Append is used to add additional fields to the requested resource during creation or update. Ein häufiges Beispiel ist die Angabe der zulässigen IP-Adressen für eine Speicherressource.A common example is specifying allowed IPs for a storage resource.

Wichtig

„Append“ ist für die Verwendung mit Nicht-Tag-Eigenschaften vorgesehen.Append is intended for use with non-tag properties. Während „Append“ während einer Erstellungs- oder Aktualisierungsanforderung Tags zu einer Ressource hinzufügen kann, wird empfohlen, stattdessen die Auswirkung Modify für Tags zu verwenden.While Append can add tags to a resource during a create or update request, it's recommended to use the Modify effect for tags instead.

Auswertung von „append“Append evaluation

Die Auswertung von „append“ erfolgt vor der Anforderungsverarbeitung durch einen Ressourcenanbieter während der Erstellung oder Aktualisierung einer Ressource.Append evaluates before the request gets processed by a Resource Provider during the creation or updating of a resource. Mit „append“ werden Felder zur Ressource hinzugefügt, wenn die if-Bedingung der Richtlinienregel erfüllt ist.Append adds fields to the resource when the if condition of the policy rule is met. Wenn die Auswirkung „append“ einen Wert in der ursprünglichen Anforderung mit einem anderen Wert überschreiben würde, fungiert sie als Auswirkung „deny“ und lehnt die Anforderung ab.If the append effect would override a value in the original request with a different value, then it acts as a deny effect and rejects the request. Um einen neuen Wert an ein vorhandenes Array anzufügen, verwenden Sie die [*] -Version des Alias.To append a new value to an existing array, use the [*] version of the alias.

Wenn eine Richtliniendefinition mit Auswirkung „append“ im Rahmen eines Auswertungszyklus ausgeführt wird, werden keine Änderungen an bereits vorhandenen Ressourcen durchgeführt.When a policy definition using the append effect is run as part of an evaluation cycle, it doesn't make changes to resources that already exist. Stattdessen werden alle Ressourcen mit Erfüllung der if-Bedingung als nicht konform markiert.Instead, it marks any resource that meets the if condition as non-compliant.

Eigenschaften von „append“Append properties

Die Auswirkung „append“ weist nur ein Array details auf, das erforderlich ist.An append effect only has a details array, which is required. Da es sich bei details um ein Array handelt, kann es entweder ein einzelnes field/value-Paar oder mehrere Wertepaare verwenden.As details is an array, it can take either a single field/value pair or multiples. Eine Liste der gültigen Felder finden Sie unter Struktur von Azure Policy-Definitionen.Refer to definition structure for the list of acceptable fields.

Beispiele für „append“Append examples

Beispiel 1: Einzelnes field/value-Paar, das einen Nicht- [*] -Alias mit einem Arraywert (value) verwendet, um IP-Regeln für ein Speicherkonto festzulegen.Example 1: Single field/value pair using a non-[*] alias with an array value to set IP rules on a storage account. Wenn der Nicht- [*] -Alias ein Array ist, wird der value durch den Effekt als gesamtes Array angefügt.When the non-[*] alias is an array, the effect appends the value as the entire array. Wenn das Array bereits vorhanden ist, wird durch den Konflikt ein deny-Ereignis ausgelöst.If the array already exists, a deny event occurs from the conflict.

"then": {
    "effect": "append",
    "details": [{
        "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules",
        "value": [{
            "action": "Allow",
            "value": "134.5.0.0/21"
        }]
    }]
}

Beispiel 2: Einzelnes field/value-Paar, das einen [*] -Alias mit einem Array-value verwendet, um IP-Regeln für ein Speicherkonto festzulegen.Example 2: Single field/value pair using an [*] alias with an array value to set IP rules on a storage account. Durch die Verwendung des [*] -Alias fügt der Effekt den value an ein Array an, das möglicherweise bereits vorhanden ist.By using the [*] alias, the effect appends the value to a potentially pre-existing array. Wenn das Array noch nicht vorhanden ist, wird es erstellt.If the array doesn't exist yet, it will be created.

"then": {
    "effect": "append",
    "details": [{
        "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules[*]",
        "value": {
            "value": "40.40.40.40",
            "action": "Allow"
        }
    }]
}

ÄndernModify

„Modify“ wird verwendet, um Tags während der Erstellung oder Aktualisierung einer Ressource hinzuzufügen, zu aktualisieren oder zu entfernen.Modify is used to add, update, or remove tags on a resource during creation or update. Ein häufiges Beispiel ist die Aktualisierung von Tags für Ressourcen wie „costCenter“.A common example is updating tags on resources such as costCenter. Für eine Modify-Richtlinie sollte mode immer auf Indexed festgelegt sein, es sei denn, die Zielressource ist eine Ressourcengruppe.A Modify policy should always have mode set to Indexed unless the target resource is a resource group. Bestehende, nicht konforme Ressourcen können mit einem Wartungstask bereinigt werden.Existing non-compliant resources can be remediated with a remediation task. Eine einzelne Modify-Regel kann eine beliebige Anzahl von Vorgängen aufweisen.A single Modify rule can have any number of operations.

Wichtig

Modify ist derzeit nur für die Verwendung mit Tags vorgesehen.Modify is currently only for use with tags. Wenn Sie Tags verwalten, wird empfohlen, „Modify“ anstelle von „Append“ zu verwenden, da „Modify“ zusätzliche Vorgangstypen und die Möglichkeit bietet, vorhandene Ressourcen zu korrigieren.If you are managing tags, it's recommended to use Modify instead of Append as Modify provides additional operation types and the ability to remediate existing resources. „Append“ wird jedoch empfohlen, wenn Sie keine verwaltete Identität erstellen können.However, Append is recommended if you aren't able to create a managed identity.

Auswertung von „Modify“Modify evaluation

Die Auswertung von „Modify“ erfolgt vor der Anforderungsverarbeitung durch einen Ressourcenanbieter während der Erstellung oder Aktualisierung einer Ressource.Modify evaluates before the request gets processed by a Resource Provider during the creation or updating of a resource. Mit „Modify“ werden Tags einer Ressource hinzugefügt oder aktualisiert, wenn die if-Bedingung der Richtlinienregel erfüllt ist.Modify adds or updates tags on a resource when the if condition of the policy rule is met.

Wenn eine Richtliniendefinition mit Auswirkung „Modify“ im Rahmen eines Auswertungszyklus ausgeführt wird, werden keine Änderungen an bereits vorhandenen Ressourcen durchgeführt.When a policy definition using the Modify effect is run as part of an evaluation cycle, it doesn't make changes to resources that already exist. Stattdessen werden alle Ressourcen mit Erfüllung der if-Bedingung als nicht konform markiert.Instead, it marks any resource that meets the if condition as non-compliant.

Eigenschaften von „Modify“Modify properties

Die details-Eigenschaft der Modify-Auswirkung enthält alle Untereigenschaften, die die für die Bereinigung erforderlichen Berechtigungen definieren, und die Vorgänge, mit denen Tagwerte hinzugefügt, aktualisiert oder entfernt werden.The details property of the Modify effect has all the subproperties that define the permissions needed for remediation and the operations used to add, update, or remove tag values.

  • roleDefinitionIds [erforderlich]roleDefinitionIds [required]
    • Diese Eigenschaft muss ein Array von Zeichenfolgen enthalten, das mit der Rollen-ID der rollenbasierten Zugriffssteuerung übereinstimmt, auf die das Abonnement zugreifen kann.This property must include an array of strings that match role-based access control role ID accessible by the subscription. Weitere Informationen finden Sie unter Korrigieren nicht konformer Ressourcen.For more information, see remediation - configure policy definition.
    • Die definierte Rolle muss alle Vorgänge einbeziehen, die der Rolle Mitwirkender erteilt wurden.The role defined must include all operations granted to the Contributor role.
  • operations [erforderlich]operations [required]
    • Ein Array aller Tagvorgänge, die auf übereinstimmenden Ressourcen ausgeführt werden sollen.An array of all tag operations to be completed on matching resources.
    • Eigenschaften:Properties:
      • operation [erforderlich]operation [required]
        • Definiert, welche Maßnahme bei einer übereinstimmenden Ressource ergriffen werden sollen.Defines what action to take on a matching resource. Optionen sind: addOrReplace, Add, Remove.Options are: addOrReplace, Add, Remove. Add verhält sich ähnlich wie die Append-Auswirkung.Add behaves similar to the Append effect.
      • field [erforderlich]field [required]
        • Das Tag, das hinzugefügt, ersetzt oder entfernt werden soll.The tag to add, replace, or remove. Tagnamen müssen derselben Namenskonvention für andere Felder entsprechen.Tag names must adhere to the same naming convention for other fields.
      • value (optional)value (optional)
        • Der Wert, auf den das Tag festgelegt werden soll.The value to set the tag to.
        • Diese Eigenschaft ist erforderlich, wenn operation addOrReplace oder Add ist.This property is required if operation is addOrReplace or Add.

Vorgänge für „Modify“Modify operations

Das operations-Eigenschaftenarray ermöglicht es, mehrere Tags auf unterschiedliche Weise aus einer einzelnen Richtliniendefinition zu ändern.The operations property array makes it possible to alter several tags in different ways from a single policy definition. Jeder Vorgang besteht aus den Eigenschaften operation, field und value.Each operation is made up of operation, field, and value properties. „Operation“ bestimmt, wie die Wartungsaufgabe mit den Tags verfährt, „field“ bestimmt, welches Tag geändert wird und „value“ definiert die neue Einstellung für dieses Tag.Operation determines what the remediation task does to the tags, field determines which tag is altered, and value defines the new setting for that tag. Das folgende Beispiel führt die folgenden Tagänderungen durch:The example below makes the following tag changes:

  • Legt das environment-Tag auf „Test“ fest, auch wenn es bereits mit einem anderen Wert vorhanden ist.Sets the environment tag to "Test", even if it already exists with a different value.
  • Entfernt das Tag TempResource.Removes the tag TempResource.
  • Legt das Dept-Tag auf den Richtlinienparameter DeptName fest, der bei der Richtlinienzuweisung konfiguriert wurde.Sets the Dept tag to the policy parameter DeptName configured on the policy assignment.
"details": {
    ...
    "operations": [
        {
            "operation": "addOrReplace",
            "field": "tags['environment']",
            "value": "Test"
        },
        {
            "operation": "Remove",
            "field": "tags['TempResource']",
        },
        {
            "operation": "addOrReplace",
            "field": "tags['Dept']",
            "value": "[parameters('DeptName')]"
        }
    ]
}

Die operation-Eigenschaft hat die folgenden Optionen:The operation property has the following options:

VorgangOperation BESCHREIBUNGDescription
addOrReplaceaddOrReplace Fügt das definierte Tag und den Wert zur Ressource hinzu, auch wenn das Tag bereits mit einem anderen Wert vorhanden ist.Adds the defined tag and value to the resource, even if the tag already exists with a different value.
HinzufügenAdd Fügt der Ressource das definierte Tag und den definierten Wert hinzu.Adds the defined tag and value to the resource.
Remove (Entfernen)Remove Entfernt das definierte Tag aus der Ressource.Removes the defined tag from the resource.

Beispiele für „Modify“Modify examples

Beispiel 1: Fügen Sie das environment-Tag hinzu, und ersetzen Sie vorhandene environment-Tags durch „Test“:Example 1: Add the environment tag and replace existing environment tags with "Test":

"then": {
    "effect": "modify",
    "details": {
        "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "operations": [
            {
                "operation": "addOrReplace",
                "field": "tags['environment']",
                "value": "Test"
            }
        ]
    }
}

Beispiel 2: Entfernen Sie das env-Tag, und fügen Sie das environment-Tag hinzu oder ersetzen Sie vorhandene environment-Tags durch einen parametrisierten Wert:Example 2: Remove the env tag and add the environment tag or replace existing environment tags with a parameterized value:

"then": {
    "effect": "modify",
    "details": {
        "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "operations": [
            {
                "operation": "Remove",
                "field": "tags['env']"
            },
            {
                "operation": "addOrReplace",
                "field": "tags['environment']",
                "value": "[parameters('tagValue')]"
            }
        ]
    }
}

VerweigernDeny

Mit „deny“ werden Ressourcenanforderungen abgelehnt, welche die über eine Richtliniendefinition festgelegten Standards nicht erfüllen. Für die Anforderung wird anschließend ein Fehler ausgegeben.Deny is used to prevent a resource request that doesn't match defined standards through a policy definition and fails the request.

Auswertung von „deny“Deny evaluation

Beim Erstellen oder Aktualisieren einer übereinstimmenden Ressource verhindert „deny“, dass die Anforderung an den Ressourcenanbieter gesendet wird.When creating or updating a matched resource, deny prevents the request before being sent to the Resource Provider. Für die Anforderung wird 403 (Forbidden) zurückgegeben.The request is returned as a 403 (Forbidden). Im Portal kann „Verboten“ als Status für die Bereitstellung angezeigt werden, die durch die Richtlinienzuweisung verhindert wurde.In the portal, the Forbidden can be viewed as a status on the deployment that was prevented by the policy assignment.

Während der Auswertung vorhandener Ressourcen werden Ressourcen, die einer „deny“-Richtliniendefinition entsprechen, als nicht konform markiert.During evaluation of existing resources, resources that match a deny policy definition are marked as non-compliant.

Eigenschaften von „deny“Deny properties

Die Auswirkung „deny“ umfasst keine zusätzlichen Eigenschaften zur Verwendung in der then-Bedingung der Richtliniendefinition.The deny effect doesn't have any additional properties for use in the then condition of the policy definition.

Beispiel für „deny“Deny example

Beispiel: Verwendung der Auswirkung „deny“Example: Using the deny effect.

"then": {
    "effect": "deny"
}

AuditAudit

Die Auswirkung „audit“ wird verwendet, um ein Warnungsereignis im Aktivitätsprotokoll zu erstellen, wenn eine nicht konforme Ressource ausgewertet wird. Die Anforderung wird jedoch nicht beendet.Audit is used to create a warning event in the activity log when evaluating a non-compliant resource, but it doesn't stop the request.

Auswertung von „audit“Audit evaluation

„audit“ ist die letzte Auswirkung, die von Azure Policy während der Erstellung oder Aktualisierung einer Ressource überprüft wird.Audit is the last effect checked by Azure Policy during the creation or update of a resource. Azure Policy sendet dann die Ressource an den Ressourcenanbieter.Azure Policy then sends the resource to the Resource Provider. „audit“ funktioniert bei einer Ressourcenanforderung und einem Auswertungszyklus auf gleiche Weise.Audit works the same for a resource request and an evaluation cycle. Azure Policy fügt dem Aktivitätsprotokoll einen Microsoft.Authorization/policies/audit/action-Vorgang hinzu und markiert die Ressource als nicht konform.Azure Policy adds a Microsoft.Authorization/policies/audit/action operation to the activity log and marks the resource as non-compliant.

Eigenschaften von „audit“Audit properties

Die Auswirkung „audit“ umfasst keine zusätzlichen Eigenschaften zur Verwendung in der then-Bedingung der Richtliniendefinition.The audit effect doesn't have any additional properties for use in the then condition of the policy definition.

Beispiel für „audit“Audit example

Beispiel: Verwendung der Auswirkung „audit“Example: Using the audit effect.

"then": {
    "effect": "audit"
}

Auswirkung „AuditIfNotExists“AuditIfNotExists

Die Auswirkung „AuditIfNotExists“ ermöglicht das Überwachen von Ressourcen, welche die if-Bedingung erfüllen, für die aber keine Komponenten in details der then -Bedingung angegeben sind.AuditIfNotExists enables auditing on resources that match the if condition, but doesn't have the components specified in the details of the then condition.

Auswertung von „AuditIfNotExists“AuditIfNotExists evaluation

„AuditIfNotExists“ wird ausgeführt, nachdem ein Ressourcenanbieter eine Anforderung zum Erstellen oder Aktualisieren einer Ressource verarbeitet hat und ein Erfolgsstatuscode zurückgegeben wurde.AuditIfNotExists runs after a Resource Provider has handled a create or update resource request and has returned a success status code. Die Überprüfung findet statt, wenn keine entsprechenden Ressourcen vorhanden sind oder wenn die über ExistenceCondition definierten Ressourcen nicht als TRUE ausgewertet werden.The audit occurs if there are no related resources or if the resources defined by ExistenceCondition don't evaluate to true. Azure Policy fügt dem Aktivitätsprotokoll auf gleiche Weise wie bei der Auswirkung „audit“ einen Microsoft.Authorization/policies/audit/action-Vorgang hinzu.Azure Policy adds a Microsoft.Authorization/policies/audit/action operation to the activity log the same way as the audit effect. Bei Auslösung ist die Ressource, die die if-Bedingung erfüllt hat, die Ressource, die als nicht konform markiert wird.When triggered, the resource that satisfied the if condition is the resource that is marked as non-compliant.

Eigenschaften von „AuditIfNotExists“AuditIfNotExists properties

Die details-Eigenschaft der Auswirkung „AuditIfNotExists“ umfasst die folgenden Untereigenschaften zur Definition der entsprechenden Ressourcen für den Abgleich.The details property of the AuditIfNotExists effects has all the subproperties that define the related resources to match.

  • Type [erforderlich]Type [required]
    • Gibt den Typ der entsprechenden abzugleichenden Ressource an.Specifies the type of the related resource to match.
    • Wenn es sich bei details.type um einen Ressourcentyp unterhalb der Bedingungsressource if handelt, fragt die Richtlinie Ressourcen dieses Typs innerhalb des Bereichs der ausgewerteten Ressource ab.If details.type is a resource type underneath the if condition resource, the policy queries for resources of this type within the scope of the evaluated resource. Andernfalls erfolgen Abfragen der Richtlinie innerhalb der gleichen Ressourcengruppe wie die ausgewertete Ressource.Otherwise, policy queries within the same resource group as the evaluated resource.
  • Name (optional)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.Specifies the exact name of the resource to match and causes the policy to fetch one specific resource instead of all resources of the specified type.
    • Wenn die Werte der Bedingung für if.field.type und then.details.type übereinstimmen, wird Name erforderlich und muss [field('name')] sein.When the condition values for if.field.type and then.details.type match, then Name becomes required and must be [field('name')]. Allerdings sollte stattdessen ein audit-Effekt in Erwägung gezogen werden.However, an audit effect should be considered instead.
  • ResourceGroupName (optional)ResourceGroupName (optional)
    • Hierdurch ist es möglich, für den Abgleich eine Ressource aus einer anderen Ressourcengruppe festzulegen.Allows the matching of the related resource to come from a different resource group.
    • Diese Einstellung ist nicht anwendbar, wenn type eine Ressource unterhalb der if-Bedingungsressource angibt.Doesn't apply if type is a resource that would be underneath the if condition resource.
    • Standardmäßig wird die Ressourcengruppe der if-Bedingungsressource verwendet.Default is the if condition resource's resource group.
  • ExistenceScope (optional)ExistenceScope (optional)
    • Zulässige Werte sind Subscription und ResourceGroup.Allowed values are Subscription and ResourceGroup.
    • Legt den Bereich fest, aus dem die entsprechende Ressource für den Abgleich abgerufen werden soll.Sets the scope of where to fetch the related resource to match from.
    • Diese Einstellung ist nicht anwendbar, wenn type eine Ressource unterhalb der if-Bedingungsressource angibt.Doesn't apply if type is a resource that would be underneath the if condition resource.
    • Für ResourceGroup bedeutet dies eine Beschränkung auf die Ressourcengruppe der if -Bedingungsressource oder die in ResourceGroupName angegebene Ressourcengruppe.For ResourceGroup, would limit to the if condition resource's resource group or the resource group specified in ResourceGroupName.
    • Für Subscription wird das gesamte Abonnement nach der entsprechenden Ressource abgefragt.For Subscription, queries the entire subscription for the related resource.
    • Die Standardeinstellung ist ResourceGroup.Default is ResourceGroup.
  • ExistenceCondition (optional)ExistenceCondition (optional)
    • Sofern nicht angegeben, erfüllt jede Ressource mit entsprechendem type die Bedingung der Auswirkung und löst keine Überwachung aus.If not specified, any related resource of type satisfies the effect and doesn't trigger the audit.
    • Verwendet dieselbe Sprachsyntax wie die Richtlinienregel für die if-Bedingung, wird jedoch für jede entsprechende Ressource einzeln ausgeführt.Uses the same language as the policy rule for the if condition, but is evaluated against each related resource individually.
    • Wenn eine übereinstimmende Ressource als TRUE ausgewertet wird, ist die Auswirkung erfüllt und löst keine Überwachung aus.If any matching related resource evaluates to true, the effect is satisfied and doesn't trigger the audit.
    • [field()] kann verwendet werden, um auf Äquivalenz mit Werten in der if-Bedingung zu überprüfen.Can use [field()] to check equivalence with values in the if condition.
    • Beispielsweise könnte so überprüft werden, ob die übergeordnete Ressource (in der if-Bedingung) sich am selben Ressourcenstandort befindet wie die übereinstimmende Ressource.For example, could be used to validate that the parent resource (in the if condition) is in the same resource location as the matching related resource.

Beispiel für „AuditIfNotExists“AuditIfNotExists example

Beispiel: Mithilfe einer Auswertung wird ermittelt, ob die Antischadsoftware-Erweiterung auf virtuellen Computern vorhanden ist. Fehlt die Erweiterung, wird eine Überwachung ausgelöst.Example: Evaluates Virtual Machines to determine if the Antimalware extension exists then audits when missing.

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

Auswirkung „DeployIfNotExists“DeployIfNotExists

Ähnlich wie „AuditIfNotExists“ führt eine „DeployIfNotExists“-Richtliniendefinition eine Vorlagenbereitstellung durch, wenn die Bedingung erfüllt ist.Similar to AuditIfNotExists, a DeployIfNotExists policy definition executes a template deployment when the condition is met.

Hinweis

Geschachtelte Vorlagen werden mit deployIfNotExists unterstützt, verknüpfte Vorlagen werden derzeit jedoch nicht unterstützt.Nested templates are supported with deployIfNotExists, but linked templates are currently not supported.

Auswertung von „DeployIfNotExists“DeployIfNotExists evaluation

„DeployIfNotExists“ wird ausgeführt, nachdem ein Ressourcenanbieter eine Anforderung zum Erstellen oder Aktualisieren einer Ressource verarbeitet hat und ein Erfolgsstatuscode zurückgegeben wurde.DeployIfNotExists runs after a Resource Provider has handled a create or update resource request and has returned a success status code. Eine Vorlagenbereitstellung findet statt, wenn keine entsprechenden Ressourcen vorhanden sind oder wenn die über ExistenceCondition definierten Ressourcen nicht als TRUE ausgewertet werden.A template deployment occurs if there are no related resources or if the resources defined by ExistenceCondition don't evaluate to true.

Während eines Auswertungszyklus führen Richtliniendefinitionen mit der Auswirkung „DeployIfNotExists“ dazu, dass übereinstimmende Ressourcen als nicht konform markiert werden. Es wird aber keine Aktion für diese Ressource ausgeführt.During an evaluation cycle, policy definitions with a DeployIfNotExists effect that match resources are marked as non-compliant, but no action is taken on that resource.

Eigenschaften von „DeployIfNotExists“DeployIfNotExists properties

Die details-Eigenschaft der Auswirkung „DeployIfNotExists“ umfasst alle Untereigenschaften, die die entsprechenden Ressourcen für den Abgleich und die auszuführende Vorlagenbereitstellung definieren.The details property of the DeployIfNotExists effect has all the subproperties that define the related resources to match and the template deployment to execute.

  • Type [erforderlich]Type [required]

    • Gibt den Typ der entsprechenden abzugleichenden Ressource an.Specifies the type of the related resource to match.
    • Zunächst wird versucht, eine Ressource unterhalb der if-Bedingungsressource abzurufen, anschließend wird eine Abfrage innerhalb derselben Ressourcengruppe wie der if-Bedingungsressource durchgeführt.Starts by trying to fetch a resource underneath the if condition resource, then queries within the same resource group as the if condition resource.
  • Name (optional)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.Specifies the exact name of the resource to match and causes the policy to fetch one specific resource instead of all resources of the specified type.
    • Wenn die Werte der Bedingung für if.field.type und then.details.type übereinstimmen, wird Name erforderlich und muss [field('name')] sein.When the condition values for if.field.type and then.details.type match, then Name becomes required and must be [field('name')].
  • ResourceGroupName (optional)ResourceGroupName (optional)

    • Hierdurch ist es möglich, für den Abgleich eine Ressource aus einer anderen Ressourcengruppe festzulegen.Allows the matching of the related resource to come from a different resource group.
    • Diese Einstellung ist nicht anwendbar, wenn type eine Ressource unterhalb der if-Bedingungsressource angibt.Doesn't apply if type is a resource that would be underneath the if condition resource.
    • Standardmäßig wird die Ressourcengruppe der if-Bedingungsressource verwendet.Default is the if condition resource's resource group.
    • Wenn eine Vorlagenbereitstellung durchgeführt wird, erfolgt diese in der Ressourcengruppe, die über diesen Wert angegeben wurde.If a template deployment is executed, it's deployed in the resource group of this value.
  • ExistenceScope (optional)ExistenceScope (optional)

    • Zulässige Werte sind Subscription und ResourceGroup.Allowed values are Subscription and ResourceGroup.
    • Legt den Bereich fest, aus dem die entsprechende Ressource für den Abgleich abgerufen werden soll.Sets the scope of where to fetch the related resource to match from.
    • Diese Einstellung ist nicht anwendbar, wenn type eine Ressource unterhalb der if-Bedingungsressource angibt.Doesn't apply if type is a resource that would be underneath the if condition resource.
    • Für ResourceGroup bedeutet dies eine Beschränkung auf die Ressourcengruppe der if -Bedingungsressource oder die in ResourceGroupName angegebene Ressourcengruppe.For ResourceGroup, would limit to the if condition resource's resource group or the resource group specified in ResourceGroupName.
    • Für Subscription wird das gesamte Abonnement nach der entsprechenden Ressource abgefragt.For Subscription, queries the entire subscription for the related resource.
    • Die Standardeinstellung ist ResourceGroup.Default is ResourceGroup.
  • ExistenceCondition (optional)ExistenceCondition (optional)

    • Sofern nicht angegeben, erfüllt jede entsprechende Ressource mit type die Bedingung der Auswirkung und löst keine Bereitstellung aus.If not specified, any related resource of type satisfies the effect and doesn't trigger the deployment.
    • Verwendet dieselbe Sprachsyntax wie die Richtlinienregel für die if-Bedingung, wird jedoch für jede entsprechende Ressource einzeln ausgeführt.Uses the same language as the policy rule for the if condition, but is evaluated against each related resource individually.
    • Wenn eine übereinstimmende Ressource als TRUE ausgewertet wird, ist die Auswirkung erfüllt und löst keine Bereitstellung aus.If any matching related resource evaluates to true, the effect is satisfied and doesn't trigger the deployment.
    • [field()] kann verwendet werden, um auf Äquivalenz mit Werten in der if-Bedingung zu überprüfen.Can use [field()] to check equivalence with values in the if condition.
    • Beispielsweise könnte so überprüft werden, ob die übergeordnete Ressource (in der if-Bedingung) sich am selben Ressourcenstandort befindet wie die übereinstimmende Ressource.For example, could be used to validate that the parent resource (in the if condition) is in the same resource location as the matching related resource.
  • roleDefinitionIds [erforderlich]roleDefinitionIds [required]

    • Diese Eigenschaft muss ein Array von Zeichenfolgen enthalten, das mit der Rollen-ID der rollenbasierten Zugriffssteuerung übereinstimmt, auf die das Abonnement zugreifen kann.This property must include an array of strings that match role-based access control role ID accessible by the subscription. Weitere Informationen finden Sie unter Korrigieren nicht konformer Ressourcen.For more information, see remediation - configure policy definition.
  • DeploymentScope (optional)DeploymentScope (optional)

    • Zulässige Werte sind Subscription und ResourceGroup.Allowed values are Subscription and ResourceGroup.
    • Legt den Typ der auszulösenden Bereitstellung fest.Sets the type of deployment to be triggered. Mit Subscription wird eine Bereitstellung auf Abonnementebene und mit ResourceGroup eine Bereitstellung in einer Ressourcengruppe angegeben.Subscription indicates a deployment at subscription level, ResourceGroup indicates a deployment to a resource group.
    • Bei der Bereitstellung auf Abonnementebene muss in Deployment eine location-Eigenschaft angegeben werden.A location property must be specified in the Deployment when using subscription level deployments.
    • Die Standardeinstellung ist ResourceGroup.Default is ResourceGroup.
  • Deployment [erforderlich]Deployment [required]

    • Diese Eigenschaft muss die vollständige Vorlagenbereitstellung enthalten, so wie sie an die PUT-API Microsoft.Resources/deployments übergeben würde.This property should include the full template deployment as it would be passed to the Microsoft.Resources/deployments PUT API. Weitere Informationen finden Sie im Artikel zur REST-API für die Bereitstellung.For more information, see the Deployments REST API.

    Hinweis

    Alle Funktionen innerhalb der Deployment-Eigenschaft werden als Komponenten der Vorlage – nicht der Richtlinie – ausgewertet.All functions inside the Deployment property are evaluated as components of the template, not the policy. Eine Ausnahme ist die Eigenschaft parameters, die Werte von der Richtlinie an die Vorlage übergibt.The exception is the parameters property that passes values from the policy to the template. Der in diesem Abschnitt unter einem Vorlagenparameternamen angegebene Wert für value wird verwendet, um diese Wertübergabe durchzuführen (siehe fullDbName im DeployIfNotExists-Beispiel).The value in this section under a template parameter name is used to perform this value passing (see fullDbName in the DeployIfNotExists example).

Beispiel für „DeployIfNotExists“DeployIfNotExists example

Beispiel: Mithilfe einer Auswertung von SQL Server-Datenbanken wird bestimmt, ob „transparentDataEncryption“ aktiviert ist.Example: Evaluates SQL Server databases to determine if transparentDataEncryption is enabled. Falls nicht, wird eine Bereitstellung zur Aktivierung dieser Option durchgeführt.If not, then a deployment to enable is executed.

"if": {
    "field": "type",
    "equals": "Microsoft.Sql/servers/databases"
},
"then": {
    "effect": "DeployIfNotExists",
    "details": {
        "type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
        "name": "current",
        "roleDefinitionIds": [
            "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
            "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
        ],
        "existenceCondition": {
            "field": "Microsoft.Sql/transparentDataEncryption.status",
            "equals": "Enabled"
        },
        "deployment": {
            "properties": {
                "mode": "incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {
                        "fullDbName": {
                            "type": "string"
                        }
                    },
                    "resources": [{
                        "name": "[concat(parameters('fullDbName'), '/current')]",
                        "type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
                        "apiVersion": "2014-04-01",
                        "properties": {
                            "status": "Enabled"
                        }
                    }]
                },
                "parameters": {
                    "fullDbName": {
                        "value": "[field('fullName')]"
                    }
                }
            }
        }
    }
}

EnforceOPAConstraintEnforceOPAConstraint

Diese Auswirkung wird bei einer Richtliniendefinition mit dem Modus Microsoft.Kubernetes.Data verwendet.This effect is used with a policy definition mode of Microsoft.Kubernetes.Data. Sie dient zum Übergeben von Gatekeeper v3-Zugangskontrollregeln, die mit OPA Constraint Framework definiert wurden, an Open Policy Agent (OPA) für selbstverwaltete Kubernetes-Cluster in Azure.It's used to pass Gatekeeper v3 admission control rules defined with OPA Constraint Framework to Open Policy Agent (OPA) to self-managed Kubernetes clusters on Azure.

Hinweis

Azure Policy für die AKS-Engine befindet sich in der öffentlichen Vorschauphase und unterstützt nur integrierte Richtliniendefinitionen.Azure Policy for AKS Engine is in Public Preview and only supports built-in policy definitions.

Auswertung von EnforceOPAConstraintEnforceOPAConstraint evaluation

Der Zugangscontroller des Open Policy Agent bewertet jede neue Anforderung an den Cluster in Echtzeit.The Open Policy Agent admission controller evaluates any new request on the cluster in real time. Alle 5 Minuten erfolgt ein vollständiger Scan des Clusters, dessen Ergebnisse Azure Policy gemeldet werden.Every 5 minutes, a full scan of the cluster is completed and the results reported to Azure Policy.

EnforceOPAConstraint-EigenschaftenEnforceOPAConstraint properties

Die Eigenschaft details der Auswirkung EnforceOPAConstraint hat die Untereigenschaften, die die Gatekeeper v3-Zugangskontrollregel beschreiben.The details property of the EnforceOPAConstraint effect has the subproperties that describe the Gatekeeper v3 admission control rule.

  • constraintTemplate [erforderlich]constraintTemplate [required]
    • Die Einschränkungsvorlage CustomResourceDefinition (CRD), die neue Einschränkungen definiert.The Constraint template CustomResourceDefinition (CRD) that defines new Constraints. Die Vorlage definiert die Rego-Logik, das Einschränkungsschema und die Einschränkungsparameter, die über values von Azure Policy übergeben werden.The template defines the Rego logic, the Constraint schema, and the Constraint parameters which are passed via values from Azure Policy.
  • constraint [erforderlich]constraint [required]
    • Die CRD-Implementierung der Einschränkungsvorlage.The CRD implementation of the Constraint template. Verwendet Parameter, die über values als {{ .Values.<valuename> }}übergeben werden.Uses parameters passed via values as {{ .Values.<valuename> }}. Im folgenden Beispiel sind das {{ .Values.cpuLimit }} und {{ .Values.memoryLimit }}.In the example below, this would be {{ .Values.cpuLimit }} and {{ .Values.memoryLimit }}.
  • values [optional]values [optional]
    • Definiert Parameter und Werte, die an die Einschränkung übergeben werden.Defines any parameters and values to pass to the Constraint. Jeder Wert muss in der CRD der Einschränkungsvorlage vorhanden sein.Each value must exist in the Constraint template CRD.

Beispiel für EnforceRegoPolicyEnforceRegoPolicy example

Beispiel: Gatekeeper v3-Zugangskontrollregel, um Ressourcenlimits für CPU- und Arbeitsspeicher für einen Container in der AKS-Engine festzulegen.Example: Gatekeeper v3 admission control rule to set container CPU and memory resource limits in AKS Engine.

"if": {
    "allOf": [
        {
            "field": "type",
            "in": [
                "Microsoft.ContainerService/managedClusters",
                "AKS Engine"
            ]
        },
        {
            "field": "location",
            "equals": "westus2"
        }
    ]
},
"then": {
    "effect": "enforceOPAConstraint",
    "details": {
        "constraintTemplate": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-resource-limits/template.yaml",
        "constraint": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-resource-limits/constraint.yaml",
        "values": {
            "cpuLimit": "[parameters('cpuLimit')]",
            "memoryLimit": "[parameters('memoryLimit')]"
        }
    }
}

EnforceRegoPolicyEnforceRegoPolicy

Diese Auswirkung wird bei einer Richtliniendefinition mit dem Modus Microsoft.ContainerService.Data verwendet.This effect is used with a policy definition mode of Microsoft.ContainerService.Data. Sie dient zum Übergeben von Gatekeeper v2-Zugangskontrollregeln, die mit Rego definiert wurden, an Open Policy Agent (OPA) für Azure Kubernetes Service.It's used to pass Gatekeeper v2 admission control rules defined with Rego to Open Policy Agent (OPA) on Azure Kubernetes Service.

Hinweis

Azure Policy für AKS befindet sich in der eingeschränkten Vorschauversion und unterstützt nur integrierte Richtliniendefinitionen.Azure Policy for AKS is in Limited Preview and only supports built-in policy definitions

Auswertung von EnforceRegoPolicyEnforceRegoPolicy evaluation

Der Zugangscontroller des Open Policy Agent bewertet jede neue Anforderung an den Cluster in Echtzeit.The Open Policy Agent admission controller evaluates any new request on the cluster in real time. Alle 5 Minuten erfolgt ein vollständiger Scan des Clusters, dessen Ergebnisse Azure Policy gemeldet werden.Every 5 minutes, a full scan of the cluster is completed and the results reported to Azure Policy.

EnforceRegoPolicy-EigenschaftenEnforceRegoPolicy properties

Die Eigenschaft details der Auswirkung EnforceRegoPolicy hat die Untereigenschaften, die die Gatekeeper v2-Zugangskontrollregel beschreiben.The details property of the EnforceRegoPolicy effect has the subproperties that describe the Gatekeeper v2 admission control rule.

  • policyId [erforderlich]policyId [required]
    • Ein eindeutiger Name, der als Parameter an die Rego-Zugangskontrollregel übergeben wird.A unique name passed as a parameter to the Rego admission control rule.
  • policy [erforderlich]policy [required]
    • Gibt den URI der Rego-Zugangskontrollregel an.Specifies the URI of the Rego admission control rule.
  • policyParameters [optional]policyParameters [optional]
    • Definiert Parameter und Werte, die an die Rego-Richtlinie übergeben werden.Defines any parameters and values to pass to the rego policy.

Beispiel für EnforceRegoPolicyEnforceRegoPolicy example

Beispiel: Gatekeeper v2-Zugangskontrollregel, um nur die angegebenen Containerimages in AKS zuzulassen.Example: Gatekeeper v2 admission control rule to allow only the specified container images in AKS.

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.ContainerService/managedClusters"
        },
        {
            "field": "location",
            "equals": "westus2"
        }
    ]
},
"then": {
    "effect": "EnforceRegoPolicy",
    "details": {
        "policyId": "ContainerAllowedImages",
        "policy": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/KubernetesService/container-allowed-images/limited-preview/gatekeeperpolicy.rego",
        "policyParameters": {
            "allowedContainerImagesRegex": "[parameters('allowedContainerImagesRegex')]"
        }
    }
}

Mehrere RichtlinienLayering policies

Eine Ressource kann durch mehrere Zuweisungen beeinflusst werden.A resource may be impacted by several assignments. Diese Zuweisungen können für denselben Bereich oder verschiedene Bereiche gelten.These assignments may be at the same scope or at different scopes. Für jede dieser Zuweisungen ist wahrscheinlich auch eine andere Auswirkung definiert.Each of these assignments is also likely to have a different effect defined. Die Bedingung und die Auswirkung für jede Richtlinie werden unabhängig ausgewertet.The condition and effect for each policy is independently evaluated. Beispiel:For example:

  • Richtlinie 1Policy 1
    • Schränkt den Ressourcenstandort auf „USA, Westen“ einRestricts resource location to 'westus'
    • Abonnement A zugewiesenAssigned to subscription A
    • Auswirkung „deny“Deny effect
  • Richtlinie 2Policy 2
    • Schränkt den Ressourcenstandort auf „USA, Osten“ einRestricts resource location to 'eastus'
    • Ressourcengruppe B im Abonnement A zugewiesenAssigned to resource group B in subscription A
    • Auswirkung „audit“Audit effect

Dies würde zu folgendem Ergebnis führen:This setup would result in the following outcome:

  • Jede Ressource, die sich bereits in Ressourcengruppe B und am Standort „USA, Osten“ befindet, ist gemäß Richtlinie 2 konform und gemäß Richtlinie 1 nicht konform.Any resource already in resource group B in 'eastus' is compliant to policy 2 and non-compliant to policy 1
  • Jede Ressource, die sich bereits in Ressourcengruppe B und nicht am Standort „USA, Osten“ befindet, ist gemäß Richtlinie 2 nicht konform und auch gemäß Richtlinie 1 nicht konform, wenn sie sich nicht am Standort „USA, Westen“ befindet.Any resource already in resource group B not in 'eastus' is non-compliant to policy 2 and non-compliant to policy 1 if not in 'westus'
  • Jede neue Ressource in Abonnement A, die nicht am Standort „USA, Westen“ erstellt wird, wird von Richtlinie 1 abgelehnt.Any new resource in subscription A not in 'westus' is denied by policy 1
  • Jede neue Ressource in Abonnement A und Ressourcengruppe B am Standort „USA, Westen“ wird erstellt und ist gemäß Richtlinie 2 nicht konform.Any new resource in subscription A and resource group B in 'westus' is created and non-compliant on policy 2

Wenn sowohl Richtlinie 1 als auch Richtlinie 2 die Auswirkung „deny“ verwenden, ändert sich die Situation folgendermaßen:If both policy 1 and policy 2 had effect of deny, the situation changes to:

  • Jede Ressource, die sich bereits in Ressourcengruppe B und nicht am Standort „USA, Osten“ befindet, ist gemäß Richtlinie 2 nicht konform.Any resource already in resource group B not in 'eastus' is non-compliant to policy 2
  • Jede Ressource, die sich bereits in Ressourcengruppe B und nicht am Standort „USA, Westen“ befindet, ist gemäß Richtlinie 1 nicht konform.Any resource already in resource group B not in 'westus' is non-compliant to policy 1
  • Jede neue Ressource in Abonnement A, die nicht am Standort „USA, Westen“ erstellt wird, wird von Richtlinie 1 abgelehnt.Any new resource in subscription A not in 'westus' is denied by policy 1
  • Jede neue Ressource in Ressourcengruppe B von Abonnement A wird abgelehnt.Any new resource in resource group B of subscription A is denied

Jede Zuweisung wird einzeln ausgewertet.Each assignment is individually evaluated. Daher ist es nicht möglich, dass eine Ressource aufgrund unterschiedlicher Bereiche „durch das Netz schlüpfen“ kann.As such, there isn't an opportunity for a resource to slip through a gap from differences in scope. Die Anwendung mehrerer oder sich überschneidender Richtlinien führt kumulativ zur stärksten Einschränkung.The net result of layering policies or policy overlap is considered to be cumulative most restrictive. Wenn beispielsweise sowohl Richtlinie 1 als auch Richtlinie 2 die Auswirkung „deny“ verwenden, wird eine Ressource durch sich überschneidende und konfliktverursachende Richtlinien blockiert.As an example, if both policy 1 and 2 had a deny effect, a resource would be blocked by the overlapping and conflicting policies. Wenn die Ressource dennoch im Zielbereich erstellt werden soll, überprüfen Sie die Ausnahmen für jede Zuweisung, um sicherzustellen, dass die richtigen Richtlinien auf die richtigen Bereiche angewendet werden.If you still need the resource to be created in the target scope, review the exclusions on each assignment to validate the right policies are affecting the right scopes.

Nächste SchritteNext steps