Abrufen von Compliancedaten von Azure-Ressourcen
Sie genießen mit Azure Policy den Vorteil, Einblicke in Steuerelemente für Ressourcen in einem Abonnement oder einer Verwaltungsgruppe von Abonnements zu erhalten. Diese Kontrolle kann verwendet werden, um zu verhindern, dass Ressourcen am falschen Ort erstellt werden, um die allgemeine und einheitliche Verwendung von Tags zu erzwingen oder um vorhandene Ressourcen auf geeignete Konfigurationen und Einstellungen zu überprüfen. In allen Fällen generiert Azure Policy Daten, mit denen Sie den Konformitätszustand Ihrer Umgebung verstehen können.
Bevor Sie Konformitätsdaten überprüfen, müssen Sie die Konformitätszustände in Azure Policy verstehen.
Es gibt mehrere Möglichkeiten, auf Konformitätsinformationen, die von Ihrer Richtlinie sowie Initiativenzuweisungen erstellt wurden, zuzugreifen:
Bevor wir uns die Methoden zur Berichterstellung zur Konformität ansehen, beschäftigen wir uns damit, wann Konformitätsinformationen aktualisiert werden und mit den Ereignissen, die einen Auswertungszyklus auslösen sowie mit der Häufigkeit.
Auswertungsauslöser
Die Ergebnisse eines abgeschlossenen Auswertungszyklus stehen im Ressourcenanbieter Microsoft.PolicyInsights
über die Vorgänge PolicyStates
und PolicyEvents
zur Verfügung. Weitere Informationen zu den Vorgängen der Azure Policy Insights-REST-API finden Sie unter Policy Insights.
Auswertungen zugewiesener Richtlinien und Initiativen geschehen im Zuge unterschiedlicher Ereignisse:
- Eine Richtlinie oder Initiative wird einem Bereich neu zugewiesen. Es dauert ungefähr fünf Minuten, bis die Zuweisung auf den definierten Bereich angewendet wird. Dann beginnt der Auswertungszyklus für die zutreffenden Ressourcen anhand der neu zugewiesenen Richtlinie oder Initiative. Je nach den erzielten Auswirkungen werden Ressourcen als konform, nicht konform, ausgenommen oder unbekannt markiert. Eine umfangreiche Richtlinie oder Initiative, die für einen großen Ressourcenbereich ausgewertet wird, kann einige Zeit in Anspruch nehmen. Es kann daher keine exakte Dauer des Auswertungszyklus angegeben werden. Nach Abschluss sind aktualisierte Complianceergebnisse im Portal und in Software-Entwicklungskits (Software Development Kits, SDKs) verfügbar.
- Eine Richtlinie oder Initiative, die bereits einem Bereich zugewiesen ist, wird aktualisiert. Der Auswertungszyklus und die zeitliche Steuerung für dieses Szenario entspricht denjenigen von Neuzuweisungen zu einem Bereich.
- Eine Ressource wird in einem Bereich mit einer Zuweisung über Azure Resource Manager, die REST-API oder ein unterstütztes SDK bereitgestellt oder aktualisiert. In diesem Szenario werden nach etwa 15 Minuten die Informationen über das betroffene Ereignis (Anfügen, Überwachen, Verweigern, Bereitstellen) und den Konformitätsstatus für die jeweilige Ressource im Portal und den SDKs verfügbar. Dieses Ereignis löst keine Auswertung anderer Ressourcen aus.
- Ein Abonnement (Ressourcentyp
Microsoft.Resources/subscriptions
) wird innerhalb einer Verwaltungsgruppenhierarchie mit einer zugewiesenen Richtliniendefinition für den Abonnementressourcentyp erstellt oder verschoben. Die Auswertung der vom Abonnement unterstützten Auswirkungen (audit, auditIfNotExist, deployIfNotExists, modify), Protokollierung und Korrekturaktionen dauert etwa 30 Minuten. - Eine Richtlinienausnahme wird erstellt, aktualisiert oder gelöscht. In diesem Szenario wird die entsprechende Zuweisung für den definierten Ausnahmebereich ausgewertet.
- Standard-Konformitätsauswertungszyklus. Zuweisungen werden alle 24 Stunden automatisch neu ausgewertet. Eine große Richtlinie oder Initiative mit vielen Ressourcen kann einige Zeit in Anspruch nehmen, so dass es keine vordefinierte Erwartung gibt, wann der Bewertungszyklus abgeschlossen ist. Sobald er abgeschlossen ist, sind aktualisierte Konformitätsergebnisse im Portal und den SDKs verfügbar.
- Der Ressourcenanbieter für die Computerkonfiguration wird von einer verwalteten Ressource mit Konformitätsdetails aktualisiert.
- Bedarfsgesteuerter Scan.
Hinweis
Standardmäßig nimmt Azure Policy alle Ressourcen unter dem Ressourcenanbieter Microsoft.Resources
von der Richtlinienauswertung aus, mit Ausnahme von Abonnements und Ressourcengruppen, die ausgewertet werden können.
Bedarfsgesteuerter Auswertungsscan
Eine Auswertungsscan für ein Abonnement oder eine Ressourcengruppe kann mit REST, Azure CLI, Azure PowerShell, Azure Policy-Erweiterung für Visual Studio Code oder der GitHub-Aktion Azure Policy-Compliancescan gestartet werden. Bei den bedarfsgesteuerten Scans handelt es sich um einen asynchronen Prozess, der viel Zeit in Anspruch nimmt, da die Ressourcen anhand aller zugewiesenen Richtlinien bewertet werden.
Hinweis
Nicht alle Azure-Ressourcenanbieter unterstützen On-Demand-Auswertungsscans. Azure Virtual Network Manager (AVNM) unterstützt derzeit beispielsweise weder manuelle Trigger noch den Standardzyklus für die Richtlinienkonformitätsauswertung (tägliche Scans).
Bedarfsgesteuerter Auswertungsscan mittels REST
Daher wartet der REST-Endpunkt als asynchroner Prozess zum Starten des Scans nicht, bis der Scan abgeschlossen ist, um zu reagieren. Stattdessen stellt er einen URI bereit, um den Status der angeforderten Auswertung abzufragen.
In jedem REST-API-URI gibt es Variablen, die Sie durch Ihre eigenen Werte ersetzen müssen:
-
{resourceGroupName}
: Ersetzen Sie durch den Namen Ihrer Ressourcengruppe. -
{subscriptionId}
: Ersetzen Sie dies durch Ihre Abonnement-ID.
Der Scan unterstützt die Auswertung von Ressourcen in einem Abonnement oder in einer Ressourcengruppe. Starten Sie einen Scan nach Bereich mit einem REST-API-Befehl POST anhand der folgenden URI-Strukturen:
Verwenden Sie den folgenden Befehl, um ein Abonnement auszuwerten. Sie können den Befehl in Ihrem Browser unter Richtlinienstatus – Abonnementauswertung auslösen mithilfe der Option Ausprobieren auslösen.
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Verwenden Sie den folgenden Befehl, um eine Ressourcengruppe auszuwerten. Sie können den Befehl in Ihrem Browser unter Richtlinienstatus – Ressourcengruppenauswertung auslösen mithilfe der Option Ausprobieren auslösen.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Die REST-API-Aufrufe des Abonnements und der Ressourcengruppe geben den Status 202 Akzeptiert zurück. Im Antwortheader enthalten ist eine location
-Eigenschaft mit dem folgenden Format:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01
{ResourceContainerGUID}
wird für den angeforderten Bereich statisch generiert. Wird für einen Bereich bereits ein bedarfsgesteuerter Scan ausgeführt, wird kein neuer Scan gestartet. Stattdessen wird der neuen Anforderung derselbe {ResourceContainerGUID}
location
-URI für den Status bereitgestellt. Ein REST-API-GET-Befehl für den location
-URI gibt während der laufenden Auswertung 202 Accepted zurück. Nach Abschluss des Auswertungsscans wird der Status 200 OK zurückgegeben. Der Text eines abgeschlossenen Scans ist eine JSON-Antwort mit dem Status: succeeded
Bedarfsgesteuerter Auswertungsscan mittels Azure CLI
Die Kompatibilitätsüberprüfung wird mit dem Befehl az policy state trigger-scan gestartet.
Standardmäßig startet az policy state trigger-scan
eine Auswertung für alle Ressourcen im aktuellen Abonnement. Verwenden Sie den Parameter resource-group
, um eine Auswertung für eine bestimmte Ressourcengruppe zu starten. Im folgenden Beispiel wird ein Compliancescan im aktuellen Abonnement für die eine Ressourcengruppe gestartet. Ersetzen Sie resourceGroupName
durch den Namen Ihrer Ressourcengruppe:
az policy state trigger-scan --resource-group "resourceGroupName"
Sie können sich dafür entscheiden, nicht auf den Abschluss des asynchronen Prozesses zu warten, bevor Sie mit dem no-wait
-Parameter fortfahren.
Bedarfsgesteuerter Auswertungsscan mittels Azure PowerShell
Die Kompatibilitätsüberprüfung wird mit dem Start-AzPolicyComplianceScan-Cmdlet gestartet.
Standardmäßig startet Start-AzPolicyComplianceScan
eine Auswertung für alle Ressourcen im aktuellen Abonnement. Verwenden Sie den Parameter ResourceGroupName
, um eine Auswertung für eine bestimmte Ressourcengruppe zu starten. Im folgenden Beispiel wird ein Compliancescan im aktuellen Abonnement für die eine Ressourcengruppe gestartet. Ersetzen Sie resourceGroupName
durch den Namen Ihrer Ressourcengruppe:
Start-AzPolicyComplianceScan -ResourceGroupName 'resourceGroupName'
Sie können PowerShell auf den Abschluss des asynchronen Aufrufes warten lassen, bevor Sie die Ergebnisausgabe bereitstellen, oder PowerShell im Hintergrund als Auftrag ausführen. Wenn Sie die Konformitätsüberprüfung im Hintergrund mit einem PowerShell-Auftrag ausführen möchten, verwenden Sie den Parameter AsJob
, und legen Sie den Wert auf ein Objekt fest, z. B. $job
in diesem Beispiel:
$job = Start-AzPolicyComplianceScan -AsJob
Sie können den Status des Auftrags überprüfen, indem Sie das $job
-Objekt überprüfen. Der Auftrag ist vom Typ Microsoft.Azure.Commands.Common.AzureLongRunningJob
. Verwenden Sie Get-Member
für das $job
-Objekt, um die verfügbaren Eigenschaften und Methoden anzuzeigen.
Während der Kompatibilitätsüberprüfung ergibt die Überprüfung der $job
-Objektausgaben Ergebnisse wie diese:
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 Long Running O... AzureLongRunni... Running True localhost Start-AzPolicyCompliance...
Wenn die Konformitätsüberprüfung abgeschlossen ist, ändert sich die State
-Eigenschaft in Abgeschlossen.
Bedarfsgesteuerter Auswertungsscan mittels Visual Studio Code
Mit der Azure Policy-Erweiterung für Visual Studio Code kann ein Auswertungsscan für eine bestimmte Ressource ausgeführt werden. Bei diesem Scan handelt es sich im Gegensatz zu den Azure PowerShell- und REST-Methoden um einen synchronen Prozess. Ausführliche Informationen und Schritte finden Sie unter Verwenden der Azure Policy-Erweiterung für Visual Studio Code.
Bedarfsgesteuerter Auswertungsscan mittels GitHub Actions
Verwenden Sie die Aktion „Azure Policy-Konformitätsprüfung“, um von Ihrem GitHub-Workflow aus für eine oder mehrere Ressourcen, Ressourcengruppen oder Abonnements bei Bedarf einen Auswertungsscan auszulösen und den Workflow basierend auf dem Konformitätsstatus der Ressourcen zu steuern. Sie können den Workflow auch so konfigurieren, dass er zu einer geplanten Zeit abläuft, sodass Sie zu einem geeigneten Zeitpunkt den neuesten Konformitätsstatus erhalten. Optional kann GitHub Actions einen Bericht zum Konformitätsstatus der überprüften Ressourcen zur weiteren Analyse oder Archivierung erstellen.
Im folgenden Beispiel wird eine Konformitätsprüfung für ein Abonnement ausgeführt. Verwenden Sie in scopes
Ihre Abonnement-ID.
on:
schedule:
- cron: '0 8 * * *' # runs every morning 8am
jobs:
assess-policy-compliance:
runs-on: ubuntu-latest
steps:
- name: Login to Azure
uses: azure/login@v2
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: Check for resource compliance
uses: azure/policy-compliance-scan@v0
with:
scopes: |
/subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e
Weitere Informationen und Workflowbeispiele finden Sie im Repository „GitHub-Aktionen für die Azure Policy-Konformitätsprüfung“.
Portal
Im Azure-Portal ist eine grafische Benutzeroberfläche zum Anzeigen und Verstehen des Konformitätsstatus Ihrer Umgebung dargestellt. Auf der Seite Richtlinie stellt die Option Übersicht Details für verfügbare Bereiche zur Konformität für Richtlinien und Initiativen bereit. Neben dem Konformitätsstatus und der Anzahl pro Zuweisung ist ein Diagramm enthalten, das die Konformität der letzten sieben Tage anzeigt. Die Seite Konformität enthält weitestgehend dieselben Informationen (mit Ausnahme des Diagramms), stellt jedoch zusätzliche Optionen zum Filtern und Sortieren bereit.
Da eine Richtlinie oder Initiative unterschiedlichen Bereichen zugewiesen werden kann, finden Sie in der Tabelle den Bereich für jede Zuweisung und den Typ der Definition, die zugewiesen wurde. Die Anzahl der nicht konformen Ressourcen und Richtlinien für jede Zuweisung wird ebenfalls bereitgestellt. Wenn Sie eine Richtlinie oder Initiative in der Tabelle auswählen, erhalten Sie weitere Informationen zur Konformität für eine bestimmte Zuweisung.
Die Liste der Ressourcen auf der Registerkarte Ressourcenkonformität zeigt den Bewertungsstatus der vorhandenen Ressourcen für die aktuelle Zuweisung. Die Registerkarte ist standardmäßig auf Nicht konform festgelegt, kann aber gefiltert werden. Ereignisse (Anfügung, Überwachung, Verweigerung, Bereitstellung, Änderung), die durch die Anforderung zum Erstellen einer Ressource ausgelöst wurden, werden auf der Registerkarte Ereignisse angezeigt.
Wenn Sie bei Ressourcen im Ressourcenanbietermodus auf der Registerkarte Ressourcenkonformität die Ressource auswählen oder mit der rechten Maustaste auf die Zeile klicken und Konformitätsdetails anzeigen auswählen, wird die Seite mit Details zur Komponentenkompatibilität geöffnet. Diese Seite bietet auch Registerkarten, auf denen die Richtlinien angezeigt werden, die dieser Ressource, Ereignissen, Komponentenereignissen und dem Änderungsverlauf zugewiesen sind.
Wenn Sie sich wieder auf der Seite für Ressourcenkonformität befinden, öffnen Sie das Kontextmenü der Zeile des Ereignisses, über das Sie mehr Details erhalten möchten, und wählen Sie Aktivitätsprotokolle anzeigen aus. Die Seite des Aktivitätsprotokolls wird geöffnet und wird durch die Suche gefiltert. Die Details für die Zuweisung und Ereignisse werden angezeigt. Das Aktivitätsprotokoll stellt weiteren Kontext sowie Informationen zu diesen Ereignissen bereit.
Hinweis
Complianceergebnisse können mit Azure Resource Graph-Abfragen aus dem Portal exportiert werden.
Befehlszeile
Die gleichen im Portal verfügbaren Informationen können mit der REST-API, Azure CLI und Azure PowerShell abgerufen werden.
REST-API
Details zur REST-API finden Sie in der Referenz zu Azure Policy. Die REST-API-Referenzseiten verfügen über eine Option Ausprobieren für jeden Vorgang, mit dem Sie den Befehl in einem Browser ausführen können. Sie können auch Azure CLI oder Ihren bevorzugten REST-API-Client verwenden, um Befehle auszuführen.
Zusammenfassen der Ergebnisse
Mit der REST-API können Sie nach Container, Definition oder Zuweisung zusammenfassen. Es folgt ein Beispiel der Zusammenfassung auf Abonnementebene unter Verwendung der Azure Policy-Erkenntnis Für Abonnement zusammenfassen:
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01
Die Ausgabe fasst das Abonnement zusammen, und die zusammengefasste Compliance befindet sich in den Eigenschaften nonCompliantResources
und nonCompliantPolicies
. Diese Anforderung stellt andere Details bereit, einschließlich aller Zuweisungen, aus denen die nicht konformen Zahlen bestehen, sowie die Definitionsinformationen für jede Zuweisung. Jedes Richtlinienobjekt in der Hierarchie hat einen queryResultsUri
, der zum Abrufen weiterer Details auf dieser Ebene verwendet werden kann.
Abfragen von Ressourcen
Im vorherigen Beispiel stellt value.policyAssignments.policyDefinitions.results.queryResultsUri
einen Beispiel-URI für alle nicht konformen Ressourcen für eine bestimmte Richtliniendefinition bereit. Im Wert $filter
ist „ComplianceState“ gleich (eq) NonCompliant
. PolicyAssignmentId
ist für die Richtliniendefinition und dann die PolicyDefinitionId selbst angegeben. Der Grund für das Einschließen von PolicyAssignmentId
in den Filter ist der, dass PolicyDefinitionId
in mehreren Zuweisungen von Richtlinien oder Initiativen mit verschiedenen Geltungsbereichen vorhanden sein kann. Durch Angeben von PolicyAssignmentId
und PolicyDefinitionId
können wir die Ergebnisse eingrenzen, die wir suchen. Zuvor haben wir für PolicyStates
latest
verwendet, womit automatisch ein Zeitfenster mit from
und to
der letzten 24 Stunden festgelegt wird.
Beispiel des Werts queryResultsUri
:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2025-01-01 04:28:22Z&$to=2025-02-10 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'
Anzeigen von Ereignissen
Wenn eine Ressource erstellt oder aktualisiert wird, wird ein Ergebnis der Richtlinienauswertung generiert. Diese Ergebnisse werden als Richtlinienereignisse bezeichnet. Verwenden Sie den folgenden URI, um die neuesten Richtlinienereignisse anzuzeigen, die dem Abonnement zugewiesen sind.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01
Weitere Informationen zum Abfragen von Richtlinienereignissen finden Sie unter Azure Policy-Ereignisse.
Azure-Befehlszeilenschnittstelle
Die Azure CLI-Befehlsgruppe für Azure Policy umfasst die meisten Vorgänge, die in REST oder Azure PowerShell verfügbar sind. Eine vollständige Liste der verfügbaren Befehle finden Sie unter az policy.
Rufen Sie die Zustandszusammenfassung für die oberste zugewiesene Richtlinie mit der höchsten Anzahl nicht konformer Ressourcen ab.
az policy state summarize --top 1
Rufen Sie den Zustandsdatensatz für die zuletzt ausgewertete Ressource ab, und der Ausgabestandard ist nach Zeitstempel in absteigender Reihenfolge.
az policy state list --top 1
Rufen Sie die Details für alle nicht konformen virtuellen Netzwerkressourcen ab.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"
Rufen Sie Ereignisse ab, die auf nicht konforme virtuelle Netzwerkressourcen bezogen sind, die nach einem bestimmten Datum aufgetreten sind. Verwenden Sie den Parameter from
mit einem Datum im ISO 8601-Format.
az policy event list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2025-02-10T00:00:00Z'
Azure PowerShell
Sie können die folgenden Befehle aus Azure Cloud Shell ausführen.
Rufen Sie die Zustandszusammenfassung für die oberste zugewiesene Richtlinie mit der höchsten Anzahl nicht konformer Ressourcen ab.
Get-AzPolicyStateSummary -Top 1
Rufen Sie den Zustandsdatensatz für die zuletzt ausgewertete Ressource ab. Der Ausgabestandard ist nach Zeitstempel in absteigender Reihenfolge.
Get-AzPolicyState -Top 1
Rufen Sie die Details für alle nicht konformen virtuellen Netzwerkressourcen ab.
Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"
Rufen Sie Ereignisse ab, die auf nicht konforme virtuelle Netzwerkressourcen bezogen sind, die nach einem bestimmten Datum aufgetreten sind. Verwenden Sie den Parameter From
mit einem Datum im ISO 8601-Format.
Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2025-02-10'
Die Ausgabe enthält eine Eigenschaft PrincipalOid
, mit der ein bestimmter Benutzer mit dem Azure PowerShell-Cmdlet Get-AzADUser
abgerufen werden kann. Ersetzen Sie {principalOid}
durch den Wert, den Sie im vorherigen Befehl erhalten haben.
(Get-AzADUser -ObjectId {principalOid}).DisplayName
Azure Monitor-Protokolle
Wenn Sie über einen Log Analytics-Arbeitsbereich mit AzureActivity
aus der Aktivitätsprotokollanalyse-Lösung verfügen, die mit Ihrem Abonnement verknüpft ist, können Sie auch nicht kompatible Ergebnisse der Auswertung von neuen und aktualisierten Ressourcen mithilfe einfacher Kusto-Abfragen und der Tabelle AzureActivity
anzeigen. Mithilfe von Details in Azure Monitor-Protokollen können Warnmeldungen konfiguriert werden, um Verstöße gegen die Konformität zu überwachen.
Azure Resource Graph
Konformitätsdatensätze werden in Azure Resource Graph (ARG) gespeichert. Daten können aus ARG-Abfragen exportiert werden, um angepasste Dashboards basierend auf den relevanten Bereichen und Richtlinien zu bilden. Sehen Sie sich unsere Beispielabfragen zum Exportieren von Konformitätsdaten über ARG an.
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.
- Erfahren Sie, wie Sie nicht konforme Ressourcen korrigieren können.
- Weitere Informationen zu Verwaltungsgruppen finden Sie unter Organisieren Ihrer Ressourcen mit Azure-Verwaltungsgruppen.