Rychlý start: Vytvoření přiřazení zásad k identifikaci nevyhovujících prostředků pomocí Azure PowerShellu
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í Azure PowerShellu. 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.
Moduly Azure PowerShellu je možné použít ke správě prostředků Azure z příkazového řádku nebo ve skriptech. Tento článek vysvětluje, jak pomocí Azure PowerShellu vytvořit přiřazení zásad.
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.
- Azure PowerShell:
- Visual Studio Code.
Microsoft.PolicyInsights
musí být zaregistrovaný ve vašem předplatném Azure. Pokud chcete zaregistrovat poskytovatele prostředků, musíte mít oprávnění k registraci poskytovatelů prostředků. Toto oprávnění je součástí rolí Přispěvatel a Vlastník.- Skupina prostředků s alespoň jedním virtuálním počítačem, který nepoužívá spravované disky.
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.
Connect-AzAccount
# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>
Registrace poskytovatele prostředků
Když je poskytovatel prostředků zaregistrovaný, je k dispozici pro použití ve vašem předplatném Azure.
Pokud chcete ověřit, jestli Microsoft.PolicyInsights
je zaregistrovaný, spusťte Get-AzResourceProvider
příkaz . Poskytovatel prostředků obsahuje několik typů prostředků. Pokud je NotRegistered
výsledek spuštěn Register-AzResourceProvider
:
Get-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights' |
Select-Object -Property ResourceTypes, RegistrationState
Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
Další informace najdete v rutině Get-AzResourceProvider a Register-AzResourceProvider.
Vytvoření přiřazení zásady
Pomocí následujících příkazů vytvořte nové přiřazení zásad pro vaši skupinu prostředků. Tento příklad používá existující skupinu prostředků, která obsahuje virtuální počítač bez spravovaných disků. Skupina prostředků je oborem přiřazení zásady. Tento příklad používá integrované definice zásad Audit virtuálních počítačů, které nepoužívají spravované disky.
Spusťte následující příkazy a nahraďte <resourceGroupName>
názvem vaší skupiny prostředků:
$rg = Get-AzResourceGroup -Name '<resourceGroupName>'
$definition = Get-AzPolicyDefinition |
Where-Object { $_.DisplayName -eq 'Audit VMs that do not use managed disks' }
Proměnná $rg
ukládá vlastnosti pro skupinu prostředků a $definition
proměnná ukládá vlastnosti definice zásady. Vlastnosti se používají v následujících příkazech.
Spuštěním následujícího příkazu vytvořte přiřazení zásady:
$policyparms = @{
Name = 'audit-vm-managed-disks'
DisplayName = 'Audit VM managed disks'
Scope = $rg.ResourceId
PolicyDefinition = $definition
Description = 'Az PowerShell policy assignment to resource group'
}
New-AzPolicyAssignment @policyparms
Proměnná $policyparms
pomocí splattingu vytváří hodnoty parametrů a zlepšuje čitelnost. Příkaz New-AzPolicyAssignment
používá hodnoty parametrů definované v $policyparms
proměnné.
Name
vytvoří název přiřazení zásad použitý v přiřazení.ResourceId
DisplayName
je název přiřazení zásady a je viditelný na webu Azure Portal.Scope
$rg.ResourceId
použije vlastnost k přiřazení zásady ke skupině prostředků.PolicyDefinition
přiřadí definici zásady uloženou$definition
v proměnné.Description
lze použít k přidání kontextu o přiřazení zásady.
Výsledky přiřazení zásady se podobají následujícímu příkladu:
Name : audit-vm-managed-disks
ResourceId : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks
ResourceName : audit-vm-managed-disks
ResourceGroupName : {resourceGroupName}
ResourceType : Microsoft.Authorization/policyAssignments
SubscriptionId : {subscriptionId}
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks
Properties : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.Policy.PsPolicyAssignmentProperties
Další informace najdete v tématu New-AzPolicyAssignment.
Pokud chcete znovu zobrazit informace o přiřazení zásad, spusťte následující příkaz:
Get-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
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.
Pomocí následujícího příkazu identifikujte prostředky, které nevyhovují přiřazení zásad, které jste vytvořili:
$complianceparms = @{
ResourceGroupName = $rg.ResourceGroupName
PolicyAssignmentName = 'audit-vm-managed-disks'
Filter = 'IsCompliant eq false'
}
Get-AzPolicyState @complianceparms
Proměnná $complianceparms
používá k vytvoření hodnot parametrů použitých v Get-AzPolicyState
příkazu splatting.
ResourceGroupName
získá název skupiny prostředků z$rg.ResourceGroupName
vlastnosti.PolicyAssignmentName
určuje název použitý při vytvoření přiřazení zásady.Filter
používá výraz k vyhledání prostředků, které nevyhovují přiřazení zásad.
Výsledky se podobají následujícímu příkladu a ComplianceState
ukazují NonCompliant
:
Timestamp : 2/14/2024 18:25:37
ResourceId : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.compute/virtualmachines/{vmId}
PolicyAssignmentId : /subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.authorization/policyassignments/audit-vm-managed-disks
PolicyDefinitionId : /providers/microsoft.authorization/policydefinitions/06a78e20-9358-41c9-923c-fb736d382a4d
IsCompliant : False
SubscriptionId : {subscriptionId}
ResourceType : Microsoft.Compute/virtualMachines
ResourceLocation : {location}
ResourceGroup : {resourceGroupName}
ResourceTags : tbd
PolicyAssignmentName : audit-vm-managed-disks
PolicyAssignmentOwner : tbd
PolicyAssignmentScope : /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}
PolicyDefinitionName : 06a78e20-9358-41c9-923c-fb736d382a4d
PolicyDefinitionAction : audit
PolicyDefinitionCategory : tbd
ManagementGroupIds : {managementGroupId}
ComplianceState : NonCompliant
AdditionalProperties : {[complianceReasonCode, ]}
Další informace najdete v rutině Get-AzPolicyState.
Vyčištění prostředků
Přiřazení zásady odeberete spuštěním následujícího příkazu:
Remove-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
Odhlášení z relace Azure PowerShellu:
Disconnect-AzAccount
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.