Sdílet prostřednictvím


Získání dat dodržování předpisů o prostředcích Azure

Jednou z největších výhod služby Azure Policy je přehled a řízení, které poskytuje nad prostředky v předplatném nebo skupině pro správu předplatných. Tento ovládací prvek může zabránit tomu, aby se prostředky vytvářely v nesprávném umístění, vynucují běžné a konzistentní použití značek nebo auditují stávající prostředky pro odpovídající konfigurace a nastavení. Azure Policy ve všech případech generuje data, která vám umožní porozumět stavu dodržování předpisů vašeho prostředí.

Před kontrolou dat dodržování předpisů je důležité porozumět stavům dodržování předpisů ve službě Azure Policy.

Existuje několik způsobů, jak získat přístup k informacím o dodržování předpisů vygenerovanými přiřazeními zásad a iniciativ:

Než se podíváme na metody pro hlášení dodržování předpisů, podívejme se, kdy se aktualizují informace o dodržování předpisů a četnost a události, které aktivují cyklus vyhodnocení.

Aktivační události vyhodnocení

Výsledky dokončeného zkušebního cyklu jsou k dispozici v poskytovateli Microsoft.PolicyInsights prostředků prostřednictvím PolicyStates a PolicyEvents operací. Další informace o operacích rozhraní REST API služby Azure Policy Insights najdete v tématu Azure Policy Insights.

Vyhodnocení přiřazených zásad a iniciativ probíhá v důsledku různých událostí:

  • Zásady nebo iniciativa se nově přiřazují k oboru. Než se přiřazení použije na definovaný obor, trvá přibližně pět minut, pak cyklus vyhodnocení začíná pro příslušné prostředky proti nově přiřazené zásadě nebo iniciativě. V závislosti na použitých efektech jsou prostředky označené jako vyhovující, nevyhovující, vyloučené nebo neznámé. Velké zásady nebo iniciativa vyhodnocené v rámci velkého rozsahu prostředků mohou nějakou dobu trvat, takže neexistuje žádné předdefinované očekávání, kdy se cyklus vyhodnocení dokončí. Po dokončení jsou aktualizované výsledky dodržování předpisů dostupné na portálu a sadách SDK (Software Development Kit).
  • Zásady nebo iniciativa, které jsou už přiřazené k oboru, se aktualizují. Cyklus vyhodnocení a načasování pro tento scénář je stejné jako u nového přiřazení k oboru.
  • Prostředek se nasadí nebo aktualizuje v rámci oboru s přiřazením prostřednictvím Azure Resource Manageru, rozhraní REST API nebo podporované sady SDK. V tomto scénáři se událost efektu (připojení, audit, zamítnutí, nasazení) a informace o stavu vyhovujících jednotlivým prostředkům zpřístupní na portálu a sadách SDK přibližně o 15 minut později. Tato událost nezpůsobí vyhodnocení jiných prostředků.
  • Předplatné (typ Microsoft.Resources/subscriptionsprostředku) se vytvoří nebo přesune v hierarchii skupiny pro správu s přiřazenou definicí zásad, která cílí na typ prostředku předplatného. Vyhodnocení podporovaných efektů předplatného (audit, auditIfNotExist, deployIfNotExists, modify), protokolování a nápravné akce trvá přibližně 30 minut.
  • Vytvoří se, aktualizuje nebo odstraní výjimka ze zásad. V tomto scénáři se vyhodnotí odpovídající přiřazení pro definovaný obor výjimky.
  • Standardní cyklus vyhodnocení dodržování předpisů. Po každých 24 hodinách se přiřazení automaticky znovu zhodnotí. Velká zásada nebo iniciativa mnoha prostředků může nějakou dobu trvat, takže neexistuje žádné předdefinované očekávání, kdy se cyklus vyhodnocení dokončí. Po dokončení jsou aktualizované výsledky dodržování předpisů dostupné na portálu a na sadách SDK.
  • Poskytovatel prostředků konfigurace počítače se aktualizuje o podrobnosti o dodržování předpisů spravovaným prostředkem.
  • Kontrola na vyžádání

