Quickstart: Een beleidstoewijzing maken om niet-compatibele resources te identificeren met behulp van Azure PowerShell
De eerste stap in het begrijpen van naleving in Azure is het identificeren van de status van uw resources. In deze quickstart maakt u een beleidstoewijzing om niet-compatibele resources te identificeren met behulp van Azure PowerShell. Het beleid wordt toegewezen aan een resourcegroep en controleert virtuele machines die geen beheerde schijven gebruiken. Nadat u de beleidstoewijzing hebt gemaakt, identificeert u niet-compatibele virtuele machines.
De Azure PowerShell-modules kunnen worden gebruikt voor het beheren van Azure-resources vanaf de opdrachtregel of in scripts. In dit artikel wordt uitgelegd hoe u Azure PowerShell gebruikt om een beleidstoewijzing te maken.
Wanneer u een ingebouwde beleids- of initiatiefdefinitie toewijst, is het optioneel om te verwijzen naar een versie. Beleidstoewijzingen van ingebouwde definities zijn standaard ingesteld op de meest recente versie en nemen automatisch kleine versiewijzigingen over, tenzij anders opgegeven.
Vereisten
- Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
- Azure PowerShell.
- Visual Studio Code.
Microsoft.PolicyInsights
moet zijn geregistreerd in uw Azure-abonnement. Als u een resourceprovider wilt registreren, moet u gemachtigd zijn om resourceproviders te registreren. Deze machtiging is opgenomen in de rollen Inzender en Eigenaar.- Een resourcegroep met ten minste één virtuele machine die geen beheerde schijven gebruikt.
Verbinding maken met Azure
Maak vanuit een Visual Studio Code-terminalsessie verbinding met Azure. Als u meer dan één abonnement hebt, voert u de opdrachten uit om context in te stellen op uw abonnement. Vervang <subscriptionID>
door de id van uw Azure-abonnement.
Connect-AzAccount
# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>
Resourceprovider registreren
Wanneer een resourceprovider is geregistreerd, is deze beschikbaar voor gebruik in uw Azure-abonnement.
Voer uit Get-AzResourceProvider
om te controleren of Microsoft.PolicyInsights
deze is geregistreerd. De resourceprovider bevat verschillende resourcetypen. Als het resultaat wordt NotRegistered
uitgevoerd Register-AzResourceProvider
:
Get-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights' |
Select-Object -Property ResourceTypes, RegistrationState
Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
Ga voor meer informatie naar Get-AzResourceProvider en Register-AzResourceProvider.
Een beleidstoewijzing maken
Gebruik de volgende opdrachten om een nieuwe beleidstoewijzing voor uw resourcegroep te maken. In dit voorbeeld wordt een bestaande resourcegroep gebruikt die een virtuele machine zonder beheerde schijven bevat. De resourcegroep is het bereik voor de beleidstoewijzing. In dit voorbeeld wordt gebruikgemaakt van de ingebouwde beleidsdefinitie Vm's controleren die geen beheerde schijven gebruiken.
Voer de volgende opdrachten uit en vervang deze door <resourceGroupName>
de naam van de resourcegroep:
$rg = Get-AzResourceGroup -Name '<resourceGroupName>'
$definition = Get-AzPolicyDefinition |
Where-Object { $_.DisplayName -eq 'Audit VMs that do not use managed disks' }
De $rg
variabele slaat eigenschappen op voor de resourcegroep en de $definition
variabele slaat de eigenschappen van de beleidsdefinitie op. De eigenschappen worden gebruikt in volgende opdrachten.
Voer de volgende opdracht uit om de beleidstoewijzing te maken:
$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
De $policyparms
variabele maakt gebruik van splatting om parameterwaarden te maken en de leesbaarheid te verbeteren. De New-AzPolicyAssignment
opdracht gebruikt de parameterwaarden die zijn gedefinieerd in de $policyparms
variabele.
Name
maakt de naam van de beleidstoewijzing die wordt gebruikt in de toewijzingResourceId
.DisplayName
is de naam voor de beleidstoewijzing en is zichtbaar in Azure Portal.Scope
gebruikt de$rg.ResourceId
eigenschap om het beleid toe te wijzen aan de resourcegroep.PolicyDefinition
wijst de beleidsdefinitie toe die is opgeslagen in de$definition
variabele.Description
kan worden gebruikt om context over de beleidstoewijzing toe te voegen.
De resultaten van de beleidstoewijzing lijken op het volgende voorbeeld:
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
Ga naar New-AzPolicyAssignment voor meer informatie.
Als u de beleidstoewijzingsgegevens opnieuw wilt weergeven, voert u de volgende opdracht uit:
Get-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
Niet-compatibele resources identificeren
Het duurt enkele minuten voordat de nalevingsstatus voor een nieuwe beleidstoewijzing actief wordt en resultaten geeft over de status van het beleid.
Gebruik de volgende opdracht om resources te identificeren die niet compatibel zijn met de beleidstoewijzing die u hebt gemaakt:
$complianceparms = @{
ResourceGroupName = $rg.ResourceGroupName
PolicyAssignmentName = 'audit-vm-managed-disks'
Filter = 'IsCompliant eq false'
}
Get-AzPolicyState @complianceparms
De $complianceparms
variabele maakt gebruik van splatting om parameterwaarden te maken die in de Get-AzPolicyState
opdracht worden gebruikt.
ResourceGroupName
haalt de naam van de resourcegroep op uit de$rg.ResourceGroupName
eigenschap.PolicyAssignmentName
hiermee geeft u de naam op die wordt gebruikt bij het maken van de beleidstoewijzing.Filter
gebruikt een expressie om resources te vinden die niet compatibel zijn met de beleidstoewijzing.
Uw resultaten lijken op het volgende voorbeeld en ComplianceState
tonen 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, ]}
Ga naar Get-AzPolicyState voor meer informatie.
Resources opschonen
Voer de volgende opdracht uit om de beleidstoewijzing te verwijderen:
Remove-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId
Afmelden bij uw Azure PowerShell-sessie:
Disconnect-AzAccount
Volgende stappen
In deze Quick Start hebt u een beleidsdefinitie toegewezen om niet-compatibele resources in uw Azure-omgeving te identificeren.
Ga verder met de zelfstudie voor meer informatie over het toewijzen van beleidsregels voor het valideren van resourcenaleving.