Ermitteln der Ursachen für Nichtkonformität

Wenn festgestellt wird, dass eine Azure-Ressource nicht konform mit einer Richtlinienregel ist, ist es wichtig zu bestimmen, gegen welchen Teil der Regel die Ressource verstößt. Außerdem ist es ebenso nützlich, ermitteln zu können, welche Änderung dazu geführt hat, dass eine ehemals konforme Ressource nun nicht mehr konform ist. Es gibt zwei Möglichkeiten, diese Informationen zu bestimmen:

Konformitätsdetails

Wenn eine Ressource nicht konform ist, können Sie über die Seite Richtlinienkonformität auf die Konformitätsdetails dieser Ressource zugreifen. Der Bereich mit den Kompatibilitätsdetails enthält die folgenden Informationen:

  • Angaben zur Ressource wie der Name, der Typ, der Speicherort und die Ressourcen-ID
  • Konformitätsstatus und Zeitstempel der letzten Evaluierung für die aktuelle Richtlinienzuweisung
  • Eine Liste mit Gründen für die Nichtkonformität der Ressource

Wichtig

Die Konformitätsdetails einer nicht konformen Ressource enthalten die aktuellen Werte der Eigenschaften der Ressource. Deshalb muss der Benutzer über Leseberechtigungen für den Ressourcentyp verfügen. Wenn die nicht konforme Ressource z.B. vom Typ Microsoft.Compute/virtualMachines ist, muss der Leser über die Berechtigung Microsoft.Compute/virtualMachines/read verfügen. Wenn der Benutzer nicht über die erforderliche Berechtigung verfügt, wird ein Zugriffsfehler angezeigt.

Führen Sie die folgenden Schritte durch, um die Konformitätsdetails anzuzeigen:

  1. Starten Sie den Azure Policy-Dienst über das Azure-Portal, indem Sie die Option Alle Dienste auswählen und dann nach Policy suchen und die entsprechende Option auswählen.

  2. Wählen Sie auf der Seite Übersicht oder Konformität eine Richtlinie mit dem KonformitätsstatusNicht konform aus.

  3. Öffnen Sie auf der Seite Richtlinienkompatibilität auf der Registerkarte Ressourcenkonformität das Kontextmenü, oder wählen Sie die Auslassungspunkte neben einer Ressource mit dem KonformitätszustandNicht konform aus. Wählen Sie dann Konformitätsdetails anzeigen aus.

    Screenshot: Link „Konformitätsdetails anzeigen“ auf der Registerkarte „Ressourcenkonformität“

  4. Im Bereich Konformitätsdetails werden Informationen der letzten Auswertung der Ressource mit der aktuellen Richtlinienzuweisung angezeigt. In diesem Beispiel enthält das Feld Microsoft.Sql/servers/version12.0, und die Richtliniendefinition hat 14.0 erwartet. Wenn es mehrere Gründen für die Nichtkonformität der Ressource gibt, werde diese alle in diesem Bereich aufgeführt.

    Screenshot: Bereich „Konformitätsdetails“ und Gründe für Nichtkonformität (aktueller Wert ist „12“ und Zielwert ist „14“)

    Für auditIfNotExists- oder deployIfNotExists-Richtliniendefinitionen enthalten die Details die Eigenschaft details.type und alle optionalen Eigenschaften. Eine Liste finden Sie unter „Grundlegendes zu Azure Policy-Auswirkungen“ im Abschnitt „Eigenschaften von „auditIfNotExists“ und unter „Grundlegendes zu Azure Policy-Auswirkungen“ im Abschnitt „Eigenschaften von „DeployIfNotExists“. Zuletzt ausgewertete Ressource ist eine verwandte Ressource aus dem Detailabschnitt der Definition.

    Hier sehen Sie einen Beispielausschnitt aus der Definition von deployIfNotExists:

    {
        "if": {
            "field": "type",
            "equals": "[parameters('resourceType')]"
        },
        "then": {
            "effect": "DeployIfNotExists",
            "details": {
                "type": "Microsoft.Insights/metricAlerts",
                "existenceCondition": {
                    "field": "name",
                    "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]"
                },
                "existenceScope": "subscription",
                "deployment": {
                    ...
                }
            }
        }
    }
    

    Screenshot: Bereich „Konformitätsdetails“ für „ifNotExists“, einschließlich Anzahl ausgewerteter Ressourcen

