Applicare criteri alle macchine virtuali Windows con Azure Resource ManagerApply policies to Windows VMs with Azure Resource Manager

Tramite i criteri è possibile imporre diverse convenzioni e regole in tutta l'organizzazione.By using policies, an organization can enforce various conventions and rules throughout the enterprise. L'imposizione del comportamento desiderato consente di attenuare i rischi, contribuendo nello stesso tempo al successo dell'organizzazione.Enforcement of the desired behavior can help mitigate risk while contributing to the success of the organization. Questo articolo illustra come usare i criteri di Azure Resource Manager per definire il comportamento desiderato per le macchine virtuali dell'organizzazione.In this article, we describe how you can use Azure Resource Manager policies to define the desired behavior for your organization’s Virtual Machines.

Per un'introduzione ai criteri, vedere Usare i criteri per gestire le risorse e controllare l'accesso.For an introduction to policies, see Use Policy to manage resources and control access.

Macchine virtuali permessePermitted Virtual Machines

Per assicurarsi che le macchine virtuali dell'organizzazione siano compatibili con un'applicazione, è possibile limitare i sistemi operativi consentiti.To ensure that virtual machines for your organization are compatible with an application, you can restrict the permitted operating systems. Nell'esempio di criterio che segue si consente solo la creazione di macchine virtuali Windows Server 2012 R2 Datacenter:In the following policy example, you allow only Windows Server 2012 R2 Datacenter Virtual Machines to be created:

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "in": [
          "Microsoft.Compute/disks",
          "Microsoft.Compute/virtualMachines",
          "Microsoft.Compute/VirtualMachineScaleSets"
        ]
      },
      {
        "not": {
          "allOf": [
            {
              "field": "Microsoft.Compute/imagePublisher",
              "in": [
                "MicrosoftWindowsServer"
              ]
            },
            {
              "field": "Microsoft.Compute/imageOffer",
              "in": [
                "WindowsServer"
              ]
            },
            {
              "field": "Microsoft.Compute/imageSku",
              "in": [
                "2012-R2-Datacenter"
              ]
            },
            {
              "field": "Microsoft.Compute/imageVersion",
              "in": [
                "latest"
              ]
            }
          ]
        }
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

Per modificare il criterio precedente e consentire qualsiasi immagine Windows Server Datacenter, usare un carattere jolly:Use a wild card to modify the preceding policy to allow any Windows Server Datacenter image:

{
  "field": "Microsoft.Compute/imageSku",
  "like": "*Datacenter"
}

Per modificare il criterio precedente e consentire qualsiasi immagine Windows Server 2012 R2 Datacenter o versione successiva, usare anyOf:Use anyOf to modify the preceding policy to allow any Windows Server 2012 R2 Datacenter or higher image:

{
  "anyOf": [
    {
      "field": "Microsoft.Compute/imageSku",
      "like": "2012-R2-Datacenter*"
    },
    {
      "field": "Microsoft.Compute/imageSku",
      "like": "2016-Datacenter*"
    }
  ]
}

Per informazioni sui campi dei criteri, vedere Alias dei criteri.For information about policy fields, see Policy aliases.

Dischi gestitiManaged disks

Per richiedere l'uso dei dischi gestiti, usare il criterio seguente:To require the use of managed disks, use the following policy:

{
  "if": {
    "anyOf": [
      {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Compute/virtualMachines"
          },
          {
            "field": "Microsoft.Compute/virtualMachines/osDisk.uri",
            "exists": true
          }
        ]
      },
      {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Compute/VirtualMachineScaleSets"
          },
          {
            "anyOf": [
              {
                "field": "Microsoft.Compute/VirtualMachineScaleSets/osDisk.vhdContainers",
                "exists": true
              },
              {
                "field": "Microsoft.Compute/VirtualMachineScaleSets/osdisk.imageUrl",
                "exists": true
              }
            ]
          }
        ]
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

Immagini per macchine virtualiImages for Virtual Machines

Per motivi di sicurezza, è possibile richiedere che solo le immagini personalizzate approvate vengano distribuite nell'ambiente in uso.For security reasons, you can require that only approved custom images are deployed in your environment. È possibile specificare il gruppo di risorse che contiene le immagini approvate o immagini approvate specifiche.You can specify either the resource group that contains the approved images, or the specific approved images.

L'esempio seguente richiede le immagini da un gruppo di risorse approvato:The following example requires images from an approved resource group:

{
    "if": {
        "allOf": [
            {
                "field": "type",
                "in": [
                    "Microsoft.Compute/virtualMachines",
                    "Microsoft.Compute/VirtualMachineScaleSets"
                ]
            },
            {
                "not": {
                    "field": "Microsoft.Compute/imageId",
                    "contains": "resourceGroups/CustomImage"
                }
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
} 

L'esempio seguente specifica gli ID immagine approvati:The following example specifies the approved image IDs:

{
    "field": "Microsoft.Compute/imageId",
    "in": ["{imageId1}","{imageId2}"]
}

Estensioni di macchina virtualeVirtual Machine extensions

È possibile che si desideri proibire l'utilizzo di tipi specifici di estensioni.You may want to forbid usage of certain types of extensions. Un'estensione potrebbe non essere ad esempio compatibile con determinate immagini di macchina virtuale personalizzata.For example, an extension may not be compatible with certain custom virtual machine images. L'esempio seguente mostra come bloccare un'estensione specifica.The following example shows how to block a specific extension. Usa server di pubblicazione e tipo per determinare l'estensione da bloccare.It uses publisher and type to determine which extension to block.

{
    "if": {
        "allOf": [
            {
                "field": "type",
                "equals": "Microsoft.Compute/virtualMachines/extensions"
            },
            {
                "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
                "equals": "Microsoft.Compute"
            },
            {
                "field": "Microsoft.Compute/virtualMachines/extensions/type",
                "equals": "{extension-type}"

      }
        ]
    },
    "then": {
        "effect": "deny"
    }
}

Vantaggio Azure Hybrid UseAzure Hybrid Use Benefit

Quando si dispone di una licenza in locale, è possibile risparmiare il costo della licenza sulle macchine virtuali.When you have an on-premise license, you can save the license fee on your virtual machines. Se non si dispone di licenza, è consigliabile impedire questa possibilità.When you don't have the license, you should forbid the option. I criteri seguenti impediscono l'uso del vantaggio Azure Hybrid Use (AHUB):The following policy forbids usage of Azure Hybrid Use Benefit (AHUB):

{
    "if": {
        "allOf": [
            {
                "field": "type",
                "in":[ "Microsoft.Compute/virtualMachines","Microsoft.Compute/VirtualMachineScaleSets"]
            },
            {
                "field": "Microsoft.Compute/licenseType",
                "exists": true
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
}

Passaggi successiviNext steps