Az Azure-erőforrások megfelelőségi adatainak lekérése
Az Azure Policy egyik legnagyobb előnye, hogy betekintést és vezérlést biztosít az előfizetések vagy az előfizetések felügyeleti csoportjában lévő erőforrások felett. Ezzel a vezérlővel megakadályozhatja, hogy az erőforrások rossz helyen legyenek létrehozva, közös és konzisztens címkehasználatot kényszerítsen ki, vagy a meglévő erőforrásokat naplózhassa a megfelelő konfigurációkhoz és beállításokhoz. Az Azure Policy minden esetben adatokat hoz létre, amelyek lehetővé teszik a környezet megfelelőségi állapotának megértését.
A megfelelőségi adatok áttekintése előtt fontos megismerni az Azure Policy megfelelőségi állapotát .
A szabályzat- és kezdeményezési hozzárendelések által létrehozott megfelelőségi információk többféleképpen is elérhetők:
- Az Azure Portal használata
- Parancssori szkriptek használatával
- Az Azure Monitor-naplók megtekintésével
- Azure Resource Graph-lekérdezéseken keresztül
Mielőtt áttekintené a megfelelőségi jelentéskészítés módszereit, nézzük meg, hogy mikor frissülnek a megfelelőségi információk, és hogy milyen gyakorisággal és események indítják el a kiértékelési ciklust.
Kiértékelési eseményindítók
A befejezett kiértékelési ciklus eredményei elérhetők az erőforrás-szolgáltatóban a Microsoft.PolicyInsights
műveleteken PolicyEvents
keresztülPolicyStates
. Az Azure Policy Insights REST API működésével kapcsolatos további információkért tekintse meg az Azure Policy Insightst.
A hozzárendelt szabályzatok és kezdeményezések értékelése különböző események eredményeként történik:
Egy szabályzat vagy kezdeményezés újonnan van hozzárendelve egy hatókörhöz. A hozzárendelés a megadott hatókörre való alkalmazása körülbelül öt percet vesz igénybe, majd a kiértékelési ciklus megkezdődik az újonnan hozzárendelt szabályzattal vagy kezdeményezéssel szemben alkalmazandó erőforrások esetében. A használt hatásoktól függően az erőforrások megfelelőként, nem megfelelőként, kivételként vagy ismeretlenként vannak megjelölve. A nagy mennyiségű erőforrással kiértékelt nagy szabályzatok vagy kezdeményezések időigényesek lehetnek, így nem várható előre, hogy mikor fejeződik be az értékelési ciklus. A befejezés után frissített megfelelőségi eredmények érhetők el a portálon és az SDK-kban.
Egy hatókörhöz már hozzárendelt szabályzat vagy kezdeményezés frissül. A forgatókönyv kiértékelési ciklusa és időzítése megegyezik a hatókörhöz való új hozzárendeléssel.
Egy erőforrás üzembe helyezve vagy frissítve van egy hatókörön belül egy hozzárendeléssel az Azure Resource Manageren, a REST API-on vagy egy támogatott SDK-on keresztül. Ebben a forgatókönyvben a effektusesemény (hozzáfűzés, naplózás, megtagadás, üzembe helyezés) és az adott erőforrás megfelelő állapotadatai körülbelül 15 perccel később elérhetővé válnak a portálon és az SDK-kban. Ez az esemény nem okoz más erőforrások kiértékelését.
A rendszer létrehoz vagy áthelyez egy előfizetést (erőforrástípust
Microsoft.Resources/subscriptions
) egy felügyeleticsoport-hierarchiában , amelynek hozzárendelt szabályzatdefiníciója az előfizetés erőforrástípusát célozza. Az előfizetés által támogatott hatások (audit, auditIfNotExist, deployIfNotExists, modify), naplózás és a szervizelési műveletek kiértékelése körülbelül 30 percet vesz igénybe.Létrejön , frissít vagy töröl egy házirend-kivételt . Ebben a forgatókönyvben a megfelelő hozzárendelés kiértékelése a megadott kivételi hatókörhöz történik.
Standard megfelelőségi értékelési ciklus. 24 óránként automatikusan újraértékesíti a feladatokat. Sok erőforrás nagy szabályzata vagy kezdeményezése időt vehet igénybe, ezért nincs előre meghatározott elvárás az értékelési ciklus befejezésére. Miután elkészült, a frissített megfelelőségi eredmények elérhetők a portálon és az SDK-kban.
A gép konfigurációs erőforrás-szolgáltatója egy felügyelt erőforrás megfelelőségi adataival frissül.
Igény szerinti vizsgálat
Feljegyzés
Az Azure Policy az előfizetések és erőforráscsoportok kivételével az erőforrás-szolgáltató (RP) hatálya alá tartozó Microsoft.Resources
összes erőforrást mentesíti a szabályzatok kiértékelése alól, kivéve az előfizetéseket és az erőforráscsoportokat, amelyek kiértékelhetők.
Igény szerinti értékelési vizsgálat
Egy előfizetés vagy erőforráscsoport kiértékelési vizsgálata elindítható az Azure CLI-vel, az Azure PowerShell-lel, a REST API hívásával vagy az Azure Policy Compliance Scan GitHub-művelettel. Ez a vizsgálat egy aszinkron folyamat.
Feljegyzés
Nem minden Azure-erőforrás-szolgáltató támogatja az igény szerinti kiértékelési vizsgálatokat. Az Azure Virtual Network Manager (AVNM) például jelenleg nem támogatja sem a manuális eseményindítókat, sem a standard szabályzatmegfelelőségi értékelési ciklust (napi vizsgálatok).
Igény szerinti kiértékelési vizsgálat – GitHub-művelet
Az Azure Policy Compliance Scan műveletével igény szerinti kiértékelést indíthat el a GitHub-munkafolyamatból egy vagy több erőforráson, erőforráscsoporton vagy előfizetésen, és az erőforrások megfelelőségi állapota alapján kaput nyithat a munkafolyamatban. A munkafolyamatot úgy is konfigurálhatja, hogy ütemezett időpontban fusson, hogy kényelmesen megkapja a legújabb megfelelőségi állapotot. A GitHub Actions igény szerint jelentést készíthet a beolvasott erőforrások megfelelőségi állapotáról további elemzés vagy archiválás céljából.
Az alábbi példa egy előfizetés megfelelőségi vizsgálatát futtatja.
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@v1
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: Check for resource compliance
uses: azure/policy-compliance-scan@v0
with:
scopes: |
/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
További információ és munkafolyamat-minták: GitHub Actions for Azure Policy Compliance Scan adattár.
Igény szerinti kiértékelési vizsgálat – Azure CLI
A megfelelőségi vizsgálat az az policy state trigger-scan paranccsal kezdődik.
Alapértelmezés szerint az policy state trigger-scan
elindítja az aktuális előfizetés összes erőforrásának kiértékelését. Ha egy adott erőforráscsoporton szeretne kiértékelni, használja a paramétert resource-group
. Az alábbi példa egy megfelelőségi vizsgálatot indít el a MyRG erőforráscsoport aktuális előfizetésében:
az policy state trigger-scan --resource-group "MyRG"
A paraméter folytatása előtt no-wait
dönthet úgy, hogy nem várja meg, amíg az aszinkron folyamat befejeződik.
Igény szerinti kiértékelési vizsgálat – Azure PowerShell
A megfelelőségi vizsgálat a Start-AzPolicyComplianceScan parancsmaggal kezdődik.
Alapértelmezés szerint Start-AzPolicyComplianceScan
elindítja az aktuális előfizetés összes erőforrásának kiértékelését. Ha egy adott erőforráscsoporton szeretne kiértékelni, használja a paramétert ResourceGroupName
. Az alábbi példa egy megfelelőségi vizsgálatot indít el a MyRG erőforráscsoport aktuális előfizetésében:
Start-AzPolicyComplianceScan -ResourceGroupName 'MyRG'
A PowerShell megvárhatja, amíg az aszinkron hívás befejeződik, mielőtt megadja az eredménykimenetet, vagy feladatként futtatja a háttérben. Ha PowerShell-feladattal szeretné futtatni a megfelelőségi vizsgálatot a háttérben, használja a AsJob
paramétert, és állítsa be az értéket egy objektumra, például $job
ebben a példában:
$job = Start-AzPolicyComplianceScan -AsJob
A feladat állapotának ellenőrzéséhez ellenőrizze az $job
objektumot. A feladat típusa Microsoft.Azure.Commands.Common.AzureLongRunningJob
. Használja Get-Member
az objektumot az $job
elérhető tulajdonságok és metódusok megtekintéséhez.
Amíg a megfelelőségi vizsgálat fut, az $job
objektum kimenetének ellenőrzése az alábbihoz hasonló eredményeket eredményez:
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 Long Running O... AzureLongRunni... Running True localhost Start-AzPolicyCompliance...
Amikor a megfelelőségi vizsgálat befejeződik, a State
tulajdonság Befejezve értékre változik.
Igény szerinti kiértékelési vizsgálat – REST
Aszinkron folyamatként a vizsgálat indításához szükséges REST-végpont nem várja meg, amíg a vizsgálat befejeződik a válaszadáshoz. Ehelyett egy URI-t biztosít a kért értékelés állapotának lekérdezéséhez.
Minden REST API URI tartalmaz olyan változókat, amelyeket le kell cserélnie saját értékekre:
{YourRG}
– Cserélje le az erőforráscsoport nevére{subscriptionId}
– Cserélje le az előfizetése azonosítójára
A vizsgálat támogatja az előfizetésben vagy erőforráscsoportban lévő erőforrások kiértékelését. Vizsgálat indítása hatókör szerint egy REST API POST-paranccsal a következő URI-struktúrák használatával:
Előfizetés
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Erőforráscsoport
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{YourRG}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
A hívás 202 Elfogadva állapotot ad vissza. A válaszfejléc location
egy olyan tulajdonság, amelynek formátuma a következő:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01
{ResourceContainerGUID}
statikusan jön létre a kért hatókörhöz. Ha egy hatókör már futtat egy igény szerinti vizsgálatot, az új vizsgálat nem indul el. Ehelyett az új kérés ugyanazzal {ResourceContainerGUID}
location
az URI-val rendelkezik az állapothoz. Az URI REST API GET parancsa location
egy 202 Elfogadva értéket ad vissza, amíg a kiértékelés folyamatban van. Ha a kiértékelési vizsgálat befejeződött, 200 OK állapotot ad vissza. A befejezett vizsgálat törzse egy JSON-válasz, amelynek állapota:
{
"status": "Succeeded"
}
Igény szerinti kiértékelési vizsgálat – Visual Studio Code
A Visual Studio Code Azure Policy-bővítménye képes egy adott erőforrás kiértékelési vizsgálatának futtatására. Ez a vizsgálat szinkron folyamat, ellentétben az Azure PowerShell és a REST metódusokkal. További részletekért és lépésekért tekintse meg a VS Code bővítmény igény szerinti kiértékelését.
Portál
Az Azure Portal grafikus élményt nyújt a környezet megfelelőségi állapotának vizualizációjához és megértéséhez. A Szabályzat lapon az Áttekintés lehetőség részletes információkat nyújt a szabályzatok és kezdeményezések megfelelőségéről rendelkezésre álló hatókörökről. A megfelelőségi állapot és a hozzárendelésenkénti szám mellett egy diagramot is tartalmaz, amely az elmúlt hét nap megfelelőségét mutatja. A Megfelelőségi oldal sok hasonló információt tartalmaz (kivéve a diagramot), de több szűrési és rendezési lehetőséget biztosít.
Mivel egy szabályzat vagy kezdeményezés különböző hatókörökhöz rendelhető hozzá, a tábla tartalmazza az egyes hozzárendelések hatókörét és a hozzárendelt definíció típusát. Az egyes hozzárendelésekhez a nem megfelelő erőforrások és a nem megfelelő szabályzatok száma is meg van adva. Ha kiválaszt egy szabályzatot vagy kezdeményezést a táblázatban, részletesebben áttekintheti az adott hozzárendelés megfelelőségét.
Az Erőforrásmegfelelőség lapon található erőforrások listája az aktuális hozzárendeléshez tartozó meglévő erőforrások kiértékelési állapotát mutatja. A lap alapértelmezés szerint nem megfelelő, de szűrhető. Az erőforrás létrehozására irányuló kérés által aktivált események (hozzáfűzés, naplózás, megtagadás, üzembe helyezés, módosítás) az Események lapon jelennek meg.
Erőforrás-szolgáltató módú erőforrások esetén az Erőforrás-megfelelőség lapon válassza ki az erőforrást, vagy kattintson a jobb gombbal a sorra, és válassza a Megfelelőségi adatok megtekintése lehetőséget, és megnyitja az összetevő megfelelőségi adatait. Ezen a lapon lapfülek is találhatók az erőforráshoz, eseményekhez, összetevőeseményekhez és változáselőzményekhez rendelt szabályzatok megtekintéséhez.
Térjen vissza az erőforrás-megfelelőségi oldalra, és tartsa lenyomva (vagy kattintson rá a jobb gombbal) azon az eseményen, amelyen további részleteket szeretne gyűjteni, és válassza a Tevékenységnaplók megjelenítése lehetőséget. Megnyílik a tevékenységnapló lapja, és a program előre módosítja a kereséshez a hozzárendelés és az események részleteit megjelenítő kereséshez. A tevékenységnapló több kontextust és információt tartalmaz ezekről az eseményekről.
Feljegyzés
A megfelelőségi eredmények exportálhatók a portálról az Azure Resource Graph-lekérdezéseken keresztül.
Parancssor
A portálon elérhető információk a REST API-val (beleértve az ARMClientet), az Azure PowerShell-lel és az Azure CLI-vel is lekérhetők. A REST API-val kapcsolatos részletes információkért tekintse meg az Azure Policy-referenciát . A REST API referenciaoldalain minden műveletnél van egy zöld Try It gomb, amely lehetővé teszi, hogy közvetlenül a böngészőben próbálja ki.
A REST API-példákhoz az ARMClient vagy egy hasonló eszköz használatával kezelheti az Azure-ban történő hitelesítést.
Eredmények összegzése
A REST API-val az összegzés tárolóval, definícióval vagy hozzárendeléssel végezhető el. Íme egy példa az előfizetés szintjén végzett összegzésre az Azure Policy Insights előfizetéshez készült összegzésével:
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01
A kimenet összegzi az előfizetést. Az alábbi példakimenetben az összegzett megfelelőség az alatt és value.results.nonCompliantPolicies
alatt value.results.nonCompliantResources
van. Ez a kérés további részleteket tartalmaz, beleértve a nem megfelelő számokat alkotó hozzárendeléseket és az egyes hozzárendelések definíciós információit. A hierarchia minden egyes szabályzatobjektuma rendelkezik egy queryResultsUri
olyan objektummal, amellyel részletesebben tájékozódhat ezen a szinten.
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary",
"@odata.count": 1,
"value": [
{
"@odata.id": null,
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary/$entity",
"results": {
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=ComplianceState eq 'NonCompliant'",
"nonCompliantResources": 15,
"nonCompliantPolicies": 1
},
"policyAssignments": [
{
"policyAssignmentId": "/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77",
"policySetDefinitionId": "",
"results": {
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77'",
"nonCompliantResources": 15,
"nonCompliantPolicies": 1
},
"policyDefinitions": [
{
"policyDefinitionReferenceId": "",
"policyDefinitionId": "/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"effect": "deny",
"results": {
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 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'",
"nonCompliantResources": 15
}
}
]
}
]
}
]
}
Erőforrások lekérdezése
Az előző példában value.policyAssignments.policyDefinitions.results.queryResultsUri
egy minta URI-t biztosít az összes nem megfelelő erőforráshoz egy adott szabályzatdefinícióhoz. Az értékben a $filter
ComplianceState értéke egyenlő (eq) NonCompliant
PolicyAssignmentId
a szabályzatdefinícióhoz, majd magát a PolicyDefinitionId azonosítót adja meg. A szűrőbe való beleadás PolicyAssignmentId
oka az, hogy a PolicyDefinitionId
szűrő több különböző hatókörű szabályzat- vagy kezdeményezés-hozzárendelésben is létezhet. Ha mind a kettőt, mind az PolicyAssignmentId
PolicyDefinitionId
értéket megadja, explicitek is lehetnek a keresett eredmények. Korábban használtuklatest
, PolicyStates
amely automatikusan beállítja from
to
az elmúlt 24 óra időkeretét.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2018-05-18 04:28:22Z&$to=2018-05-19 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'
A következő példaválasz egyetlen nem megfelelő erőforrásra lett vágva a rövidség kedvéért. A részletes válasz több adattal rendelkezik az erőforrásról, a szabályzatról vagy kezdeményezésről és a hozzárendelésről. Láthatja azt is, hogy milyen hozzárendelési paraméterek lettek átadva a szabályzatdefiníciónak.
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest",
"@odata.count": 15,
"value": [
{
"@odata.id": null,
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"timestamp": "2018-05-19T04:41:09Z",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/rg-tags/providers/Microsoft.Compute/virtualMachines/linux",
"policyAssignmentId": "/subscriptions/{subscriptionId}/resourceGroups/rg-tags/providers/Microsoft.Authorization/policyAssignments/37ce239ae4304622914f0c77",
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62",
"effectiveParameters": "",
"ComplianceState": "NonCompliant",
"subscriptionId": "{subscriptionId}",
"resourceType": "/Microsoft.Compute/virtualMachines",
"resourceLocation": "westus2",
"resourceGroup": "RG-Tags",
"resourceTags": "tbd",
"policyAssignmentName": "37ce239ae4304622914f0c77",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "{\"tagName\":{\"value\":\"costCenter\"},\"tagValue\":{\"value\":\"Contoso-Test\"}}",
"policyAssignmentScope": "/subscriptions/{subscriptionId}/resourceGroups/RG-Tags",
"policyDefinitionName": "1e30110a-5ceb-460c-a204-c1c3969c6d62",
"policyDefinitionAction": "deny",
"policyDefinitionCategory": "tbd",
"policySetDefinitionId": "",
"policySetDefinitionName": "",
"policySetDefinitionOwner": "",
"policySetDefinitionCategory": "",
"policySetDefinitionParameters": "",
"managementGroupIds": "",
"policyDefinitionReferenceId": ""
}
]
}
Események megtekintése
Erőforrás létrehozásakor vagy frissítésekor a rendszer szabályzatértékelési eredményt hoz létre. Az eredményeket szabályzateseményeknek nevezzük. Az előfizetéshez társított legutóbbi szabályzatesemények megtekintéséhez használja az alábbi URI-t.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01
Az eredmények a következő példához hasonlók:
{
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/$metadata#default",
"@odata.count": 1,
"value": [
{
"@odata.id": null,
"@odata.context": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/$metadata#default/$entity",
"NumAuditEvents": 16
}
]
}
A szabályzatesemények lekérdezéséről további információt az Azure Policy Events referenciacikkében talál.
Azure CLI
Az Azure Policy Azure CLI-parancscsoportja a REST-ben vagy az Azure PowerShellben elérhető legtöbb műveletre vonatkozik. Az elérhető parancsok teljes listáját az Azure CLI – Azure Policy áttekintésében találja.
Példa: A legfelső hozzárendelt szabályzat állapotösszegzőjének lekérése a legmagasabb számú nem megfelelő erőforrással.
az policy state summarize --top 1
A válasz felső része a következő példához hasonlóan néz ki:
{
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#summary/$entity",
"odataid": null,
"policyAssignments": [
{
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8",
"policyDefinitions": [
{
"effect": "audit",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionReferenceId": "",
"results": {
"nonCompliantPolicies": null,
"nonCompliantResources": 398,
"policyDetails": [
{
"complianceState": "noncompliant",
"count": 1
}
],
"policyGroupDetails": [
{
"complianceState": "noncompliant",
"count": 1
}
],
"queryResultsUri": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2020-07-14 14:01:22Z&$to=2020-07-15 14:01:22Z and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8' and PolicyDefinitionId eq '/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a'",
"resourceDetails": [
{
"complianceState": "noncompliant",
"count": 398
},
{
"complianceState": "compliant",
"count": 4
}
]
}
}
],
...
Példa: A legutóbb kiértékelt erőforrás állapotrekordjának lekérése (alapértelmezés szerint az időbélyeg csökkenő sorrendben van).
az policy state list --top 1
[
{
"complianceReasonCode": "",
"complianceState": "Compliant",
"effectiveParameters": "",
"isCompliant": true,
"managementGroupIds": "{managementgroupId}",
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"odataid": null,
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/securitycenterbuiltin",
"policyAssignmentName": "SecurityCenterBuiltIn",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "",
"policyAssignmentScope": "/subscriptions/{subscriptionId}",
"policyAssignmentVersion": "",
"policyDefinitionAction": "auditifnotexists",
"policyDefinitionCategory": "tbd",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/providers/microsoft.authorization/policydefinitions/aa633080-8b72-40c4-a2d7-d00c03e80bed",
"policyDefinitionName": "aa633080-8b72-40c4-a2d7-d00c03e80bed",
"policyDefinitionReferenceId": "identityenablemfaforownerpermissionsmonitoring",
"policyDefinitionVersion": "",
"policyEvaluationDetails": null,
"policySetDefinitionCategory": "security center",
"policySetDefinitionId": "/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8",
"policySetDefinitionName": "1f3afdf9-d0c9-4c3d-847f-89da613e70a8",
"policySetDefinitionOwner": "",
"policySetDefinitionParameters": "",
"policySetDefinitionVersion": "",
"resourceGroup": "",
"resourceId": "/subscriptions/{subscriptionId}",
"resourceLocation": "",
"resourceTags": "tbd",
"resourceType": "Microsoft.Resources/subscriptions",
"subscriptionId": "{subscriptionId}",
"timestamp": "2020-07-15T08:37:07.903433+00:00"
}
]
Példa: Az összes nem megfelelő virtuális hálózati erőforrás részleteinek lekérése.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"
[
{
"complianceReasonCode": "",
"complianceState": "NonCompliant",
"effectiveParameters": "",
"isCompliant": false,
"managementGroupIds": "{managementgroupId}",
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"odataid": null,
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8",
"policyAssignmentName": "e0704696df5e4c3c81c873e8",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "",
"policyAssignmentScope": "/subscriptions/{subscriptionId}",
"policyAssignmentVersion": "",
"policyDefinitionAction": "audit",
"policyDefinitionCategory": "tbd",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionName": "2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionReferenceId": "",
"policyDefinitionVersion": "",
"policyEvaluationDetails": null,
"policySetDefinitionCategory": "",
"policySetDefinitionId": "",
"policySetDefinitionName": "",
"policySetDefinitionOwner": "",
"policySetDefinitionParameters": "",
"policySetDefinitionVersion": "",
"resourceGroup": "RG-Tags",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Microsoft.Network/virtualNetworks/RG-Tags-vnet",
"resourceLocation": "westus2",
"resourceTags": "tbd",
"resourceType": "Microsoft.Network/virtualNetworks",
"subscriptionId": "{subscriptionId}",
"timestamp": "2020-07-15T08:37:07.901911+00:00"
}
]
Példa: A nem megfelelő virtuális hálózati erőforrásokhoz kapcsolódó események lekérése egy adott dátum után.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2020-07-14T00:00:00Z'
[
{
"complianceReasonCode": "",
"complianceState": "NonCompliant",
"effectiveParameters": "",
"isCompliant": false,
"managementGroupIds": "{managementgroupId}",
"odatacontext": "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/$metadata#latest/$entity",
"odataid": null,
"policyAssignmentId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policyassignments/e0704696df5e4c3c81c873e8",
"policyAssignmentName": "e0704696df5e4c3c81c873e8",
"policyAssignmentOwner": "tbd",
"policyAssignmentParameters": "",
"policyAssignmentScope": "/subscriptions/{subscriptionId}",
"policyAssignmentVersion": "",
"policyDefinitionAction": "audit",
"policyDefinitionCategory": "tbd",
"policyDefinitionGroupNames": [
""
],
"policyDefinitionId": "/subscriptions/{subscriptionId}/providers/microsoft.authorization/policydefinitions/2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionName": "2e3197b6-1f5b-4b01-920c-b2f0a7e9b18a",
"policyDefinitionReferenceId": "",
"policyDefinitionVersion": "",
"policyEvaluationDetails": null,
"policySetDefinitionCategory": "",
"policySetDefinitionId": "",
"policySetDefinitionName": "",
"policySetDefinitionOwner": "",
"policySetDefinitionParameters": "",
"policySetDefinitionVersion": "",
"resourceGroup": "RG-Tags",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Microsoft.Network/virtualNetworks/RG-Tags-vnet",
"resourceLocation": "westus2",
"resourceTags": "tbd",
"resourceType": "Microsoft.Network/virtualNetworks",
"subscriptionId": "{subscriptionId}",
"timestamp": "2020-07-15T08:37:07.901911+00:00"
}
]
Azure PowerShell
Az Azure Policyhoz készült Azure PowerShell-modul az Az.PolicyInsights PowerShell-galéria érhető el. A PowerShellGet használatával telepítheti a modult Install-Module -Name Az.PolicyInsights
(győződjön meg arról, hogy telepítve van a legújabb Azure PowerShell ):
# Install from PowerShell Gallery via PowerShellGet
Install-Module -Name Az.PolicyInsights
# Import the downloaded module
Import-Module Az.PolicyInsights
# Login with Connect-AzAccount if not using Cloud Shell
Connect-AzAccount
A modul a következő parancsmagokkal rendelkezik:
Get-AzPolicyStateSummary
Get-AzPolicyState
Get-AzPolicyEvent
Get-AzPolicyRemediation
Remove-AzPolicyRemediation
Start-AzPolicyRemediation
Stop-AzPolicyRemediation
Példa: A legfelső hozzárendelt szabályzat állapotösszegzőjének lekérése a legmagasabb számú nem megfelelő erőforrással.
PS> Get-AzPolicyStateSummary -Top 1
NonCompliantResources : 15
NonCompliantPolicies : 1
PolicyAssignments : {/subscriptions/{subscriptionId}/resourcegroups/RG-Tags/providers/micros
oft.authorization/policyassignments/37ce239ae4304622914f0c77}
Példa: A legutóbb kiértékelt erőforrás állapotrekordjának lekérése (alapértelmezés szerint az időbélyeg csökkenő sorrendben van).
PS> Get-AzPolicyState -Top 1
Timestamp : 5/22/2018 3:47:34 PM
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Network/networkInterfaces/linux316
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
ComplianceState : NonCompliant
SubscriptionId : {subscriptionId}
ResourceType : /Microsoft.Network/networkInterfaces
ResourceLocation : westus2
ResourceGroup : RG-Tags
ResourceTags : tbd
PolicyAssignmentName : 37ce239ae4304622914f0c77
PolicyAssignmentOwner : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction : deny
PolicyDefinitionCategory : tbd
Példa: Az összes nem megfelelő virtuális hálózati erőforrás részleteinek lekérése.
PS> Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"
Timestamp : 5/22/2018 4:02:20 PM
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Network/virtualNetworks/RG-Tags-vnet
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
ComplianceState : NonCompliant
SubscriptionId : {subscriptionId}
ResourceType : /Microsoft.Network/virtualNetworks
ResourceLocation : westus2
ResourceGroup : RG-Tags
ResourceTags : tbd
PolicyAssignmentName : 37ce239ae4304622914f0c77
PolicyAssignmentOwner : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction : deny
PolicyDefinitionCategory : tbd
Példa: Nem megfelelő virtuális hálózati erőforrásokhoz kapcsolódó események lekérése egy adott dátum után, CSV-objektummá konvertálás és fájlba exportálás.
$policyEvents = Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2020-09-19'
$policyEvents | ConvertTo-Csv | Out-File 'C:\temp\policyEvents.csv'
Az objektum kimenete a $policyEvents
következő kimenethez hasonlóan néz ki:
Timestamp : 9/19/2020 5:18:53 AM
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Network/virtualNetworks/RG-Tags-vnet
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags/providers/Mi
crosoft.Authorization/policyAssignments/37ce239ae4304622914f0c77
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62
ComplianceState : NonCompliant
SubscriptionId : {subscriptionId}
ResourceType : /Microsoft.Network/virtualNetworks
ResourceLocation : eastus
ResourceGroup : RG-Tags
ResourceTags : tbd
PolicyAssignmentName : 37ce239ae4304622914f0c77
PolicyAssignmentOwner : tbd
PolicyAssignmentParameters : {"tagName":{"value":"costCenter"},"tagValue":{"value":"Contoso-Test"}}
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/RG-Tags
PolicyDefinitionName : 1e30110a-5ceb-460c-a204-c1c3969c6d62
PolicyDefinitionAction : deny
PolicyDefinitionCategory : tbd
TenantId : {tenantId}
PrincipalOid : {principalOid}
A PrincipalOid
mező használatával lekérhet egy adott felhasználót az Azure PowerShell-parancsmaggal Get-AzADUser
. Cserélje le {principalOid}
az előző példában kapott választ.
PS> (Get-AzADUser -ObjectId {principalOid}).DisplayName
Trent Baker
Azure Monitor-naplók
Ha rendelkezik egy Log Analytics-munkaterülettel , amely AzureActivity
az előfizetéséhez tartozó Tevékenységnapló-elemzési megoldásból származik, az új és frissített erőforrások kiértékelésének nemmegfelelőségi eredményeit is megtekintheti egyszerű Kusto-lekérdezések és a AzureActivity
tábla használatával. Az Azure Monitor-naplók részleteivel a riasztások konfigurálhatók úgy, hogy figyeljék a meg nem feleléseket.
Azure Resource Graph
A megfelelőségi rekordokat az Azure Resource Graph (ARG) tárolja. Az adatok exportálhatók az ARG-lekérdezésekből, hogy testre szabott irányítópultokat alakítsanak ki az érdeklődési körök és szabályzatok alapján. Tekintse át a megfelelőségi adatok ARG-on keresztüli exportálására vonatkozó mintalekérdezéseinket.
Következő lépések
- Tekintse át az Azure Policy-minták példáit.
- Tekintse meg az Azure szabályzatdefiníciók struktúrája szakaszt.
- A Szabályzatok hatásainak ismertetése.
- Megtudhatja, hogyan hozhat létre programozott módon szabályzatokat.
- Megtudhatja, hogyan orvosolhatja a nem megfelelő erőforrásokat.
- Tekintse át, hogy mi az a felügyeleti csoport az erőforrások azure-beli felügyeleti csoportokkal való rendszerezésével.