Hinweis

Der aktuelle Wert zeigt Asteriske an, wenn ein Eigenschaftswert ein Geheimnis ist, um Daten zu schützen.

In den Details wird angegeben, warum eine Ressource nicht konform ist. Allerdings wird nicht angegeben, wann eine Änderung an der Ressource vorgenommen wurde, die dazu geführt hat, dass sie nicht mehr konform ist. Zu diesen Informationen erfahren Sie im Abschnitt Änderungsverlauf (Vorschau) mehr.

Konformitätsgründe

Resource Manager- und Ressourcenanbietermodi haben jeweils unterschiedliche Gründe für Nichtkonformität.

Allgemeine Konformitätsgründe für den Resource Manager-Modus

In der folgenden Tabelle finden Sie eine Zuordnung der möglichen Gründe für den Resource Manager-Modus und der verantwortlichen Bedingungen in der Richtliniendefinition:

`Reason` Bedingung
Der aktuelle Wert muss den Zielwert als Schlüssel enthalten. containsKey oder nicht notContainsKey
Der aktuelle Wert muss den Zielwert enthalten. contains oder nicht notContains
Der aktuelle Wert muss gleich dem Zielwert sein. equals der nicht notEquals
Der aktuelle Wert muss kleiner als der Zielwert sein. less oder nicht greaterOrEquals
Der aktuelle Wert muss größer oder gleich dem Zielwert sein. greaterOrEquals oder nicht less
Der aktuelle Wert muss größer als der Zielwert sein. greater oder nicht lessOrEquals
Der aktuelle Wert muss kleiner oder gleich dem Zielwert sein. lessOrEquals oder nicht greater
Der aktuelle Wert muss vorhanden sein. exists
Der aktuelle Wert muss im Zielwert enthalten sein. in der nicht notIn
Der aktuelle Wert muss dem Zielwert entsprechen. like oder nicht notLike
Der aktuelle Wert muss mit dem Zielwert übereinstimmen (Berücksichtigung der Groß-/Kleinschreibung). match oder nicht notMatch
Der aktuelle Wert muss mit dem Zielwert übereinstimmen (keine Berücksichtigung der Groß-/Kleinschreibung). matchInsensitively oder nicht notMatchInsensitively
Der aktuelle Wert darf den Zielwert nicht als Schlüssel enthalten. notContainsKeyontainsKey oder nicht ContainsKey
Der aktuelle Wert darf nicht den Zielwert enthalten. notContains oder nicht contains
Der aktuelle Wert darf nicht gleich dem Zielwert sein. notEquals der nicht equals
Der aktuelle Wert darf nicht vorhanden sein. nicht exists
Der aktuelle Wert darf nicht im Zielwert enthalten sein. notIn oder nicht in
Der aktuelle Wert darf nicht dem Zielwert entsprechen. notLike oder nicht like
Der aktuelle Wert darf nicht mit dem Zielwert übereinstimmen (Berücksichtigung der Groß-/Kleinschreibung). notMatch oder nicht match
Der aktuelle Wert darf nicht mit dem Zielwert übereinstimmen (keine Berücksichtigung der Groß-/Kleinschreibung). notMatchInsensitively oder nicht matchInsensitively
Keine der zugehörigen Ressourcen entspricht den Effektdetails in der Richtliniendefinition. Eine Ressource des in then.details.type definierten Typs, die mit der im if-Abschnitt der Richtlinienregel definierten Ressource verwandt ist, ist nicht vorhanden.

Konformitätsgründe für den Azure Policy-Ressourcenanbietermodus

Die folgende Tabelle ordnet jedem Microsoft.PolicyInsightsRessourcenanbietermodus-Ursachencode seine entsprechende Erklärung zu:

