Rövid útmutató: Szabályzat-hozzárendelés létrehozása a rest API-val nem megfelelő erőforrások azonosításához
Az Azure-ral való megfelelőség megértéséhez szükséges első lépés a saját erőforrásai állapotának megállapítása. Ebben a rövid útmutatóban egy szabályzat-hozzárendelést hoz létre, amely a REST API használatával azonosítja a nem megfelelő erőforrásokat. A szabályzat egy erőforráscsoporthoz van rendelve, és naplóz egy felügyelt lemezt nem használó virtuális gépeket. A szabályzat-hozzárendelés létrehozása után azonosítja a nem megfelelő virtuális gépeket.
Ez az útmutató REST API használatával hoz létre szabályzat-hozzárendelést, és azonosítja a nem megfelelő erőforrásokat az Azure-környezetben. A cikkben szereplő példák a PowerShellt és az Azure CLI-parancsokat az rest
használják. A parancsokat egy Bash-rendszerhéjból, például a az rest
Git Bashből is futtathatja.
Beépített szabályzat- vagy kezdeményezésdefiníciók hozzárendelésekor nem kötelező egy verzióra hivatkozni. A beépített definíciók házirend-hozzárendelései alapértelmezés szerint a legújabb verzióhoz lesznek hozzárendelve, és ha másként nincs megadva, automatikusan öröklik az alverzió módosításait.
Előfeltételek
- Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
- A PowerShell legújabb verziója vagy egy Bash-rendszerhéj, például a Git Bash.
- Az Azure CLI legújabb verziója.
- Visual Studio Code.
- Legalább egy olyan virtuális géppel rendelkező erőforráscsoport, amely nem használ felügyelt lemezeket.
A REST API szintaxisának áttekintése
A REST API-parancsok futtatásának két eleme van: a REST API URI és a kérelem törzse. További információ: Szabályzat-hozzárendelések – Létrehozás.
Az alábbi példa a REST API URI szintaxisát mutatja be egy szabályzatdefiníció létrehozásához.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2023-04-01
scope
: A hatókör határozza meg, hogy a szabályzat-hozzárendelés mely erőforrásokra vagy erőforráscsoportokra lesz kényszerítve. A felügyeleti csoporttól az egyes erőforrásokig terjedhet. Cserélje le{scope}
az alábbi minták egyikére:- Felügyeleti csoport:
/providers/Microsoft.Management/managementGroups/{managementGroup}
- Előfizetés:
/subscriptions/{subscriptionId}
- Erőforráscsoport:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
- Forrás:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}
- Felügyeleti csoport:
policyAssignmentName
: Létrehozza a hozzárendelés házirend-hozzárendelésének nevét. A név szerepel a szabályzat-hozzárendelés tulajdonságábanpolicyAssignmentId
.
Az alábbi példa a kérelem törzsfájljának létrehozásához szükséges JSON.
{
"properties": {
"displayName": "",
"description": "",
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/11111111-1111-1111-1111-111111111111",
"nonComplianceMessages": [
{
"message": ""
}
]
}
}
displayName
: A szabályzat-hozzárendelés megjelenítendő neve.description
: A szabályzat-hozzárendelés környezetének hozzáadására használható.policyDefinitionId
: A hozzárendelés létrehozásához tartozó szabályzatdefiníció azonosítója.nonComplianceMessages
: Állítsa be azt az üzenetet, amelyet akkor használjon, ha egy erőforrás nem megfelelőként van kiértékelve. További információ: hozzárendelési nemmegfelelési üzenetek.
Csatlakozás az Azure szolgáltatáshoz
Egy Visual Studio Code-terminál munkamenetből csatlakozzon az Azure-hoz. Ha több előfizetéssel rendelkezik, futtassa a parancsokat az előfizetés környezetének beállításához. Cserélje le a <subscriptionID>
értékét a saját Azure-előfizetése azonosítójára.
az login
# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription <subscriptionID>
Akkor is használhatja az login
, ha PowerShellt használ, mert a példák az Azure CLI az rest parancsokat használják.
Szabályzat-hozzárendelés létrehozása
Ebben a példában létrehoz egy szabályzat-hozzárendelést, és hozzárendeli a felügyelt lemezdefiníciót nem használó naplózási virtuális gépeket.
A hozzárendelés létrehozásához kérelemtörzsre van szükség. Mentse a következő JSON-t egy request-body.json nevű fájlba.
{
"properties": {
"displayName": "Audit VM managed disks",
"description": "Policy assignment to resource group scope created with REST API",
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d",
"nonComplianceMessages": [
{
"message": "Virtual machines should use managed disks"
}
]
}
}
Ha egy meglévő erőforráscsoport-hatókörben szeretné létrehozni a szabályzat-hozzárendelést, használja a következő REST API URI-t a kérelem törzsének fájljával. Cserélje le és {resourceGroupName}
cserélje le {subscriptionId}
az értékeket. A parancs JSON-kimenetet jelenít meg a rendszerhéjban.
az rest --method put --uri https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks?api-version=2023-04-01 --body `@request-body.json
A PowerShellben a háttérrendszerre (`
) van szükség a at sign
(@
) fájlnév megadásához. Egy Olyan Bash-rendszerhéjban, mint a Git Bash, hagyja ki a háttérrendszert.
További információ: Szabályzat-hozzárendelések – Létrehozás.
A nem megfelelő erőforrások azonosítása
Az új szabályzat-hozzárendelés megfelelőségi állapota néhány percet vesz igénybe, amíg aktívvá válik, és eredményeket ad a szabályzat állapotáról. A REST API-val megjelenítheti a szabályzat-hozzárendelés nem megfelelő erőforrásait, a kimenet pedig JSON-ban van.
A nem megfelelő erőforrások azonosításához futtassa a következő parancsot. Cserélje le {subscriptionId}
és {resourceGroupName}
használja a szabályzat-hozzárendelés létrehozásakor használt értékeket.
az rest --method post --uri https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01 --uri-parameters `$filter="complianceState eq 'NonCompliant' and PolicyAssignmentName eq 'audit-vm-managed-disks'"
A filter
szabályzat-hozzárendeléssel létrehozott audit-vm-managed-disks nevű szabályzatdefiníciónak nem megfelelőként értékelt erőforrások lekérdezései . Ismét figyelje meg, hogy a backtick a szűrőben lévő dollárjel ($
) kimenekítésére szolgál. Bash-ügyfél esetén a fordított perjel (\
) egy gyakori feloldó karakter.
Az eredmények a következő példához hasonlók:
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest",
"@odata.count": 1,
"@odata.nextLink": null,
"value": [
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"@odata.id": null,
"complianceReasonCode": "",
"complianceState": "NonCompliant",
"effectiveParameters": "",
"isCompliant": false,
"managementGroupIds": "",
"policyAssignmentId": "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.authorization/policyassignments/audit-vm-managed-disks",
"policyAssignmentName": "audit-vm-managed-disks",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "",
"policyAssignmentScope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"policyAssignmentVersion": "",
"policyDefinitionAction": "audit",
"policyDefinitionCategory": "tbd",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/providers/microsoft.authorization/policydefinitions/06a78e20-9358-41c9-923c-fb736d382a4d",
"policyDefinitionName": "06a78e20-9358-41c9-923c-fb736d382a4d",
"policyDefinitionReferenceId": "",
"policyDefinitionVersion": "1.0.0",
"policySetDefinitionCategory": "",
"policySetDefinitionId": "",
"policySetDefinitionName": "",
"policySetDefinitionOwner": "",
"policySetDefinitionParameters": "",
"policySetDefinitionVersion": "",
"resourceGroup": "{resourceGroupName}",
"resourceId": "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.compute/virtualmachines/{vmName}>",
"resourceLocation": "westus3",
"resourceTags": "tbd",
"resourceType": "Microsoft.Compute/virtualMachines",
"subscriptionId": "{subscriptionId}",
"timestamp": "2024-03-26T02:19:28.3720191Z"
}
]
}
További információ: Szabályzatállapotok – Az erőforráscsoport lekérdezési eredményeinek listázása.
Az erőforrások eltávolítása
A szabályzat-hozzárendelés eltávolításához használja az alábbi parancsot. Cserélje le {subscriptionId}
és {resourceGroupName}
használja a szabályzat-hozzárendelés létrehozásakor használt értékeket. A parancs JSON-kimenetet jelenít meg a rendszerhéjban.
az rest --method delete --uri https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks?api-version=2023-04-01
Az alábbi paranccsal ellenőrizheti, hogy a szabályzat-hozzárendelés törölve lett-e. Megjelenik egy üzenet a rendszerhéjban.
az rest --method get --uri https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks?api-version=2023-04-01
The policy assignment 'audit-vm-managed-disks' is not found.
További információ: Szabályzat-hozzárendelések – Törlés és szabályzat-hozzárendelések – Lekérés.
Következő lépések
Ebben a rövid útmutatóban hozzárendelt egy szabályzatdefiníciót az Azure-környezetben megtalálható, nem megfelelő erőforrások azonosítása céljából.
Ha többet szeretne megtudni az erőforrás-megfelelőséget érvényesítő szabályzatok hozzárendeléséről, folytassa az oktatóanyagban.