Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 průvodci vytvoříte přiřazení politiky pro identifikaci prostředků, které nejsou v souladu, pomocí Azure PowerShell. Zásada je přiřazena ke skupině prostředků a kontroluje virtuální počítače, 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.PolicyInsightsmusí 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
Připojte se k Azure z relace terminálu editoru Visual Studio Code. 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 výsledek NotRegistered, spusťte 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řit 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.
Spusťte následující příkaz k vytvoření 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 rámci tohoto přiřazení.ResourceId -
DisplayNameje název přiřazení zásady a je viditelný v Azure Portal. -
Scopepoužívá vlastnost$rg.ResourceIdk přiřazení zásady ke skupině prostředků. -
PolicyDefinitionpřiřadí definici zásady uloženou$definitionv proměnné. -
Descriptionlze 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 získáte na 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í politiky se stává aktivním během několika minut a poté poskytne výsledky o stavu politiky.
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á techniku splattingu k vytvoření hodnot parametrů, které se použijí v příkazu Get-AzPolicyState.
-
ResourceGroupNamezíská název skupiny prostředků z vlastnosti$rg.ResourceGroupName. -
PolicyAssignmentNameurčuje název použitý při vytvoření přiřazení zásady. -
Filterpouží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í shodu prostředků, najdete v tomto návodu.