Snabbstart: Skapa en principtilldelning för att identifiera icke-kompatibla resurser med REST API
Det första steget mot att förstå kompatibilitet i Azure är att identifiera dina resursers status. Denna snabbstart vägleder dig genom processen för att skapa en principtilldelning som identifierar virtuella datorer som inte använder hanterade diskar.
Efter den här genomgången kommer du att kunna identifiera virtuella datorer som inte använder hanterade diskar. De är inkompatibla med principtilldelningen.
REST API används för att skapa och hantera Azure-resurser. I den här REST API du skapa en principtilldelning och identifiera icke-kompatibla resurser i Azure-miljön.
Förutsättningar
Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Om du inte redan har gjort det installerar du ARMClient. Det är ett verktyg som skickar HTTP-begäranden till Azure Resource Manager rest-API:er. Du kan också använda funktionen "Prova" i REST-dokumentationen eller verktyg som PowerShells Invoke-RestMethod eller Postman.
Använda Azure Cloud Shell
Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln utan att behöva installera något i din lokala miljö.
Så här startar du Azure Cloud Shell:
| Alternativ | Exempel/länk |
|---|---|
| Välj Prova i det övre högra hörnet av ett kodblock. Om du väljer Prova kopieras koden inte automatiskt till Cloud Shell. | ![]() |
| Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. | ![]() |
| Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. | ![]() |
Så här kör du koden i den här artikeln i Azure Cloud Shell:
Starta Cloud Shell.
Kopiera koden genom att klicka på knappen Kopiera på ett kodblock.
Klistra in koden i Cloud Shell-sessionen genom att välja Ctrl+Skift+V på Windows och Linux eller genom att välja Cmd+Skift+V på macOS.
Välj Retur för att köra koden.
Skapa en principtilldelning
I den här snabbstarten skapar du en principtilldelning och tilldelar definitionen Granska virtuella datorer som inte använder hanterade diskar ( 06a78e20-9358-41c9-923c-fb736d382a4d ). Den här principdefinitionen identifierar resurser som inte uppfyller villkoren i principdefinitionen.
Kör följande kommando för att skapa en ny principtilldelning:
REST API-URI
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/policyAssignments/audit-vm-manageddisks?api-version=2021-09-01Begärandetext
{ "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" } ] } }
Föregående slutpunkt och begärandetext använder följande information:
REST API URI:
- Omfång – Ett omfång avgör vilka resurser eller grupper med resurser som principtilldelningen används på. Det kan vara allt från en hanteringsgrupp till en enskild resurs. Se till att
{scope}ersätta med något av följande mönster:- Hanteringsgrupp:
/providers/Microsoft.Management/managementGroups/{managementGroup} - Prenumeration:
/subscriptions/{subscriptionId} - Resursgrupp:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName} - Resurs:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}
- Hanteringsgrupp:
- Namn – det faktiska namnet på tilldelningen. I det här exemplet användes audit-vm-manageddisks.
Begärandetext:
- Visningsnamn – Visningsnamn för principtilldelningen. I det här fallet använder du Tilldelningen Granska virtuella datorer utan hanterade diskar.
- Beskrivning – En djupare förklaring av vad principen gör eller varför den har tilldelats till det här omfånget.
- policyDefinitionId – Principdefinitions-ID:t som du använder för att skapa tilldelningen. I det här fallet är det ID:t för principdefinitionen Granska virtuella datorer som inte använder hanterade diskar.
- nonComplianceMessages – Ange det meddelande som visas när en resurs nekas på grund av inkompatibilitet eller utvärderas som icke-kompatibel. Mer information finns i tilldelningsmeddelanden som inte uppfyller efterlevnadsvillkoren.
Identifiera icke-kompatibla resurser
Om du vill visa de resurser som inte är kompatibla under den här nya tilldelningen kör du följande kommando för att hämta resurs-ID:erna för de icke-kompatibla resurser som matas ut till en JSON-fil:
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))"
Ditt resultat liknar följande exempel:
{
"@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>"
}
]
}
Resultatet är jämförbart med det du vanligtvis skulle se under Icke-kompatibla resurser i Azure-portalens vy.
Rensa resurser
Om du vill ta bort den skapade tilldelningen använder du följande kommando:
DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/policyAssignments/audit-vm-manageddisks?api-version=2021-09-01
Ersätt {scope} med det omfång som du använde när du först skapade principtilldelningen.
Nästa steg
I den här snabbstarten har du tilldelat en principdefinition för att identifiera icke-kompatibla resurser i Azure-miljön.
Om du vill ha mer information om tilldelning av principer för att validera att de nya resurserna är kompatibla fortsätter du till självstudien för att:


