Delen via


Nalevingsgegevens van Azure-resources ophalen

Een van de grootste voordelen van Azure Policy is het inzicht en de besturingselementen die het biedt over resources in een abonnement of beheergroep abonnementen. Dit besturingselement kan voorkomen dat resources op de verkeerde locatie worden gemaakt, gemeenschappelijk en consistent taggebruik afdwingen of bestaande resources controleren op de juiste configuraties en instellingen. In alle gevallen genereert Azure Policy gegevens waarmee u de nalevingsstatus van uw omgeving kunt begrijpen.

Voordat u nalevingsgegevens bekijkt, is het belangrijk om inzicht te hebben in nalevingsstatussen in Azure Policy.

Er zijn verschillende manieren om toegang te krijgen tot de nalevingsgegevens die zijn gegenereerd door uw beleids- en initiatieftoewijzingen:

Voordat u de methoden bekijkt om te rapporteren over naleving, gaan we kijken wanneer nalevingsinformatie wordt bijgewerkt en de frequentie en gebeurtenissen die een evaluatiecyclus activeren.

Evaluatietriggers

De resultaten van een voltooide evaluatiecyclus zijn beschikbaar in de Microsoft.PolicyInsights resourceprovider via PolicyStates en PolicyEvents bewerkingen. Zie Azure Policy Insights voor meer informatie over de bewerkingen van de REST API van Azure Policy Insights.