Poznámka:

Azure Policy záměrně vymezuje z vyhodnocení zásad všechny prostředky v rámci Microsoft.Resources poskytovatele prostředků s výjimkou předplatných a skupin prostředků, které je možné vyhodnotit.

Prohledávání hodnocení na vyžádání

Vyhodnocení kontroly předplatného nebo skupiny prostředků je možné spustit pomocí REST, Azure CLI, Azure PowerShellu, rozšíření Azure Policy pro Visual Studio Code nebo kontroly dodržování předpisů pro Azure Policy– akce GitHubu. Kontroly na vyžádání jsou asynchronní proces, který trvá dlouhou dobu, protože prostředky se vyhodnocují vůči všem přiřazeným zásadám.

Poznámka:

Ne všichni poskytovatelé prostředků Azure podporují kontroly vyhodnocení na vyžádání. Azure Virtual Network Manager (AVNM) například v současné době nepodporuje ruční triggery ani standardní cyklus vyhodnocení dodržování předpisů zásad (denní kontroly).

Kontrola vyhodnocení na vyžádání s využitím REST

Jako asynchronní proces koncový bod REST ke spuštění kontroly nečeká, dokud se kontrola nedokončí a nereaguje. Místo toho poskytuje identifikátor URI pro dotaz na stav požadovaného vyhodnocení.

Každý identifikátor URI v REST API používá proměnné, které je potřeba nahradit vašimi vlastními hodnotami:

  • {resourceGroupName}: Nahraďte názvem vaší skupiny prostředků.
  • {subscriptionId}: Nahraďte ID předplatného.

Kontrola podporuje vyhodnocení prostředků v předplatném nebo ve skupině prostředků. Spusťte kontrolu podle oboru pomocí příkazu POST rozhraní REST API pomocí následujících struktur identifikátorů URI:

K vyhodnocení předplatného použijte následující příkaz. Příkaz můžete spustit v prohlížeči ve stavech zásad – aktivovat vyhodnocení předplatného pomocí možnosti Vyzkoušet .

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01

K vyhodnocení skupiny prostředků použijte následující příkaz. Příkaz můžete spustit v prohlížeči ve stavech zásad – Aktivovat vyhodnocení skupiny prostředků pomocí možnosti Vyzkoušet .

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01

Volání rozhraní REST API předplatného a skupiny prostředků vrátí stav 202 Přijato . Součástí hlavičky odpovědi je vlastnost s následujícím formátem location :

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01

{ResourceContainerGUID} pro požadovaný obor se staticky vygeneruje. Pokud už obor spouští kontrolu na vyžádání, nová kontrola se nespusťe. Místo toho je nový požadavek poskytnutý stejným {ResourceContainerGUID}location identifikátorem URI pro stav. Příkaz GET rozhraní REST API na location identifikátor URI vrátí hodnotu 202 Přijato , zatímco vyhodnocení probíhá. Po dokončení kontroly vyhodnocení vrátí stav 200 OK . Tělo dokončené kontroly je odpověď JSON se stavem: succeeded.

Kontrola vyhodnocení na vyžádání pomocí Azure CLI

Kontrola dodržování předpisů se spustí pomocí příkazu az policy state trigger-scan .

Ve výchozím nastavení az policy state trigger-scan spustí vyhodnocení všech prostředků v aktuálním předplatném. Pokud chcete zahájit vyhodnocení pro konkrétní skupinu prostředků, použijte resource-group parametr. Následující příklad spustí kontrolu dodržování předpisů v aktuálním předplatném pro skupinu prostředků. Nahraďte resourceGroupName názvem vaší skupiny prostředků:

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

Před pokračováním s parametrem můžete nečekat na dokončení asynchronního no-wait procesu.

