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.
Questo articolo illustra come creare a livello di programmazione e gestire i criteri. Le definizioni di Criteri di Azure applicano regole ed effetti diversi in relazione alle risorse. Il monitoraggio garantisce che le risorse rimangano conformi agli standard aziendali e agli accordi sul livello di servizio.
Per informazioni sulla conformità, vedere Ottenere dati sulla conformità.
Prerequisiti
Prima di iniziare, verificare che i prerequisiti seguenti siano soddisfatti:
Se non è già stato fatto, installare ARMClient. È uno strumento che invia richieste HTTP alle API basate su Azure Resource Manager.
Aggiornare il modulo Azure di PowerShell all'ultima versione. Per informazioni dettagliate, vedere Installare il modulo di Azure PowerShell. Per altre informazioni sulla versione più recente, vedere Azure PowerShell.
Per convalidare che la sottoscrizione funzioni con il provider di risorse, registrare il provider di risorse Azure Policy Insights usando Azure PowerShell. Per registrare un provider di risorse, devi avere l'autorizzazione per eseguire l'operazione di registrazione del provider. Questa operazione è inclusa nei ruoli Collaboratore e Proprietario. Eseguire il comando seguente per registrare il provider di risorse:
Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'Per altre informazioni sulla registrazione e la visualizzazione di provider di risorse, vedere Provider e tipi di risorse.
Se non è già stato fatto, installare Azure CLI. È possibile ottenere la versione più recente in Installare l'interfaccia della riga di comando di Azure in Windows.
Creare e assegnare una definizione di criteri
Il primo passo per una migliore visibilità delle risorse consiste nel creare e assegnare politiche sulle risorse. Il passaggio successivo illustra come creare e assegnare un criterio a livello di codice. Il criterio di esempio controlla gli account di archiviazione aperti a tutte le reti pubbliche usando PowerShell, l'interfaccia della riga di comando di Azure e le richieste HTTP.
Creare e assegnare una definizione di criteri con PowerShell
Usare il frammento JSON seguente per creare un file JSON con il nome AuditStorageAccounts.json.
{ "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction", "equals": "Allow" } ] }, "then": { "effect": "audit" } }Per altre informazioni sulla creazione di una definizione dei criteri, vedere Struttura delle definizioni di Criteri di Azure.
Eseguire il comando seguente per creare una definizione di criteri usando il file AuditStorageAccounts.json .
New-AzPolicyDefinition -Name 'AuditStorageAccounts' -DisplayName 'Audit Storage Accounts Open to Public Networks' -Policy 'AuditStorageAccounts.json'Il comando crea una definizione di criteri denominata Audit Storage Accounts Open to Public Networks. Per altre informazioni sui parametri aggiuntivi che è possibile usare, vedere New-AzPolicyDefinition.
Se chiamato senza parametri per la posizione,
New-AzPolicyDefinitionsalva per impostazione predefinita la definizione dei criteri nella sottoscrizione selezionata del contesto di sessioni. Per salvare la definizione in una posizione diversa, usare i parametri seguenti:- SubscriptionId - Salva in una sottoscrizione diversa. Richiede un valore GUID.
- ManagementGroupName - Salva in un gruppo di gestione. Richiede un valore di tipo stringa.
Dopo aver creato la definizione dei criteri, è possibile creare un'assegnazione di criteri eseguendo i comandi seguenti:
$rg = Get-AzResourceGroup -Name 'ContosoRG' $Policy = Get-AzPolicyDefinition -Name 'AuditStorageAccounts' New-AzPolicyAssignment -Name 'AuditStorageAccounts' -PolicyDefinition $Policy -Scope $rg.ResourceIdSostituire ContosoRG con il nome del gruppo di risorse previsto.
Il
Scopeparametro suNew-AzPolicyAssignmentfunziona con gruppo di gestione, sottoscrizione, gruppo di risorse o una singola risorsa. Il parametro utilizza un percorso di risorsa completo, che la proprietàResourceIdsuGet-AzResourceGrouprestituisce. Il modello perScopeogni contenitore è il seguente. Sostituire{rName},{rgName},{subId}e{mgName}rispettivamente con il nome della risorsa, il nome del gruppo di risorse, l'ID della sottoscrizione e il nome del gruppo di gestione.{rType}verrà sostituito con il tipo di risorsa della risorsa, ad esempioMicrosoft.Compute/virtualMachinesper una macchina virtuale.- Risorsa -
/subscriptions/{subID}/resourceGroups/{rgName}/providers/{rType}/{rName} - Gruppo di risorse -
/subscriptions/{subId}/resourceGroups/{rgName} - Sottoscrizione -
/subscriptions/{subId} - Gruppo di gestione -
/providers/Microsoft.Management/managementGroups/{mgName}
- Risorsa -
Per altre informazioni sulla gestione dei criteri delle risorse tramite il modulo PowerShell di Resource Manager, vedere Az.Resources.
Creare e assegnare una definizione dei criteri usando ARMClient
Usare la procedura seguente per creare una definizione dei criteri.
Copiare il frammento di codice JSON seguente per creare un file JSON. Il file verrà chiamato nel passaggio successivo.
"properties": { "displayName": "Audit Storage Accounts Open to Public Networks", "policyType": "Custom", "mode": "Indexed", "description": "This policy ensures that storage accounts with exposure to Public Networks are audited.", "parameters": {}, "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction", "equals": "Allow" } ] }, "then": { "effect": "audit" } } }Creare la definizione dei criteri usando una delle chiamate seguenti:
# For defining a policy in a subscription armclient PUT "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyDefinitions/AuditStorageAccounts?api-version=2021-09-01" @<path to policy definition JSON file> # For defining a policy in a management group armclient PUT "/providers/Microsoft.Management/managementgroups/{managementGroupId}/providers/Microsoft.Authorization/policyDefinitions/AuditStorageAccounts?api-version=2021-09-01" @<path to policy definition JSON file>Sostituire l'elemento precedente
con l'ID della sottoscrizione o con l'ID del gruppo di gestione . Per ulteriori informazioni sulla struttura della query, vedere Definizioni dei criteri di Azure - Creare o aggiornare e Definizioni dei criteri - Creare o aggiornare nel gruppo di gestione.
Usare la procedura seguente per creare un'assegnazione dei criteri e assegnare la definizione dei criteri a livello di gruppo di risorse.
Copiare il frammento di codice JSON seguente per creare un file di assegnazione dei criteri JSON. Sostituire le informazioni di esempio incluse nei simboli <> con i valori desiderati.
{ "properties": { "description": "This policy assignment makes sure that storage accounts with exposure to Public Networks are audited.", "displayName": "Audit Storage Accounts Open to Public Networks Assignment", "parameters": {}, "policyDefinitionId": "/subscriptions/<subscriptionId>/providers/Microsoft.Authorization/policyDefinitions/Audit Storage Accounts Open to Public Networks", "scope": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>" } }Crea l'assegnazione dei criteri utilizzando la seguente chiamata:
armclient PUT "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Authorization/policyAssignments/Audit Storage Accounts Open to Public Networks?api-version=2021-09-01" @<path to Assignment JSON file>Sostituire le informazioni di esempio incluse nei simboli <> con i valori desiderati.
Per altre informazioni su come eseguire le chiamate HTTP all'API REST, vedere Risorse di API REST di Azure.
Creare e assegnare una definizione dei criteri con l'interfaccia della riga di comando di Azure
Per creare una definizione dei criteri, usare la procedura seguente:
Copiare il frammento di codice JSON seguente per creare un file di assegnazione dei criteri JSON.
{ "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "field": "Microsoft.Storage/storageAccounts/networkAcls.defaultAction", "equals": "Allow" } ] }, "then": { "effect": "audit" } }Per altre informazioni sulla creazione di una definizione dei criteri, vedere Struttura delle definizioni di Criteri di Azure.
Per creare una definizione dei criteri, eseguire il comando seguente:
az policy definition create --name 'audit-storage-accounts-open-to-public-networks' --display-name 'Audit Storage Accounts Open to Public Networks' --description 'This policy ensures that storage accounts with exposures to public networks are audited.' --rules '<path to json file>' --mode AllIl comando crea una definizione di criteri denominata Audit Storage Accounts Open to Public Networks. Per altre informazioni sui parametri aggiuntivi che è possibile usare, vedere az policy definition create.
Se chiamato senza parametri per la posizione,
az policy definition creationsalva per impostazione predefinita la definizione dei criteri nella sottoscrizione selezionata del contesto di sessioni. Per salvare la definizione in una posizione diversa, usare i parametri seguenti:- subscription - Salva in una sottoscrizione diversa. Richiede un valore GUID per l'ID sottoscrizione o un valore string per il nome della sottoscrizione.
- management-group - Salva in un gruppo di gestione. Richiede un valore stringa.
Usare questo comando per creare un'assegnazione di criteri. Sostituire le informazioni di esempio tra parentesi angolari
< >con i propri valori.az policy assignment create --name '<name>' --scope '<scope>' --policy '<policy definition ID>'Il
scopeparametro suaz policy assignment createfunziona con gruppo di gestione, sottoscrizione, gruppo di risorse o una singola risorsa. Il parametro usa un percorso di risorsa completo. Il modello perscopeogni contenitore è il seguente. Sostituire{rName},{rgName},{subId}e{mgName}rispettivamente con il nome della risorsa, il nome del gruppo di risorse, l'ID della sottoscrizione e il nome del gruppo di gestione.{rType}verrà sostituito con il tipo di risorsa della risorsa, ad esempioMicrosoft.Compute/virtualMachinesper una macchina virtuale.- Risorsa -
/subscriptions/{subID}/resourceGroups/{rgName}/providers/{rType}/{rName} - Gruppo di risorse -
/subscriptions/{subID}/resourceGroups/{rgName} - Sottoscrizione -
/subscriptions/{subID} - Gruppo di gestione -
/providers/Microsoft.Management/managementGroups/{mgName}
- Risorsa -
È possibile ottenere l'ID definizione di Criteri di Azure usando PowerShell con il comando seguente:
az policy definition show --name 'Audit Storage Accounts with Open Public Networks'
L'ID della definizione dei criteri che hai creato dovrebbe essere simile al seguente esempio:
"/subscription/<subscriptionId>/providers/Microsoft.Authorization/policyDefinitions/Audit Storage Accounts Open to Public Networks"
Per altre informazioni su come gestire i criteri di risorse con l'interfaccia della riga di comando di Azure, vedere Criteri di risorse dell'interfaccia della riga di comando di Azure.
Passaggi successivi
Esaminare gli articoli seguenti per altre informazioni sui comandi e sulle query di questo articolo.