Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u het gebruik of de installatie van bepaalde extensies op uw Windows-VM's wilt voorkomen, kunt u een Azure Policy-definitie maken met behulp van PowerShell om extensies voor VM's binnen een resourcegroep te beperken.
In deze zelfstudie wordt Gebruikgemaakt van Azure PowerShell in De Cloud Shell, die voortdurend wordt bijgewerkt naar de nieuwste versie.
Opmerking
New! VM-hulp proberen voor snellere diagnostische gegevens' U wordt aangeraden VM-hulp uit te voeren voor Windows of VM-hulp voor Linux. Met deze diagnostische hulpprogramma's op basis van scripts kunt u veelvoorkomende problemen identificeren die van invloed zijn op de Azure VM-gastagent en de algehele VM-status.
Een regelbestand maken
Als u wilt beperken welke extensies kunnen worden geïnstalleerd, moet u een regel hebben om de logica op te geven om de extensie te identificeren.
In dit voorbeeld ziet u hoe u extensies kunt weigeren die zijn gepubliceerd door Microsoft. Compute' door een regelbestand te maken in Azure Cloud Shell, maar als u lokaal in PowerShell werkt, kunt u ook een lokaal bestand maken en het pad ($home/clouddrive) vervangen door het pad naar het lokale bestand op uw computer.
Maak in een Cloud Shell het bestand
$home/clouddrive/rules.jsonmet behulp van een teksteditor.Kopieer en plak de volgende .json inhoud in het bestand en sla het op:
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Compute/virtualMachines/extensions"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Compute"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/type",
"in": "[parameters('notAllowedExtensions')]"
}
]
},
"then": {
"effect": "deny"
}
}
Een parameterbestand maken
U hebt ook een parameterbestand nodig waarmee u een structuur kunt maken die u kunt gebruiken voor het doorgeven van een lijst met extensies die u wilt blokkeren.
In dit voorbeeld ziet u hoe u een parameterbestand maakt voor VM's in Cloud Shell, maar als u lokaal in PowerShell werkt, kunt u ook een lokaal bestand maken en het pad ($home/clouddrive) vervangen door het pad naar het lokale bestand op uw computer.
Maak in Cloud Shell het bestand
$home/clouddrive/parameters.jsonmet behulp van een teksteditor.Kopieer en plak de volgende .json inhoud in het bestand en sla het op:
{
"notAllowedExtensions": {
"type": "Array",
"metadata": {
"description": "The list of extensions that will be denied.",
"displayName": "Denied extension"
}
}
}
Het beleid maken
Een beleidsdefinitie is een object dat wordt gebruikt voor het opslaan van de configuratie die u wilt gebruiken. De beleidsdefinitie maakt gebruik van de regels en parametersbestanden om het beleid te definiëren. Maak een beleidsdefinitie met behulp van de cmdlet New-AzPolicyDefinition .
De beleidsregels en parameters zijn de bestanden die u hebt gemaakt en opgeslagen als .json bestanden in uw cloudshell. Vervang indien nodig de voorbeeldbestandspaden -Policy en -Parameter.
$definition = New-AzPolicyDefinition `
-Name "not-allowed-vmextension-windows" `
-DisplayName "Not allowed VM Extensions" `
-description "This policy governs which VM extensions that are explicitly denied." `
-Policy 'C:\Users\ContainerAdministrator\clouddrive\rules.json' `
-Parameter 'C:\Users\ContainerAdministrator\clouddrive\parameters.json'
Het beleid toewijzen
In dit voorbeeld wordt het beleid aan een resourcegroep toegewezen met behulp van New-AzPolicyAssignment. Vm's die zijn gemaakt in de resourcegroep myResourceGroup , kunnen de VM-toegangsagent of aangepaste scriptextensies niet installeren.
Gebruik de Get-AzSubscription | Cmdlet Format-Table om uw abonnements-id op te halen voor gebruik in plaats van de id in het voorbeeld.
$scope = "/subscriptions/<subscription id>/resourceGroups/myResourceGroup"
$assignment = New-AzPolicyAssignment `
-Name "not-allowed-vmextension-windows" `
-Scope $scope `
-PolicyDefinition $definition `
-PolicyParameter '{
"notAllowedExtensions": {
"value": [
"VMAccessAgent",
"CustomScriptExtension"
]
}
}'
$assignment
Het beleid testen
Als u het beleid wilt testen, probeert u de VM-toegangsextensie te gebruiken. Het volgende moet mislukken met het bericht "Set-AzVMAccessExtension: Resource 'myVMAccess' was verboden volgens het beleid."
Set-AzVMAccessExtension `
-ResourceGroupName "myResourceGroup" `
-VMName "myVM" `
-Name "myVMAccess" `
-Location EastUS
In de portal moet de wachtwoordwijziging mislukken met het bericht 'De sjabloonimplementatie is mislukt vanwege beleidsschending'.
De toewijzing verwijderen
Remove-AzPolicyAssignment -Name not-allowed-vmextension-windows -Scope $scope
Het beleid verwijderen
Remove-AzPolicyDefinition -Name not-allowed-vmextension-windows
Volgende stappen
Zie Azure Policy voor meer informatie.