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-AzResourceProviderpří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é.

  • Namevytvoří 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.