Condividi tramite


Guida introduttiva: Creare un'assegnazione di criteri per identificare le risorse non conformi con Azure PowerShell

Il primo passaggio per comprendere la conformità in Azure consiste nell'identificare lo stato delle risorse. In questa guida introduttiva si crea un'assegnazione di criteri per identificare le risorse non conformi usando Azure PowerShell. I criteri vengono assegnati a un gruppo di risorse e controllano le macchine virtuali che non usano dischi gestiti. Al termine della creazione dell'assegnazione dei criteri, si identificano le macchine virtuali non conformi.

È possibile usare i moduli di Azure PowerShell per gestire le risorse di Azure dalla riga di comando o negli script. Questo articolo illustra come usare Azure PowerShell per creare un'assegnazione di criteri.

Quando si assegna un criterio predefinito o una definizione di iniziativa, è facoltativo fare riferimento a una versione. Per impostazione predefinita, le assegnazioni di criteri delle definizioni si basano sulla versione più recente ed ereditano automaticamente le modifiche della versione secondaria, se non diversamente specificato.

Prerequisiti

  • Se non si ha un account Azure, creare un account gratuito prima di iniziare.
  • Azure PowerShell.
  • Visual Studio Code.
  • Microsoft.PolicyInsights deve essere registrato nella sottoscrizione di Azure. Per registrare un provider di risorse, è necessario disporre dell'autorizzazione per registrare i provider di risorse. Tale autorizzazione è inclusa nei ruoli Collaboratore e Proprietario.
  • Gruppo di risorse con almeno una macchina virtuale che non usa dischi gestiti.

Connect to Azure

Da una sessione del terminale di Visual Studio Code connettersi ad Azure. Se si dispone di più sottoscrizioni, eseguire i comandi per impostare il contesto sulla sottoscrizione. Sostituire <subscriptionID> con l'ID della sottoscrizione di Azure.

Connect-AzAccount

# Run these commands if you have multiple subscriptions
Get-AzSubScription
Set-AzContext -Subscription <subscriptionID>

Registrare il provider di risorse

Quando un provider di risorse è registrato, è disponibile per l'uso nella sottoscrizione di Azure.

Per verificare se Microsoft.PolicyInsights è registrato, eseguire Get-AzResourceProvider. Il provider di risorse contiene diversi tipi di risorse. Se il risultato è NotRegistered eseguire Register-AzResourceProvider:

 Get-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights' |
   Select-Object -Property ResourceTypes, RegistrationState

Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'

Per altre informazioni, vedere Get-AzResourceProvider e Register-AzResourceProvider.

Crea assegnazione criteri

Usare i comandi seguenti per creare una nuova assegnazione di criteri per il gruppo di risorse. Questo esempio usa un gruppo di risorse esistente che contiene una macchina virtuale senza dischi gestiti. Il gruppo di risorse è l'ambito per l'assegnazione dei criteri. In questo esempio viene usata la definizione di criteri predefinita Controlla macchine virtuali che non usano dischi gestiti.

Eseguire i comandi seguenti e sostituire <resourceGroupName> con il nome del gruppo di risorse:

$rg = Get-AzResourceGroup -Name '<resourceGroupName>'

$definition = Get-AzPolicyDefinition |
  Where-Object { $_.DisplayName -eq 'Audit VMs that do not use managed disks' }

La variabile $rg archivia le proprietà per il gruppo di risorse e la variabile $definition archivia le proprietà della definizione dei criteri. Le proprietà vengono usate nei comandi successivi.

Eseguire questo comando per creare l'assegnazione di criteri:

$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

La variabile $policyparms usa lo splatting per creare i valori dei parametri e migliorare la leggibilità. Il comando New-AzPolicyAssignment usa i valori dei parametri definiti nella variabile $policyparms.

  • Name crea il nome dell'assegnazione dei criteri usato nell'oggetto ResourceId dell'assegnazione.
  • DisplayName è il nome per l'assegnazione dei criteri ed è visibile nel portale di Azure.
  • Scope usa la proprietà $rg.ResourceId per assegnare i criteri al gruppo di risorse.
  • PolicyDefinition assegna la definizione dei criteri archiviata nella variabile $definition.
  • Description consente di aggiungere contesto sull'assegnazione dei criteri.

I risultati dell'assegnazione dei criteri sono simili all'esempio seguente:

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

Per altre informazioni, vedere New-AzPolicyAssignment.

Se si desidera riprodurre nuovamente le informazioni sull'assegnazione dei criteri, eseguire il comando seguente:

Get-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId

Identificare risorse non conformi

Lo stato di conformità per una nuova assegnazione di criteri richiede alcuni minuti per diventare attivo e fornire risultati sullo stato del criterio.

Usare il comando seguente per identificare le risorse non conformi all'assegnazione di criteri creata:

$complianceparms = @{
ResourceGroupName = $rg.ResourceGroupName
PolicyAssignmentName = 'audit-vm-managed-disks'
Filter = 'IsCompliant eq false'
}

Get-AzPolicyState @complianceparms

La variabile $complianceparms usa lo splatting per creare i valori dei parametri usati nel comando Get-AzPolicyState.

  • ResourceGroupName ottiene il nome del gruppo di risorse dalla proprietà $rg.ResourceGroupName.
  • PolicyAssignmentName specifica il nome usato quando è stata creata l'assegnazione dei criteri.
  • Filter usa un'espressione per trovare risorse non conformi all'assegnazione dei criteri.

I risultati saranno simili all'esempio seguente e ComplianceState mostra 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, ]}

Per altre informazioni, vedere Get-AzPolicyState.

Pulire le risorse

Per rimuovere l'assegnazione dei criteri, eseguire il comando seguente:

Remove-AzPolicyAssignment -Name 'audit-vm-managed-disks' -Scope $rg.ResourceId

Per disconnettersi dalla sessione di Azure PowerShell:

Disconnect-AzAccount

Passaggi successivi

In questa Guida introduttiva è stata assegnata una definizione dei criteri per identificare le risorse non conformi nell'ambiente Azure.

Per altre informazioni su come assegnare criteri che convalidano la conformità delle risorse, continuare con l'esercitazione.