Rychlý start: Vytvoření přiřazení zásad pro identifikaci prostředků nedodržování předpisů pomocí rozhraní REST API
Prvním krokem k porozumění dodržování předpisů v Azure je zjištění stavu vašich prostředků. V tomto rychlém startu vytvoříte přiřazení zásady k identifikaci nevyhovujících prostředků pomocí rozhraní REST API. Zásada se přiřadí ke skupině prostředků a provede audit virtuálních počítačů, které nepoužívají spravované disky. Po vytvoření přiřazení zásady identifikujete nevyhovující virtuální počítače.
Tato příručka používá rozhraní REST API k vytvoření přiřazení zásad a identifikaci prostředků, které nedodržují předpisy ve vašem prostředí Azure. Příklady v tomto článku používají PowerShell a příkazy Azure CLI az rest
. Příkazy můžete spustit az rest
také z prostředí Bash, jako je Git Bash.
Při přiřazování předdefinované zásady nebo definice iniciativy je volitelné odkazovat na verzi. Přiřazení zásad předdefinovaných definic jsou výchozí pro nejnovější verzi a automaticky dědí změny podverze, pokud není uvedeno jinak.
Požadavky
- Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.
- Nejnovější verze PowerShellu nebo prostředí Bash, jako je Git Bash.
- Nejnovější verze Azure CLI
- Visual Studio Code.
- Skupina prostředků s alespoň jedním virtuálním počítačem, který nepoužívá spravované disky.
Kontrola syntaxe rozhraní REST API
Ke spuštění příkazů rozhraní REST API existují dva prvky: identifikátor URI rozhraní REST API a text požadavku. Informace najdete v tématu Přiřazení zásad – Vytvořit.
Následující příklad ukazuje syntaxi identifikátoru URI rozhraní REST API pro vytvoření definice zásady.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2023-04-01
scope
: Obor určuje, pro které prostředky nebo skupinu prostředků se přiřazení zásady vynucuje. Může se lišit od skupiny pro správu až po jednotlivé prostředky. Nahraďte{scope}
jedním z následujících vzorů:- Skupina pro správu:
/providers/Microsoft.Management/managementGroups/{managementGroup}
- Předplatné:
/subscriptions/{subscriptionId}
- Skupina prostředků:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
- Prostředek:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/[{parentResourcePath}/]{resourceType}/{resourceName}
- Skupina pro správu:
policyAssignmentName
: Vytvoří název přiřazení zásady pro vaše přiřazení. Název je součástí vlastnosti přiřazenípolicyAssignmentId
zásady.
Následující příklad je JSON pro vytvoření základního souboru požadavku.
{
"properties": {
"displayName": "",
"description": "",
"policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/11111111-1111-1111-1111-111111111111",
"nonComplianceMessages": [
{
"message": ""
}
]
}
}
displayName
: Zobrazovaný název přiřazení zásady.description
: Lze použít k přidání kontextu o přiřazení zásady.policyDefinitionId
: ID definice zásady, které má vytvořit přiřazení.nonComplianceMessages
: Nastavte zprávu, která se má použít, když se prostředek vyhodnotí jako nevyhovující předpisům. Další informace najdete v tématu o nedodržování přiřazení zpráv.
Připojení k Azure
Z relace terminálu editoru Visual Studio Code se připojte k Azure. Pokud máte více než jedno předplatné, spusťte příkazy pro nastavení kontextu pro vaše předplatné. <subscriptionID>
nahraďte ID vašeho předplatného Azure.
az login
# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription <subscriptionID>
Použijte az login
, i když používáte PowerShell, protože příklady používají Azure CLI az rest commands.
Vytvoření přiřazení zásady
V tomto příkladu vytvoříte přiřazení zásady a přiřadíte virtuální počítače auditu, které nepoužívají definici spravovaných disků .
K vytvoření přiřazení je potřeba text požadavku. Uložte následující KÓD JSON do souboru s názvem request-body.json.
{
"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"
}
]
}
}
Pokud chcete vytvořit přiřazení zásad v existujícím oboru skupiny prostředků, použijte následující identifikátor URI rozhraní REST API se souborem pro tělo požadavku. Nahraďte {subscriptionId}
hodnoty a {resourceGroupName}
nahraďte je. Příkaz zobrazí výstup JSON v prostředí.
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
V PowerShellu je nutné, aby backtick (`
) utekl at sign
(@
) k zadání názvu souboru. V prostředí Bash, jako je Git Bash, vynecháte backtick.
Informace najdete v tématu Přiřazení zásad – Vytvořit.
Zjištění nevyhovujících prostředků
Stav dodržování předpisů pro nové přiřazení zásad trvá několik minut, než se aktivuje a poskytne výsledky o stavu zásady. Rozhraní REST API slouží k zobrazení nevyhovujících prostředků pro toto přiřazení zásad a výstupu je ve formátu JSON.
Pokud chcete identifikovat nekompatibilní prostředky, spusťte následující příkaz. Nahraďte {subscriptionId}
a {resourceGroupName}
nahraďte hodnotami použitými při vytváření přiřazení zásady.
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'"
Dotazy filter
na prostředky, které jsou vyhodnoceny jako nevyhovující definici zásady s názvem audit-vm-managed-disks , které jste vytvořili s přiřazením zásady. Opět si všimněte, že backtick se používá k úniku znaku dolaru ($
) ve filtru. U klienta Bash je zpětné lomítko (\
) běžným řídicím znakem.
Vaše výsledky budou vypadat přibližně jako v následujícím příkladu:
{
"@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"
}
]
}
Další informace najdete v tématu Stavy zásad – Výpis výsledků dotazu pro skupinu prostředků.
Vyčištění prostředků
Pokud chcete přiřazení zásady odebrat, použijte následující příkaz. Nahraďte {subscriptionId}
a {resourceGroupName}
nahraďte hodnotami použitými při vytváření přiřazení zásady. Příkaz zobrazí výstup JSON v prostředí.
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
Přiřazení zásad můžete ověřit pomocí následujícího příkazu. V prostředí se zobrazí zpráva.
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.
Další informace najdete v tématu Přiřazení zásad – Odstranění a přiřazení zásad – Získat.
Další kroky
V tomto rychlém startu jste přiřadili definici zásady pro identifikaci prostředků, které nedodržují předpisy, ve vašem prostředí Azure.
Další informace o přiřazování zásad, které ověřují dodržování předpisů prostředků, najdete v tomto kurzu.