Evaluaties van toegewezen beleidsregels en initiatieven vinden plaats als gevolg van verschillende gebeurtenissen:

  • Een beleid of initiatief wordt voor het eerst toegewezen aan een bereik. Het duurt ongeveer vijf minuten voordat de toewijzing wordt toegepast op het gedefinieerde bereik, waarna de evaluatiecyclus begint voor toepasselijke resources op basis van het zojuist toegewezen beleid of initiatief. Afhankelijk van de gebruikte effecten worden resources gemarkeerd als compatibel, niet-compatibel, vrijgesteld of onbekend. Een groot beleid of initiatief dat wordt geëvalueerd op basis van een groot aantal resources kan tijd in beslag nemen, dus er is geen vooraf gedefinieerde verwachting van wanneer de evaluatiecyclus is voltooid. Nadat dit is voltooid, zijn bijgewerkte nalevingsresultaten beschikbaar in de portal en Software Development Kits (SDK's).
  • Een beleid of initiatief dat al is toegewezen aan een bereik, wordt bijgewerkt. De evaluatiecyclus en timing voor dit scenario zijn hetzelfde als voor een nieuwe toewijzing aan een bereik.
  • Een resource wordt geïmplementeerd of bijgewerkt binnen een bereik met een toewijzing via Azure Resource Manager, REST API of een ondersteunde SDK. In dit scenario wordt de effectgebeurtenis (toevoegen, controleren, weigeren, implementeren) en compatibele statusinformatie voor de afzonderlijke resource beschikbaar in de portal en SDK's ongeveer 15 minuten later. Deze gebeurtenis veroorzaakt geen evaluatie van andere resources.
  • Er wordt een abonnement (resourcetype Microsoft.Resources/subscriptions) gemaakt of verplaatst binnen een beheergroephiërarchie met een toegewezen beleidsdefinitie die is gericht op het resourcetype van het abonnement. Evaluatie van de ondersteunde effecten van het abonnement (audit, auditIfNotExist, deployIfNotExists, modify), logboekregistratie en herstelacties duurt ongeveer 30 minuten.
  • Er wordt een beleidsvrijstelling gemaakt, bijgewerkt of verwijderd. In dit scenario wordt de bijbehorende toewijzing geëvalueerd voor het gedefinieerde uitzonderingsbereik.
  • Evaluatiecyclus voor standaardnaleving. Elke 24 uur worden opdrachten automatisch opnieuw geëvalueerd. Een groot beleid of initiatief van veel resources kan tijd in beslag nemen, dus er is geen vooraf gedefinieerde verwachting van wanneer de evaluatiecyclus is voltooid. Zodra dit is voltooid, zijn bijgewerkte nalevingsresultaten beschikbaar in de portal en SDK's.
  • De machineconfiguratieresourceprovider wordt bijgewerkt met nalevingsgegevens van een beheerde resource.
  • Scan op aanvraag.

Notitie

Standaard is Azure Policy vrijgesteld van beleidsevaluatie van alle resources onder de Microsoft.Resources resourceprovider, met uitzondering van abonnementen en resourcegroepen, die kunnen worden geëvalueerd.

Evaluatiescan op aanvraag

Een evaluatiescan voor een abonnement of een resourcegroep kan worden gestart met REST, Azure CLI, Azure PowerShell, Azure Policy-extensie voor Visual Studio Code of GitHub-nalevingsscan in Azure Policy. De scans op aanvraag zijn een asynchroon proces dat lange tijd in beslag neemt omdat resources worden geëvalueerd op basis van alle toegewezen beleidsregels.

Notitie

Niet alle Azure-resourceproviders ondersteunen evaluatiescans op aanvraag. Zo biedt Azure Virtual Network Manager (AVNM) momenteel geen ondersteuning voor handmatige triggers of de evaluatiecyclus voor standaardbeleidsnaleving (dagelijkse scans).

Evaluatiescan op aanvraag met REST

Als asynchroon proces wacht het REST-eindpunt om de scan te starten pas nadat de scan is voltooid om te reageren. In plaats daarvan biedt het een URI om een query uit te voeren op de status van de aangevraagde evaluatie.

In elke REST API-URI zijn er verschillende variabelen die worden gebruikt en die u moet vervangen door uw eigen waarden:

  • {resourceGroupName}: vervang met de naam van de resourcegroep.
  • {subscriptionId}: Vervang door uw abonnements-id.

De scan ondersteunt de evaluatie van resources in een abonnement of in een resourcegroep. Start een scan op bereik met een REST API POST-opdracht met behulp van de volgende URI-structuren:

Gebruik de volgende opdracht om een abonnement te evalueren. U kunt de opdracht uitvoeren vanuit uw browser bij Beleidsstatussen - Abonnementsevaluatie activeren met behulp van de optie Uitproberen .

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01

Gebruik de volgende opdracht om een resourcegroep te evalueren. U kunt de opdracht uitvoeren vanuit uw browser bij Beleidsstatussen - Resourcegroepevaluatie activeren met behulp van de optie Uitproberen .

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01

De REST API-aanroepen van het abonnement en de resourcegroep retourneren een geaccepteerde status van 202. Opgenomen in de antwoordheader is een location eigenschap met de volgende indeling:

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01

{ResourceContainerGUID} wordt statisch gegenereerd voor het aangevraagde bereik. Als een bereik al een scan op aanvraag uitvoert, wordt er geen nieuwe scan gestart. In plaats daarvan krijgt de nieuwe aanvraag dezelfde {ResourceContainerGUID}location URI voor de status. Een REST API GET-opdracht naar de location URI retourneert een 202 Geaccepteerd terwijl de evaluatie wordt uitgevoerd. Wanneer de evaluatiescan is voltooid, wordt de status 200 OK geretourneerd. De hoofdtekst van een voltooide scan is een JSON-antwoord met de status: succeeded.

Evaluatiescan op aanvraag met behulp van Azure CLI

De nalevingsscan wordt gestart met de opdracht az policy state trigger-scan .

Start standaard az policy state trigger-scan een evaluatie voor alle resources in het huidige abonnement. Als u een evaluatie wilt starten voor een specifieke resourcegroep, gebruikt u de resource-group parameter. In het volgende voorbeeld wordt een nalevingsscan gestart in het huidige abonnement voor een resourcegroep. Vervang resourceGroupName door de naam van uw resourcegroep:

az policy state trigger-scan --resource-group "resourceGroupName"

U kunt ervoor kiezen om niet te wachten totdat het asynchrone proces is voltooid voordat u verdergaat met de no-wait parameter.

Evaluatiescan op aanvraag met behulp van Azure PowerShell

De nalevingsscan wordt gestart met de cmdlet Start-AzPolicyComplianceScan .

Start standaard Start-AzPolicyComplianceScan een evaluatie voor alle resources in het huidige abonnement. Als u een evaluatie wilt starten voor een specifieke resourcegroep, gebruikt u de ResourceGroupName parameter. In het volgende voorbeeld wordt een nalevingsscan gestart in het huidige abonnement voor een resourcegroep. Vervang resourceGroupName door de naam van uw resourcegroep:

Start-AzPolicyComplianceScan -ResourceGroupName 'resourceGroupName'

U kunt PowerShell laten wachten totdat de asynchrone aanroep is voltooid voordat u de resultatenuitvoer opgeeft of deze als taak op de achtergrond laat uitvoeren. Als u een PowerShell-taak wilt gebruiken om de nalevingsscan op de achtergrond uit te voeren, gebruikt u de AsJob parameter en stelt u de waarde in op een object, zoals $job in dit voorbeeld:

$job = Start-AzPolicyComplianceScan -AsJob

U kunt de status van de taak controleren door het $job object te controleren. De taak is van het type Microsoft.Azure.Commands.Common.AzureLongRunningJob. Gebruik Get-Member dit $job object om de beschikbare eigenschappen en methoden te bekijken.

Terwijl de nalevingsscan wordt uitgevoerd, worden de resultaten van het $job object gecontroleerd, zoals deze:

$job

Id     Name              PSJobTypeName     State    HasMoreData     Location   Command
--     ----              -------------     -----    -----------     --------   -------
2      Long Running O... AzureLongRunni... Running  True            localhost  Start-AzPolicyCompliance...

Wanneer de nalevingsscan is voltooid, wordt de State eigenschap gewijzigd in Voltooid.

Evaluatiescan op aanvraag met Visual Studio Code

De Azure Policy-extensie voor Visual Studio Code kan een evaluatiescan uitvoeren voor een specifieke resource. Deze scan is een synchroon proces, in tegenstelling tot de Azure PowerShell- en REST-methoden. Zie Evaluatie op aanvraag met de VS Code-extensie voor meer informatie en stappen.

Evaluatiescan op aanvraag met Behulp van GitHub Actions

Gebruik de actie Nalevingsscan van Azure Policy om een evaluatiescan op aanvraag te activeren vanuit uw GitHub-werkstroom op een of meer resources, resourcegroepen of abonnementen, en de werkstroom te gateen op basis van de nalevingsstatus van resources. U kunt de werkstroom ook zo configureren dat deze op een gepland tijdstip wordt uitgevoerd, zodat u de meest recente nalevingsstatus op een handig moment krijgt. GitHub Actions kan eventueel een rapport genereren over de nalevingsstatus van gescande resources voor verdere analyse of voor archivering.

In het volgende voorbeeld wordt een nalevingsscan voor een abonnement uitgevoerd. Gebruik scopes uw abonnements-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

Zie de GitHub Actions for Azure Policy Compliance Scan-opslagplaats voor meer informatie en werkstroomvoorbeelden.

Portal

Azure Portal toont een grafische ervaring voor het visualiseren en begrijpen van de nalevingsstatus in uw omgeving. Op de pagina Beleid bevat de optie Overzicht details voor beschikbare bereiken over de naleving van zowel beleidsregels als initiatieven. Samen met de nalevingsstatus en het aantal per toewijzing bevat het een grafiek met de naleving van de afgelopen zeven dagen. De pagina Naleving bevat veel van dezelfde informatie (behalve de grafiek), maar biedt meer filter- en sorteeropties.

Schermopname van de pagina Naleving, filteropties en details.

Omdat een beleid of initiatief kan worden toegewezen aan verschillende bereiken, bevat de tabel het bereik voor elke toewijzing en het type definitie dat is toegewezen. Het aantal niet-compatibele resources en niet-compatibele beleidsregels voor elke toewijzing wordt ook verstrekt. Als u een beleid of initiatief in de tabel selecteert, kunt u dieper ingaan op de naleving van die specifieke toewijzing.

Schermopname van de pagina Nalevingsdetails, inclusief aantallen en resourcecompatibiliteitsgegevens.

In de lijst met resources op het tabblad Resourcenaleving ziet u de evaluatiestatus van bestaande resources voor de huidige toewijzing. Het tabblad wordt standaard ingesteld op Niet-compatibel, maar kan worden gefilterd. Gebeurtenissen (toevoegen, controleren, weigeren, implementeren, wijzigen) geactiveerd door de aanvraag om een resource te maken, worden weergegeven op het tabblad Gebeurtenissen .

Schermopname van het tabblad Gebeurtenissen op de pagina Nalevingsdetails.

Voor resourceprovidermodusresources selecteert u op het tabblad Resourcecompatibiliteit de resource of klikt u met de rechtermuisknop op de rij en selecteert u Nalevingsdetails weergeven de details van de onderdeelnaleving. Deze pagina biedt ook tabbladen om de beleidsregels weer te geven die zijn toegewezen aan deze resource, gebeurtenissen, onderdeelgebeurtenissen en wijzigingsgeschiedenis.

Schermopname van het tabblad Onderdeelnaleving en nalevingsdetails voor een toewijzing van de resourceprovidermodus.

Ga terug naar de pagina resourcecompatibiliteit en houd deze ingedrukt (of klik er met de rechtermuisknop op) in de rij van de gebeurtenis waarover u meer informatie wilt verzamelen en selecteer Activiteitenlogboeken weergeven. De pagina activiteitenlogboek wordt geopend en is vooraf gefilterd op de zoekopdracht met details voor de toewijzing en de gebeurtenissen. Het activiteitenlogboek biedt meer context en informatie over deze gebeurtenissen.

Schermopname van het activiteitenlogboek voor Activiteiten en evaluaties van Azure Policy.

Notitie

Nalevingsresultaten kunnen vanuit de portal worden geëxporteerd met Azure Resource Graph-query's.

Opdrachtregel

Dezelfde informatie die beschikbaar is in de portal, kan worden opgehaald met de REST API, Azure CLI en Azure PowerShell.

REST-API

Zie de Naslaginformatie over Azure Policy voor meer informatie over de REST API. De REST API-referentiepagina's hebben een optie Uitproberen voor elke bewerking waarmee u de opdracht in een browser kunt uitvoeren. U kunt ook Azure CLI of de REST API-client van uw voorkeur gebruiken om opdrachten uit te voeren.

Resultaten samenvatten

Met de REST API kunt u samenvatten op container, definitie of toewijzing. Hier volgt een voorbeeld van samenvatting op abonnementsniveau met behulp van het overzicht van Azure Policy Insight voor abonnement:

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01

De uitvoer geeft een overzicht van het abonnement en de samengevatte naleving vindt u in de nonCompliantResources en nonCompliantPolicies eigenschappen. Deze aanvraag bevat andere details, inclusief elke toewijzing die de niet-compatibele nummers en de definitie-informatie voor elke toewijzing bevat. Elk beleidsobject in de hiërarchie biedt een queryResultsUri object dat kan worden gebruikt om meer details op dat niveau te krijgen.

Query's uitvoeren op resources

In het vorige voorbeeld value.policyAssignments.policyDefinitions.results.queryResultsUri ziet u een voorbeeld-URI voor alle niet-compatibele resources voor een specifieke beleidsdefinitie. In de $filter waarde is ComplianceState gelijk aan (eq) aan NonCompliant, PolicyAssignmentId wordt opgegeven voor de beleidsdefinitie en vervolgens de PolicyDefinitionId zelf. De reden voor het opnemen van het PolicyAssignmentId filter is omdat het PolicyDefinitionId kan bestaan in verschillende beleids- of initiatieftoewijzingen met verschillende bereiken. Door zowel de PolicyAssignmentId als de PolicyDefinitionId, kunnen we expliciet zijn in de resultaten die we zoeken. Eerder, voor PolicyStates we gebruikten latest, waarmee automatisch een from en to tijdvenster van de afgelopen 24 uur wordt ingesteld.

Voorbeeld van de queryResultsUri waarde:

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'

Gebeurtenissen weergeven

Wanneer een resource wordt gemaakt of bijgewerkt, wordt er een resultaat voor beleidsevaluatie gegenereerd. Resultaten worden beleidsevenementen genoemd. Gebruik de volgende URI om recente beleidsevenementen weer te geven die zijn gekoppeld aan het abonnement.

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01

Zie Azure Policy-gebeurtenissen voor meer informatie over het uitvoeren van query's op beleidsevenementen.

Azure-CLI

De Azure CLI-opdrachtgroep voor Azure Policy omvat de meeste bewerkingen die beschikbaar zijn in REST of Azure PowerShell. Zie az policy voor de volledige lijst met beschikbare opdrachten.

Haal de statussamenvatting op voor het meest toegewezen beleid met het hoogste aantal niet-compatibele resources.

az policy state summarize --top 1

Haal de statusrecord op voor de laatst geëvalueerde resource en de uitvoer is standaard ingesteld op tijdstempel in aflopende volgorde.

az policy state list --top 1

Haal de details op voor alle niet-compatibele virtuele netwerkbronnen.

az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"

Gebeurtenissen ophalen met betrekking tot niet-compatibele virtuele netwerkbronnen die zich na een specifieke datum hebben voorgedaan. Gebruik de from parameter met een datum in ISO 8601-indeling.

az policy event list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2025-02-10T00:00:00Z'

Azure PowerShell

U kunt de volgende opdrachten uitvoeren vanuit Azure Cloud Shell.

Haal de statussamenvatting op voor het meest toegewezen beleid met het hoogste aantal niet-compatibele resources.

Get-AzPolicyStateSummary -Top 1

Haal de statusrecord op voor de laatst geëvalueerde resource. De uitvoer is standaard ingesteld op tijdstempel in aflopende volgorde.

Get-AzPolicyState -Top 1

Haal de details op voor alle niet-compatibele virtuele netwerkbronnen.

Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"

Gebeurtenissen ophalen met betrekking tot niet-compatibele virtuele netwerkbronnen die zich na een specifieke datum hebben voorgedaan. Gebruik de From parameter met een datum in ISO 8601-indeling.

Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2025-02-10'

De uitvoer bevat een PrincipalOid eigenschap die kan worden gebruikt om een specifieke gebruiker met de Azure PowerShell-cmdlet Get-AzADUserop te halen. Vervang {principalOid} door de waarde die u uit de vorige opdracht krijgt.

(Get-AzADUser -ObjectId {principalOid}).DisplayName

Azure Monitor-logboeken

Als u een Log Analytics-werkruimte hebt met AzureActivity de Log Analytics-oplossing Voor activiteiten die zijn gekoppeld aan uw abonnement, kunt u ook niet-nalevingsresultaten bekijken van de evaluatie van nieuwe en bijgewerkte resources met behulp van Kusto-query's en de AzureActivity tabel. Met details in Azure Monitor-logboeken kunnen waarschuwingen worden geconfigureerd om te controleren op niet-naleving.

Azure Resource Graph

Nalevingsrecords worden opgeslagen in Azure Resource Graph (ARG). Gegevens kunnen worden geëxporteerd uit ARG-query's om aangepaste dashboards te vormen op basis van de bereiken en beleidsregels die van belang zijn. Bekijk onze voorbeeldquery's voor het exporteren van nalevingsgegevens via ARG.

Volgende stappen