Quickstart: Een beleidstoewijzing maken om niet-compatibele resources met REST API te identificeren

De eerste stap in het begrijpen van naleving in Azure is het identificeren van de status van uw resources. In deze quickstart gaat u een beleidstoewijzing maken voor het identificeren van virtuele machines die geen beheerde schijven gebruiken.

Als u dit proces helemaal hebt doorlopen, kunt u virtuele machines identificeren die geen beheerde schijven gebruiken. Ze zijn niet-compatibel met de beleidstoewijzing.

REST API wordt gebruikt om Azure-resources te maken en beheren. In deze gids wordt REST API gebruikt om een beleidstoewijzing te maken om niet-compatibele resources te identificeren in uw Azure-omgeving.

Vereisten

  • Als u nog geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

  • Installeer ARMClient als u dit nog niet hebt gedaan. Dit is een hulpprogramma waarmee HTTP-aanvragen worden verzonden naar Azure Resource Manager-REST API’s. U kunt ook de functie Probeer het nu in de REST-documentatie gebruiken of hulpprogramma’s als Invoke-RestMethod of Postman in PowerShell.

Azure Cloud Shell gebruiken

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde opdrachten van Cloud Shell gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Nu proberen in de rechterbovenhoek van een codeblok. Als u Uitproberen selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell. Voorbeeld van Uitproberen voor Azure Cloud Shell
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Cloud Shell starten in een nieuw venster
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Knop Cloud Shell in de Azure Portal

Om de code in dit artikel in Azure Cloud Shell uit te voeren:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.

  3. Plak de code in de Cloud Shell-sessie door CTRL+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V op macOS te selecteren.

  4. Selecteer Invoeren om de code uit te voeren.

Een beleidstoewijzing maken

In deze quickstart maakt u een beleidstoewijzing en wijst u de definitie Controleer virtuele machines die niet gebruikmaken van beheerde schijven (06a78e20-9358-41c9-923c-fb736d382a4d) toe. Deze beleidsdefinitie identificeert resources die niet voldoen aan de voorwaarden die zijn vastgelegd in de beleidsdefinitie.

Voer de volgende opdracht uit om een beleidstoewijzing te maken:

  • REST API-URI

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/policyAssignments/audit-vm-manageddisks?api-version=2021-09-01
    
  • Aanvraagtekst

    {
      "properties": {
        "displayName": "Audit VMs without managed disks Assignment",
        "description": "Shows all virtual machines not using managed disks",
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d",
        "nonComplianceMessages": [
            {
                "message": "Virtual machines should use a managed disk"
            }
        ]
      }
    }
    

Het voorgaande eindpunt en de aanvraagbody maken gebruik van de volgende informatie:

REST API-URI:

  • Bereik: een bereik bepaalt voor welke resources of groep resources de beleidstoewijzing wordt afgedwongen. Het kan variëren van een beheergroep tot een afzonderlijke resource. Zorg dat u {scope} vervangt door een van de volgende patronen:
    • Beheergroep: /providers/Microsoft.Management/managementGroups/{managementGroup}
    • Abonnement: /subscriptions/{subscriptionId}
    • Resourcegroep: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
    • Resource: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}
  • Naam: de werkelijke naam van de toewijzing. Voor dit voorbeeld is audit-vm-manageddisks gebruikt.

Aanvraagbody:

  • Weergavenaam: de weergavenaam voor de beleidstoewijzing. In dit geval gebruikt u de toewijzing Virtuele machines zonder beheerde schijven controleren.
  • Beschrijving: een grondigere uitleg van wat het beleid doet of waarom het aan dit bereik is toegewezen.
  • policyDefinitionId: de id van de beleidsdefinitie, op basis waarvan u de toewijzing maakt. In dit geval is het de id van de beleidsdefinitie Virtuele machines zonder beheerde schijven controleren.
  • nonComplianceMessages: stel het bericht in dat wordt weergegeven wanneer een resource wordt geweigerd vanwege niet-naleving of als niet-compatibel wordt geëvalueerd. Zie toewijzingsberichten voor niet-naleving voor meer informatie.

Niet-compatibele resources identificeren

Als u de resources wilt bekijken die niet compatibel zijn onder deze nieuwe toewijzing, voert u de volgende opdracht uit om de resource-id's te verkrijgen van de niet-compatibele resources. Deze worden uitgevoerd naar een JSON-bestand:

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$filter=IsCompliant eq false and PolicyAssignmentId eq 'audit-vm-manageddisks'&$apply=groupby((ResourceId))"

De resultaten zien er ongeveer als volgt uit:

{
    "@odata.context": "https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest",
    "@odata.count": 3,
    "value": [{
            "@odata.id": null,
            "@odata.context": "https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
            "ResourceId": "/subscriptions/<subscriptionId>/resourcegroups/<rgname>/providers/microsoft.compute/virtualmachines/<virtualmachineId>"
        },
        {
            "@odata.id": null,
            "@odata.context": "https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
            "ResourceId": "/subscriptions/<subscriptionId>/resourcegroups/<rgname>/providers/microsoft.compute/virtualmachines/<virtualmachine2Id>"
        },
        {
            "@odata.id": null,
            "@odata.context": "https://management.azure.com/subscriptions/<subscriptionId>/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
            "ResourceId": "/subscriptions/<subscriptionName>/resourcegroups/<rgname>/providers/microsoft.compute/virtualmachines/<virtualmachine3Id>"
        }

    ]
}

De resultaten zijn vergelijkbaar met wat in de weergave van de Azure-portal meestal wordt vermeld onder Niet-compatibele resources.

Resources opschonen

Voer de volgende opdracht uit om de beleidstoewijzing te verwijderen:

DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/policyAssignments/audit-vm-manageddisks?api-version=2021-09-01

Vervang {scope} door het bereik dat u gebruikte toen u de beleidstoewijzing voor het eerst maakte.

Volgende stappen

In deze Quick Start hebt u een beleidsdefinitie toegewezen om niet-compatibele resources in uw Azure-omgeving te identificeren.

Ga voor meer informatie over het toewijzen van beleid om te controleren of nieuwe resources conform zijn verder met de zelfstudie voor: