Azure-erőforrások megfelelőségi adatainak lekérése

A Azure Policy egyik legnagyobb előnye, hogy betekintést és vezérlést biztosít az előfizetések vagy felügyeleti csoportok erőforrásaihoz. 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 a megfelelő konfigurációk és beállítások alapján naplózhassa. Az adatokat minden esetben a Azure Policy hozza létre, hogy megismerhesse a környezet megfelelőségi állapotát.

A megfelelőségi adatok áttekintése előtt fontos megérteni a megfelelőségi állapotokat a Azure Policy.

A szabályzat- és kezdeményezés-hozzárendelések által létrehozott megfelelőségi információkhoz többféleképpen is hozzáférhet:

Mielőtt áttekintené a megfelelőségi jelentéskészítési módszereket, nézzük meg, mikor frissülnek a megfelelőségi információk, és hogy milyen gyakorisággal és eseményekkel indítható el a kiértékelési ciklus.

Kiértékelési triggerek

A befejezett kiértékelési ciklus eredményei elérhetők az erőforrás-szolgáltatóban a és PolicyEvents a Microsoft.PolicyInsights műveletek soránPolicyStates. A Azure Policy Insights REST API műveleteivel kapcsolatos további információkért lásd: Azure Policy Insights.

A hozzárendelt szabályzatok és kezdeményezések kié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. Körülbelül öt percet vesz igénybe, amíg a hozzárendelés a megadott hatókörre lesz alkalmazva, 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ályzat vagy kezdeményezés sok időt vehet igénybe, így nem várható előre, hogy mikor fejeződik be az értékelési ciklus. A befejezést követően a frissített megfelelőségi eredmények elérhetők a portálon és az SDK-kban.

  • Frissül egy hatókörhöz már hozzárendelt szabályzat vagy kezdeményezés. 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.

  • Az erőforrások üzembe helyezése vagy frissítése hatókörön belül történik, hozzárendeléssel az Azure Resource Manager, a REST API-val vagy egy támogatott SDK-val. Ebben a forgatókönyvben a hatásesemény (hozzáfűzés, naplózás, megtagadás, üzembe helyezés) és az egyes erőforrások megfelelő állapotadatai körülbelül 15 perccel később válnak elérhetővé 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 (naplózás, auditIfNotExist, deployIfNotExists, módosítás), 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 szabályzat alóli kivételt . Ebben a forgatókönyvben a megfelelő hozzárendelés kiértékelése történik a meghatározott kivétel hatókörében.

  • Standard megfelelőségi értékelési ciklus. 24 óránként automatikusan újraértékeli a hozzárendeléseket. Sok erőforrás nagy szabályzata vagy kezdeményezése időigényes lehet, ezért nem várható előre, hogy mikor fejeződik be az értékelési ciklus. A befejezést követően 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

Megjegyzés

A terv szerint Azure Policy kivételt képez az Microsoft.Resources erőforrás-szolgáltató (RP) összes erőforrása alól a szabályzatértékelés 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

Az előfizetések vagy erőforráscsoportok kiértékelési vizsgálata az Azure CLI-vel, Azure PowerShell, a REST API hívásával vagy a Azure Policy Megfelelőségi vizsgálat GitHub-művelettel indítható el. Ez a vizsgálat egy aszinkron folyamat.

Megjegyzé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

A Azure Policy Megfelelőségi vizsgálat művelet használatával igény szerinti kiértékelési vizsgálatot 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 hajthatja végre a munkafolyamatot. A munkafolyamatot úgy is konfigurálhatja, hogy ütemezett időpontban fusson, hogy kényelmesen megkapja a legújabb megfelelőségi állapotot. Ha szeretné, GitHub Actions 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ókért és munkafolyamat-mintákért lásd a Azure Policy megfelelőségi vizsgálat adattárának GitHub Actions.

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 az erőforráscsoport paramétert . Az alábbi példa elindít egy megfelelőségi vizsgálatot a MyRG erőforráscsoport aktuális előfizetésében:

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

Dönthet úgy, hogy nem várja meg, amíg az aszinkron folyamat befejeződik, mielőtt folytatná a várakozás nélküli paramétert.

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 ResourceGroupName paramétert. Az alábbi példa elindít egy megfelelőségi vizsgálatot 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 futtathatja a háttérben. Ha PowerShell-feladattal szeretné futtatni a megfelelőségi vizsgálatot a háttérben, használja az AsJob paramétert, és állítsa 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.

Miközben a megfelelőségi vizsgálat fut, az $job objektum kimeneteinek 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ődött, az Állapot 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. 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 a elemet az erőforráscsoport nevére
  • {subscriptionId} – Cserélje le az előfizetése azonosítójára

A vizsgálat támogatja az erőforrások kiértékelését egy előfizetésben vagy egy erőforráscsoportban. 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écben szerepel egy Location (Hely ) 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, nem indul el új vizsgálat. Ehelyett az új kérés ugyanazzal {ResourceContainerGUID} a hely URI-val rendelkezik az állapothoz. A HELY URI-nak a REST API GET parancsa egy 202 Elfogadva értéket ad vissza, amíg a kiértékelés folyamatban van. Amikor 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 a Azure PowerShell és a REST metódusokkal. További részletekért és lépésekért lásd: Igény szerinti kiértékelés a VS Code-bővítménnyel.

Portál

A Azure Portal a környezet megfelelőségi állapotának vizuális megjelenítését és megértését szemlélteti. A Szabályzat lapon az Áttekintés lehetőség a szabályzatok és kezdeményezések megfelelőségével kapcsolatos elérhető hatókörök részleteit tartalmazza. 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ég lap ezen információk nagy részét tartalmazza (kivéve a diagramot), de további szűrési és rendezési lehetőségeket is biztosít.