Konformitätsursachencode Fehlermeldung und Erklärung
NonModifiablePolicyAlias NonModifiableAliasConflict: Der Alias '{alias}' ist in Anforderungen mit API-Version '{apiVersion}' nicht modifizierbar. Dieser Fehler tritt auf, wenn eine Anforderung mit einer API-Version verwendet wird, in der der Alias den Effekt „Ändern“ nicht unterstützt oder den Effekt „Ändern“ nur mit einem anderen Tokentyp unterstützt.
AppendPoliciesNotApplicable AppendPoliciesUnableToAppend: Die Aliase: '{ aliases }' können in Anforderungen mit folgender API-Version nicht geändert werden: '{ apiVersion }'. Dies kann in Anforderungen mit API-Versionen geschehen, für die die Aliase den Effekt „Ändern“ nicht unterstützen oder den Effekt „Ändern“ mit einem anderen Tokentyp unterstützen.
ConflictingAppendPolicies ConflictingAppendPolicies: Widersprüchliche Richtlinienzuweisungen gefunden, die das Feld '{notApplicableFields}' ändern. Richtlinienbezeichner: '{policy}'. Wenden Sie sich an den Abonnementadministrator, um die Richtlinienzuweisungen zu aktualisieren.
AppendPoliciesFieldsExist AppendPoliciesFieldsExistWithDifferentValues: Richtlinienzuweisungen versuchten, Felder anzufügen, die bereits in der Anforderung mit unterschiedlichen Werten vorhanden sind. Felder: '{existingFields}'. Richtlinienbezeichner: '{policy}'. Wenden Sie sich an den Abonnementadministrator, um die Richtlinien zu aktualisieren.
AppendPoliciesUndefinedFields AppendPoliciesUndefinedFields: Richtliniendefinition gefunden, die auf eine nicht definierte Feldeigenschaft für die folgende API-Version verweist: '{apiVersion}'. Felder: '{nonExistingFields}'. Richtlinienbezeichner: '{policy}'. Wenden Sie sich an den Abonnementadministrator, um die Richtlinien zu aktualisieren.
MissingRegistrationForType MissingRegistrationForResourceType: Das Abonnement wird nicht für den Ressourcentyp '{ResourceType}' registriert. Überprüfen Sie, ob der Ressourcentyp vorhanden ist und dass der Ressourcentyp registriert ist.
AmbiguousPolicyEvaluationPaths Der Anforderungsinhalt enthält mindestens einen mehrdeutigen Pfad: „{0}“ gemäß Richtlinien erforderlich: „{1}“.
InvalidResourceNameWildcardPosition Die mit der Richtliniendefinition „{0}“ verknüpfte Richtlinienzuweisung „{1}“ konnte nicht ausgewertet werden. Der Ressourcenname „{2}“ innerhalb einer ifNotExists-Bedingung enthält das Platzhalterzeichen „?“ in einer ungültigen Position. Wildcards können sich nur am Ende des Namens in einem Segment selbst (z. B. TopLevelResourceName/?) befinden. Beheben Sie die Richtlinie, oder entfernen Sie die Richtlinienzuweisung, um die Blockierung aufzuheben.
TooManyResourceNameSegments Die mit der Richtliniendefinition „{0}“ verknüpfte Richtlinienzuweisung „{1}“ konnte nicht ausgewertet werden. Der Ressourcenname „{2}“ innerhalb einer ifNotExists-Bedingung enthält zu viele Namenssegmente. Die Anzahl der Namensegmente muss gleich oder kleiner sein als die Anzahl der Typsegmente (ohne den Ressourcenanbieternamespace). Beheben Sie die Richtliniendefinition, oder entfernen Sie die Richtlinienzuweisung, um die Blockierung aufzuheben.
InvalidPolicyFieldPath Der Feldpfad „{0}“ innerhalb der Richtliniendefinition ist ungültig. Feldpfade dürfen keine leeren Segmente enthalten. Sie dürfen nur alphanumerische Zeichen mit Ausnahme des Zeichens „.“ für das Teilen von Segmenten und die Zeichensequenz „[*]“ für den Zugriff auf Arrayeigenschaften enthalten.