Kontrola vyhodnocení na vyžádání pomocí Azure PowerShellu

Kontrola dodržování předpisů se spustí pomocí rutiny Start-AzPolicyComplianceScan .

Ve výchozím nastavení Start-AzPolicyComplianceScan spustí vyhodnocení všech prostředků v aktuálním předplatném. Pokud chcete zahájit vyhodnocení pro konkrétní skupinu prostředků, použijte ResourceGroupName parametr. Následující příklad spustí kontrolu dodržování předpisů v aktuálním předplatném pro skupinu prostředků. Nahraďte resourceGroupName názvem vaší skupiny prostředků:

Start-AzPolicyComplianceScan -ResourceGroupName 'resourceGroupName'

Před poskytnutím výstupu výsledků můžete počkat na dokončení asynchronního volání PowerShellu nebo ho spustit na pozadí jako úlohu. Pokud chcete ke spuštění kontroly dodržování předpisů na pozadí použít úlohu PowerShellu, použijte AsJob parametr a nastavte hodnotu na objekt, například $job v tomto příkladu:

$job = Start-AzPolicyComplianceScan -AsJob

Stav úlohy můžete zkontrolovat kontrolou objektu $job . Úloha je typu Microsoft.Azure.Commands.Common.AzureLongRunningJob. Pomocí Get-Member objektu $job můžete zobrazit dostupné vlastnosti a metody.

Když je kontrola dodržování předpisů spuštěná, zkontrolujte $job výstupy objektů, jako jsou tyto:

$job

Id     Name              PSJobTypeName     State    HasMoreData     Location   Command
--     ----              -------------     -----    -----------     --------   -------
2      Long Running O... AzureLongRunni... Running  True            localhost  Start-AzPolicyCompliance...

Po dokončení kontroly dodržování předpisů se State vlastnost změní na Dokončeno.

Kontrola vyhodnocení na vyžádání pomocí editoru Visual Studio Code

Rozšíření Azure Policy pro Visual Studio Code umožňuje spustit kontrolu vyhodnocení konkrétního prostředku. Tato kontrola je synchronní proces, na rozdíl od azure PowerShellu a metod REST. Podrobnosti a kroky najdete v tématu Vyhodnocení na vyžádání s rozšířením VS Code.

Kontrola vyhodnocení na vyžádání pomocí GitHub Actions

Pomocí akce Kontrola dodržování předpisů ve službě Azure Policy aktivujte kontrolu vyhodnocení na vyžádání z pracovního postupu GitHubu na jednom nebo několika prostředcích, skupinách prostředků nebo předplatných a zamkněte pracovní postup na základě stavu dodržování předpisů prostředků. Pracovní postup můžete také nakonfigurovat tak, aby běžel v naplánovaném čase, abyste získali nejnovější stav dodržování předpisů v pohodlný čas. Volitelně může GitHub Actions vygenerovat sestavu o stavu dodržování předpisů naskenovaných prostředků pro další analýzu nebo archivaci.

Následující příklad spustí kontrolu dodržování předpisů pro předplatné. Použijte scopes ID předplatného.

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@v2
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}

    - name: Check for resource compliance
      uses: azure/policy-compliance-scan@v0
      with:
        scopes: |
          /subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e

Další informace a ukázky pracovních postupů najdete v úložišti GitHub Actions pro úložiště kontroly dodržování předpisů pro Azure Policy.

Portál

Azure Portal představuje grafické prostředí vizualizace a pochopení stavu dodržování předpisů ve vašem prostředí. Na stránce Zásady poskytuje možnost Přehled podrobnosti o dostupných oborech dodržování zásad i iniciativ. Spolu se stavem dodržování předpisů a počtem na přiřazení obsahuje graf zobrazující dodržování předpisů za posledních 7 dnů. Stránka Dodržování předpisů obsahuje většinu těchto stejných informací (s výjimkou grafu), ale poskytuje více možností filtrování a řazení.

