Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se si vuole impedire l'uso o l'installazione di determinate estensioni nelle macchine virtuali Windows, è possibile creare una definizione di Criteri di Azure usando PowerShell per limitare le estensioni per le macchine virtuali all'interno di un gruppo di risorse.
Questa esercitazione usa Azure PowerShell all'interno di Cloud Shell, che viene costantemente aggiornato alla versione più recente.
Creare un file delle regole
Per limitare le estensioni installabili, è necessario definire una regola per indicare la logica necessaria a identificare l'estensione.
Questo esempio illustra come negare le estensioni pubblicate da 'Microsoft. Il calcolo crea un file di regole in Azure Cloud Shell, ma se si usa PowerShell in locale, è anche possibile creare un file locale e sostituire il percorso ($home/clouddrive) con il percorso del file locale nel computer.
In Cloud Shell creare il file
$home/clouddrive/rules.json
usando qualsiasi editor di testo.Copiare e incollare il contenuto di .json seguente nel file e salvarlo:
{
"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"
}
}
Creare un file di parametri
È anche necessario un file di parametri per la creazione di una struttura da usare per passare un elenco delle estensioni da bloccare.
Questo esempio illustra come creare un file di parametri per le macchine virtuali in Cloud Shell, ma se si usa PowerShell in locale, è anche possibile creare un file locale e sostituire il percorso ($home/clouddrive) con il percorso del file locale nel computer.
In Cloud Shell creare il file
$home/clouddrive/parameters.json
usando qualsiasi editor di testo.Copiare e incollare il contenuto di .json seguente nel file e salvarlo:
{
"notAllowedExtensions": {
"type": "Array",
"metadata": {
"description": "The list of extensions that will be denied.",
"displayName": "Denied extension"
}
}
}
Creare i criteri
Una definizione di criteri è un oggetto usato per archiviare la configurazione che si desidera usare. La definizione di criteri usa i file di regole e parametri per definire i criteri. Creare una definizione di criteri usando il cmdlet New-AzPolicyDefinition.
Le regole e i parametri dei criteri sono file creati e archiviati come file con estensione JSON in Cloud Shell. Sostituire i percorsi di esempio -Policy
e -Parameter
di file in base alle esigenze.
$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'
Assegnare i criteri
Questo esempio assegna i criteri a un gruppo di risorse usando New-AzPolicyAssignment. Qualsiasi macchina virtuale creata nel gruppo di risorse myResourceGroup non sarà in grado di installare l'agente di accesso alla macchina virtuale o le estensioni script personalizzate.
Usare il cmdlet Get-AzSubscription | Format-Table per ottenere l'ID della sottoscrizione da sostituire a quello nell'esempio.
$scope = "/subscriptions/<subscription id>/resourceGroups/myResourceGroup"
$assignment = New-AzPolicyAssignment `
-Name "not-allowed-vmextension-windows" `
-Scope $scope `
-PolicyDefinition $definition `
-PolicyParameter '{
"notAllowedExtensions": {
"value": [
"VMAccessAgent",
"CustomScriptExtension"
]
}
}'
$assignment
Testare il criterio
Per testare i criteri, provare a usare l'estensione di accesso alla macchina virtuale. L'errore seguente dovrebbe avere esito negativo con il messaggio "Set-AzVMAccessExtension: la risorsa 'myVMAccess' non è stata consentita dai criteri".
Set-AzVMAccessExtension `
-ResourceGroupName "myResourceGroup" `
-VMName "myVM" `
-Name "myVMAccess" `
-Location EastUS
Nel portale la modifica della password dovrebbe non riuscire con il messaggio "La distribuzione del modello non è riuscita a causa di una violazione dei criteri".
Rimuovere l'assegnazione
Remove-AzPolicyAssignment -Name not-allowed-vmextension-windows -Scope $scope
Rimuovere i criteri
Remove-AzPolicyDefinition -Name not-allowed-vmextension-windows
Passaggi successivi
Per altre informazioni, vedere Criteri di Azure.