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 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ätszustand und Zeitstempel der letzten Auswertung 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 beispielsweise die nicht konforme Ressource Microsoft.Compute/virtualMachines
ist, muss der Benutzer oder die Benutzerin über den Vorgang 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:
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.
Wählen Sie auf der Seite Übersicht oder Konformität eine Richtlinie mit dem KonformitätsstatusNicht konform aus.
Ö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ätszustand Nicht konform aus. Wählen Sie dann Konformitätsdetails anzeigen aus.
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/version
12.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.Für die Richtliniendefinition
auditIfNotExists
oderdeployIfNotExists
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.Beispiel für partielle
deployIfNotExists
-Definition:{ "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": { ... } } } }
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 wird jeder mögliche Resource Manager-Grund der entsprechenden Bedingung in der Richtliniendefinition zugeordnet:
`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.PolicyInsights
Ressourcenanbietermodus-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*die Abonnementadministrator*in, 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*die Abonnementadministrator*in, 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*die Abonnementadministrator*in, um die Richtlinien zu aktualisieren. |
MissingRegistrationForType | MissingRegistrationForResourceType: Das Abonnement wird nicht für den Ressourcentyp „{ResourceType}“ registriert. Überprüfen Sie, ob der Ressourcentyp vorhanden und 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 entweder 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). Korrigieren 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 wird jeder Grund für den Microsoft.Kubernetes.Data
Ressourcenanbietermodusdem verantwortlichen Zustand der Einschränkungsvorlage in der Richtliniendefinition zugeordnet:
`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 | Die Ressource wurde aus einem der folgenden Gründe abgelehnt: ungültiger Rego-Inhalt in der Einschränkungsvorlage, ungültiger YAML-Inhalt oder ein Parametertypkonflikt zwischen Einschränkung und Einschränkungsvorlage (Angabe eines Zeichenfolgenwerts, wenn eine ganze Zahl erwartet wurde). |
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
Wählen Sie für Zuordnungen mit einem Ressourcenanbietermodus die nicht konformen Ressource aus, um deren Komponentenkonformitätsdatensätze anzuzeigen. Auf der Registerkarte Komponentenkonformität werden weitere Informationen für den Ressourcenanbietermodus wie Komponentenname, Komponenten-ID und Typ angezeigt.
Details zur Konformität für die Gastkonfiguration
Für Richtliniendefinitionen in der Kategorie Gastkonfiguration können auf der 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 im Abschnitt Kompatibilitätsdetails ausführen, um die Konformitätsdetails der Richtlinien anzuzeigen
Wählen Sie im Bereich „Konformitätsdetails“ den Link Zuletzt ausgewertete Ressource aus.
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.
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.
Ä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.
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.
Wählen Sie auf der Seite Übersicht oder Konformität eine Richtlinie mit einem beliebigen Konformitätsstatus aus.
Wählen Sie auf der Seite Richtlinienkonformität auf der Registerkarte Ressourcenkonformität eine Ressource aus.
Wählen Sie auf der Seite Ressourcenkonformität die Registerkarte Änderungsverlauf (Vorschau) aus. Eine Liste der erkannten Änderungen, falls vorhanden, wird angezeigt.
Wählen Sie eine der erkannten Änderungen aus. Die Visual Diff für die Ressource wird auf der Seite Änderungsverlauf angezeigt.
Die Visual Diff hilft, Änderungen an einer Ressource zu identifizieren. Die erkannten Änderungen müssen nicht zwangsläufig mit dem geänderten Konformitätszustand 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
- Sehen Sie sich die Beispiele unter Azure Policy-Beispiele an.
- Lesen Sie die Informationen unter Struktur von Azure Policy-Definitionen.
- Lesen Sie Grundlegendes zu Richtlinienauswirkungen.
- 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.
- Weitere Informationen zu Verwaltungsgruppen finden Sie unter Organisieren Ihrer Ressourcen mit Azure-Verwaltungsgruppen.