Képernyőkép a Megfelelőség lapról, a szűrési lehetőségekről és a részletekről.

Mivel egy szabályzat vagy kezdeményezés különböző hatókörökhöz rendelhető hozzá, a táblázat tartalmazza az egyes hozzárendelések hatókörét és a hozzárendelt definíció típusát. A nem megfelelő erőforrások és a nem megfelelő szabályzatok száma is meg van adva az egyes hozzárendelésekhez. 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.

Képernyőkép a Megfelelőségi részletek oldalról, beleértve a darabszámokat és az erőforrás-kompatibilis adatokat.

Az Erőforrás-megfelelő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 jeleníti meg. 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.

Képernyőkép a Megfelelőség részletei lap Események lapjáról.

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 rendelt szabályzatok, események, összetevőesemények és változáselőzmények megtekintéséhez.

Képernyőkép az Összetevő-megfelelőség lapról és az erőforrás-szolgáltatói mód hozzárendelésének megfelelőségi részleteiről.

Az erőforrás-megfelelőségi oldalra visszatérve válassza ki és tartsa lenyomva az esemény azon sorát (vagy kattintson rá a jobb gombbal), amelyről 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ó oldala, és előre szűrve lesz a keresésre, amely a hozzárendelés és az események részleteit jeleníti meg. A tevékenységnapló több kontextust és információt nyújt ezekről az eseményekről.

Képernyőkép a tevékenységnaplóról Azure Policy tevékenységekhez és értékelésekhez.

Megjegyzé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 lekérhetők a REST API-val (beleértve az ARMClientet), a Azure PowerShell és az Azure CLI-vel is. A REST API-val kapcsolatos részletes információkért tekintse meg a Azure Policy referenciáját. A REST API referenciaoldalain minden műveletnél egy zöld "Try It" (Kipróbálás) gomb látható, amely lehetővé teszi, hogy közvetlenül a böngészőben próbálja ki.

Az ARMClient vagy egy hasonló eszköz használatával kezelheti az Azure-beli hitelesítést a REST API-példákhoz.

Eredmények összegzése

A REST API-val az összegzés elvégezhető tároló, definíció vagy hozzárendelés alapján. Íme egy példa az előfizetés szintjén történő összegzésre az Azure Policy Insight előfizetéshez készült összegzésének használatával:

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 a value.results.nonCompliantResources és a value.results.nonCompliantPolicies alatt található. 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 szabályzatobjektuma tartalmaz egy queryResultsUri lekérdezést, amellyel részletesebben lekérhetők 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

A fenti példában a value.policyAssignments.policyDefinitions.results.queryResultsUri egy minta URI-t biztosít minden nem megfelelő erőforráshoz egy adott szabályzatdefinícióhoz. A $filter értékben a ComplianceState értéke "Nem megfelelő", a PolicyAssignmentId lesz megadva a szabályzatdefinícióhoz, majd maga a PolicyDefinitionId. A PolicyAssignmentId szűrőbe való belefoglalását az okozza, hogy a PolicyDefinitionId több szabályzat- vagy kezdeményezés-hozzárendelésben is létezhet különböző hatókörökkel. A PolicyAssignmentId és a PolicyDefinitionId megadásával explicit módon is megadható a keresett eredmény. Korábban a PolicyStates esetében a legújabbat használtuk, amely automatikusan beállítja 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'

Az alábbi 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 szabályzatértékelési eredmény jön 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 a Azure Policy eseményekre vonatkozó referenciacikkben talál további információt.

Azure CLI

A Azure Policy-hez készült Azure CLI-parancscsoport a REST-ben vagy Azure PowerShell elérhető legtöbb műveletet lefedi. 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 legtöbb nem megfelelő erőforrással.

az policy state summarize --top 1

A válasz felső része az alábbi 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 (az alapértelmezett érték az időbélyeg csökkenő sorrendben).

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 adatainak 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: Nem megfelelő virtuális hálózati erőforrásokhoz kapcsolódó események lekérése, amelyek egy adott dátum után következtek be.

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

A Azure Policy Azure PowerShell modulja az Az.PolicyInsights PowerShell-galéria érhető el. A PowerShellGet használatával a használatával telepítheti a modult Install-Module -Name Az.PolicyInsights (győződjön meg arról, hogy a legújabb Azure PowerShell van telepítve):

# 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 legtöbb 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 (az alapértelmezett érték az időbélyeg csökkenő sorrendben).

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 adatainak 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: A nem megfelelő virtuális hálózati erőforrásokhoz kapcsolódó események lekérése, amelyek egy adott dátum után történtek, 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őhöz 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ővel lekérhet egy adott felhasználót a Azure PowerShell parancsmaggalGet-AzADUser. Cserélje le a {principalOid} elemet az előző példából kapott válaszra.

PS> (Get-AzADUser -ObjectId {principalOid}).DisplayName
Trent Baker

Azure Monitor-naplók

Ha rendelkezik olyan Log Analytics-munkaterülettel , amely AzureActivity az előfizetéséhez kötődik a Tevékenységnapló-elemzési megoldásból , az új és frissített erőforrások értékeléséből származó nemmegfelelőségi eredményeket 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 watch a meg nem felelés esetén.

Képernyőkép az Azure Monitor naplóiról, amelyek az AzureActivity táblában Azure Policy műveleteket jelenítik meg.

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 alkotjanak 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