Snímek obrazovky se stránkou Dodržování předpisů, možnostmi filtrování a podrobnostmi

Vzhledem k tomu, že zásady nebo iniciativa lze přiřadit k různým oborům, tabulka obsahuje obor pro každé přiřazení a typ přiřazené definice. K dispozici je také počet nevyhovujících prostředků a zásad nedodržování předpisů pro každé přiřazení. Výběrem zásady nebo iniciativy v tabulce se podrobněji podíváme na dodržování předpisů pro dané konkrétní přiřazení.

Snímek obrazovky se stránkou Podrobnosti o dodržování předpisů, včetně počtů a podrobností kompatibilních s prostředky

Seznam prostředků na kartě Dodržování předpisů u prostředků zobrazuje stav vyhodnocení existujících prostředků pro aktuální přiřazení. Ve výchozím nastavení je karta nevyhovující předpisům, ale je možné ji filtrovat. Události (připojení, audit, zamítnutí, nasazení, úprava) aktivované žádostí o vytvoření prostředku se zobrazí na kartě Události .

Snímek obrazovky s kartou Události na stránce Podrobnosti o dodržování předpisů

V případě prostředků v režimu poskytovatele prostředků na kartě Dodržování předpisů prostředků vyberte prostředek nebo klikněte pravým tlačítkem myši na řádek a výběrem možnosti Zobrazit podrobnosti o dodržování předpisů se otevře podrobnosti o dodržování předpisů součástí. Tato stránka také nabízí karty pro zobrazení zásad přiřazených k tomuto prostředku, událostem, událostem komponent a historii změn.

Snímek obrazovky s kartou Dodržování předpisů komponent a podrobnostmi o dodržování předpisů pro přiřazení režimu poskytovatele prostředků

Zpátky na stránce dodržování předpisů prostředků vyberte a podržte (nebo klikněte pravým tlačítkem) na řádku události, o které chcete shromáždit další podrobnosti, a vyberte Zobrazit protokoly aktivit. Otevře se stránka protokolu aktivit a je předem zafiltrovaná do vyhledávání s podrobnostmi o přiřazení a událostech. Protokol aktivit poskytuje další kontext a informace o těchto událostech.

Snímek obrazovky s protokolem aktivit pro aktivity a vyhodnocení služby Azure Policy

Poznámka:

Výsledky dodržování předpisů je možné exportovat z portálu pomocí dotazů Azure Resource Graphu.

Příkazový řádek

Stejné informace dostupné na portálu je možné načíst pomocí rozhraní REST API, Azure CLI a Azure PowerShellu.

REST API

Podrobnosti o rozhraní REST API najdete v referenčních informacích ke službě Azure Policy . Referenční stránky rozhraní REST API mají možnost Vyzkoušet pro každou operaci, která umožňuje spustit příkaz v prohlížeči. Ke spouštění příkazů můžete použít také Azure CLI nebo preferovaného klienta ROZHRANÍ REST API.

Shrnutí výsledků

Pomocí rozhraní REST API můžete sumarizovat podle kontejneru, definice nebo přiřazení. Tady je příklad sumarizace na úrovni předplatného pomocí přehledu Azure Policy Insight pro předplatné:

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01

Výstup shrnuje předplatné a souhrnná dodržování předpisů jsou ve vlastnostech a nonCompliantPolicies ve vlastnostechnonCompliantResources. Tento požadavek obsahuje další podrobnosti, včetně každého přiřazení, které tvoří nevyhovující čísla, a informace o definici pro každé přiřazení. Každý objekt zásad v hierarchii poskytuje queryResultsUri objekt, který lze použít k získání podrobnějších informací na této úrovni.

Dotaz na prostředky