Konformitätsgründe für den AKS-Ressourcenanbietermodus

In der folgenden Tabelle finden Sie eine Zuordnung der möglichen Gründe für den Microsoft.Kubernetes.DataRessourcenanbietermodus und der verantwortlichen Zustände der Einschränkungsvorlage in der Richtliniendefinition:

`Reason` Beschreibung des Grunds der Einschränkungsvorlage
Constraint/TemplateCreateFailed Die Ressource konnte für eine Richtliniendefinition mit einer Einschränkung/Vorlage, die nicht anhand des Ressourcenmetadatennamens mit einer vorhandenen Einschränkung/Vorlage im Cluster übereinstimmt, nicht erstellt werden.
Constraint/TemplateUpdateFailed Die Einschränkung/Vorlage konnte nicht für eine Richtliniendefinition mit einer Einschränkung/Vorlage aktualisiert werden, die mit einer vorhandenen Einschränkung/Vorlage im Cluster nach Ressourcenmetadatenname übereinstimmt.
Constraint/TemplateInstallFailed Die Einschränkung/Vorlage konnte nicht erstellt werden und konnte weder für den Erstellungs- noch für den Updatevorgang auf dem Cluster installiert werden.
ConstraintTemplateConflicts Die Vorlage weist einen Konflikt mit einer oder mehreren Richtliniendefinitionen auf, die den gleichen Vorlagennamen mit unterschiedlicher Quelle verwenden.
ConstraintStatusStale Es gibt einen vorhandenen Status „Überwachung“, aber Gatekeeper hat innerhalb der letzten Stunde keine Überwachung durchgeführt.
ConstraintNotProcessed Es gibt keinen Status, und Gatekeeper hat innerhalb der letzten Stunde keine Überwachung durchgeführt.
InvalidConstraint/Template Der API-Server hat die Ressource aufgrund einer fehlerhaften YAML abgelehnt. Dieser Grund kann auch durch einen Parametertypkonflikt verursacht werden (Beispiel: für eine ganze Zahl bereitgestellte Zeichenfolge)

Hinweis

Für vorhandene Richtlinienzuweisungen und Einschränkungsvorlagen, die bereits im Cluster vorhanden sind, wird der Cluster geschützt, wenn diese Einschränkung/Vorlage fehlschlägt, indem die vorhandene Einschränkung/Vorlage beibehalten wird. Der Cluster meldet „nicht konform“, bis der Fehler bei der Richtlinienzuweisung behoben wird oder sich das Add-On selbst repariert. Weitere Informationen zur Behandlung von Konflikten finden Sie unter Einschränkungsvorlagenkonflikte.

Komponentendetails für Ressourcenanbietermodi

Bei Zuweisungen mit einem Ressourcenanbietermodus wählen Sie die nicht konforme Ressource aus, um eine detailliertere Ansicht zu öffnen. Unter der Registerkarte Komponentenkonformität befinden sich zusätzliche Informationen, die spezifisch für den Modus „Ressourcenanbieter“ der zugewiesenen Richtlinie sind und die nicht konformeKomponente und die Komponenten-ID anzeigen.

Screenshot der Registerkarte „Komponentenkonformität“ und Konformitätsdetails für eine Zuweisung im Ressourcenanbietermodus

Details zur Konformität für die Gastkonfiguration

Für Richtliniendefinitionen in der Kategorie Gastkonfiguration können auf dem VM mehrere Einstellungen ausgewertet werden, und Sie müssen die Details pro Einstellung anzeigen. Wenn Sie beispielsweise eine Überprüfung der Liste mit Sicherheitseinstellungen durchführen und nur ein Eintrag den Status Nicht konform aufweist, müssen Sie ermitteln, welche spezifischen Einstellungen nicht konform sind und was der Grund dafür ist.

Unter Umständen haben Sie auch keinen Zugriff für die direkte Anmeldung auf dem virtuellen Computer, müssen aber melden, warum der virtuelle Computer nicht konform ist.

Azure-Portal

Beginnen Sie, indem Sie die Schritte zum Anzeigen der Konformitätsdetails der Richtlinien im obigen Abschnitt ausführen.

Wählen Sie im Bereich „Konformitätsdetails“ den Link Zuletzt ausgewertete Ressource aus.

Screenshot: Anzeigen der Konformitätsdetails zur Definition von „auditIfNotExists“

Auf der Seite Gastzuweisung werden alle verfügbaren Konformitätsdetails angezeigt. Jede Zeile der Ansicht steht für eine Auswertung, die auf dem Computer durchgeführt wurde. In der Spalte Grund wird eine Beschreibung angezeigt, mit der der Grund für den Status Nicht konform für die Gastzuweisung angegeben wird. Wenn Sie beispielsweise Kennwortrichtlinien überprüfen, wird in der Spalte Grund Text mit dem aktuellen Wert für jede Einstellung angezeigt.

Screenshot: Konformitätsdetails zur Gastzuweisung

Anzeigen von skalierbaren Konfigurationszuweisungsdetails

Das Gastkonfigurationsfeature kann außerhalb von Azure Policy-Zuweisungen verwendet werden. Azure AutoManage erstellt beispielsweise Gastkonfigurationszuweisungen, oder Sie können Konfigurationen zuweisen, wenn Sie Computer bereitstellen.

Um alle Gastkonfigurationszuweisungen für Ihren Mandanten anzuzeigen, öffnen Sie im Azure-Portal die Seite Gastzuweisungen. Um detaillierte Konformitätsinformationen anzeigen zu können, wählen Sie jede Zuweisung über den Link in der Spalte „Name“ aus.

Screenshot: Gastzuweisungsseite.

Änderungsverlauf (Vorschau)

Im Rahmen einer neuen öffentlichen Vorschau sind die letzten 14 Tage des Änderungsverlaufs für alle Azure-Ressourcen verfügbar, die die Löschung im vollständigen Modus unterstützen. Der Änderungsverlauf enthält Details dazu, wann eine Änderung erkannt wurde, und eine Visual Diff jeder Änderung. Eine Änderungserkennung wird ausgelöst, wenn Azure Resource Manager-Eigenschaften hinzugefügt, entfernt oder geändert werden.

  1. Starten Sie den Azure Policy-Dienst über das Azure-Portal, indem Sie die Option Alle Dienste auswählen und dann nach Policy suchen und die entsprechende Option auswählen.

  2. Wählen Sie auf der Seite Übersicht oder Konformität eine Richtlinie mit einem beliebigen Konformitätsstatus aus.

  3. Wählen Sie auf der Seite Richtlinienkonformität auf der Registerkarte Ressourcenkonformität eine Ressource aus.

  4. Wählen Sie auf der Seite Ressourcenkonformität die Registerkarte Änderungsverlauf (Vorschau) aus. Eine Liste der erkannten Änderungen, falls vorhanden, wird angezeigt.

    Screenshot: Registerkarte „Änderungsverlauf“ und Zeiten der erkannten Änderungen auf der Seite „Ressourcenkonformität“

  5. Wählen Sie eine der erkannten Änderungen aus. Die Visual Diff für die Ressource wird auf der Seite Änderungsverlauf angezeigt.

    Screenshot: Visual Diff des Änderungsverlaufs für den Vorher/Nachher-Status von Eigenschaften auf der Seite „Änderungsverlauf“

Die Visual Diff hilft, Änderungen an einer Ressource zu identifizieren. Die erkannten Änderungen müssen nicht zwangsläufig mit dem geänderten Konformitätsstatus der Ressource zusammenhängen.

Die Verlaufsdaten zu Änderungen werden von Azure Resource Graph bereitgestellt. Wie Sie diese Informationen außerhalb des Azure-Portals abfragen, erfahren Sie unter Get resource changes (Abrufen von Ressourcenänderungen).

Nächste Schritte