V předchozím příkladu value.policyAssignments.policyDefinitions.results.queryResultsUri poskytuje vzorový identifikátor URI pro všechny nevyhovující prostředky pro konkrétní definici zásad. V hodnotě $filter je complianceState rovná (eq) k NonCompliant, PolicyAssignmentId je určen pro definici zásady a pak PolicyDefinitionId sám. Důvodem zahrnutí do PolicyAssignmentId filtru je to, že PolicyDefinitionId může existovat v několika přiřazeních zásad nebo iniciativ s různými obory. Zadáním hodnoty PolicyAssignmentId i hodnoty PolicyDefinitionIdmůžeme být explicitní ve výsledcích, které hledáme. Dříve jsme použili latest, PolicyStates který automaticky nastaví from časový to interval posledních 24 hodin.

queryResultsUri Příklad hodnoty:

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2025-01-01 04:28:22Z&$to=2025-02-10 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'

Zobrazit události

Při vytvoření nebo aktualizaci prostředku se vygeneruje výsledek vyhodnocení zásad. Výsledky se nazývají události zásad. K zobrazení nedávných událostí zásad přidružených k předplatnému použijte následující identifikátor URI.

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01

Další informace o dotazování událostí zásad najdete v tématu Události služby Azure Policy.

Azure CLI

Skupina příkazů Azure CLI pro Azure Policy pokrývá většinu operací dostupných v REST nebo Azure PowerShellu. Úplný seznam dostupných příkazů najdete v tématu az policy.

Získejte souhrn stavu pro nejvíce přiřazené zásady s nejvyšším počtem nevyhovujících prostředků.

az policy state summarize --top 1

Získejte záznam o stavu pro naposledy vyhodnocený prostředek a výchozí výstup je podle časového razítka v sestupném pořadí.

az policy state list --top 1

Získejte podrobnosti o všech nedodržovacích prostředcích virtuální sítě.

az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"

Získejte události související s nekompatibilními prostředky virtuální sítě, ke kterým došlo po určitém datu. from Použijte parametr s datem ve formátu ISO 8601.

az policy event list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2025-02-10T00:00:00Z'

Azure PowerShell

V Azure Cloud Shellu můžete spustit následující příkazy.

Získejte souhrn stavu pro nejvíce přiřazené zásady s nejvyšším počtem nevyhovujících prostředků.

Get-AzPolicyStateSummary -Top 1

Získejte záznam o stavu pro naposledy vyhodnocený prostředek. Výchozí výstup je podle časového razítka v sestupném pořadí.

Get-AzPolicyState -Top 1

Získejte podrobnosti o všech nedodržovacích prostředcích virtuální sítě.

Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"

Získejte události související s nekompatibilními prostředky virtuální sítě, ke kterým došlo po určitém datu. From Použijte parametr s datem ve formátu ISO 8601.

Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2025-02-10'

Výstup obsahuje PrincipalOid vlastnost, kterou lze použít k získání konkrétního uživatele pomocí rutiny Get-AzADUserAzure PowerShellu . Nahraďte {principalOid} hodnotou, kterou získáte z předchozího příkazu.

(Get-AzADUser -ObjectId {principalOid}).DisplayName

Protokoly Azure Monitoru

Pokud máte pracovní prostor služby Log Analytics s AzureActivityřešením Activity Log Analytics svázaným s vaším předplatným, můžete také zobrazit výsledky nedodržení předpisů z vyhodnocení nových a aktualizovaných prostředků pomocí dotazů Kusto a AzureActivity tabulky. S podrobnostmi v protokolech služby Azure Monitor je možné nakonfigurovat výstrahy tak, aby sledovaly nedodržování předpisů.

Azure Resource Graph

Záznamy dodržování předpisů se ukládají ve službě Azure Resource Graph (ARG). Data je možné exportovat z dotazů ARG a vytvořit přizpůsobené řídicí panely na základě oborů a zásad zájmu. Projděte si naše ukázkové dotazy pro export dat dodržování předpisů prostřednictvím ARG.

Další kroky