Forzare l’utilizzo di Region e SKU specifiche

Azure Policy è un servizio di governance in Microsoft Azure che consente di creare, assegnare e gestire criteri (policies) per garantire la conformità alle best practice aziendali e ai requisiti di sicurezza.
Grazie a questo strumento è possibile applicare regole di conformità automatizzate per controllare le risorse Azure in base a specifiche condizioni.

In questo articolo vedremo come limitare la creazione di risorse alla sola Region italiana (Italy North) e di virtual machine alla dimensione Standard B.

Iniziamo andando nella sezione Policy dell’Azure Portal, per poi procedere alla creazione la prima regola, relativa all’inibire le regioni differenti da Italy North:

Dovremo definire la Location, che in questo caso sarà solamente una delle Subscription:

 

…e inserire i parametri relativi a nome, descrizione e categoria:

Il codice da inserire, in formato JSON (JavaScript Object Notation) utilizzato per questa policy è il seguente:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "location",
          "exists": "true"
        },
        {
          "field": "location",
          "notIn": [
            "italynorth"
          ]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

Una volta salvata la regola dovremo assegnarla, tramite questa procedura la policy potrà essere applicata a un’area specifica come, ad esempio, a una singola risorsa o a un gruppo di risorse.

Nell’esempio la policy così configurata sarà assegnata all’intera sottoscrizione:

Per questa policy specifica non ci sono parametri da configurare, passeremo direttamente al Non-compliance message, un messaggio che aiuterà gli utenti a capire perché la risorsa che stanno creando non è compliant:

Per verificare che la regola stia correttamente funzionando proveremo a creare una macchina virtuale selezionando una Region diversa da Italy North:

L’utente riceverà, quindi, il messaggio che era stato impostato durante la fase di assegnazione.

Ripercorrendo tutti i passaggi eseguiti finora possiamo creare una seconda policy che forzi l’utilizzo dello SKU Standard B durante la creazione delle macchine virtuali.
Il codice JSON in questo caso sarà:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "not": {
        "field": "Microsoft.Compute/virtualMachines/sku",
        "match": "Standard_B*"
      }
    },
    "then": {
      "effect": "deny"
    }
  }
}

…e provocherà l’errore in fase di creazione:

 

L’uso di Azure Policy per limitare la creazione di risorse a una specifica regione geografica e per controllare gli SKU delle macchine virtuali è una strategia efficace per garantire conformità, sicurezza e ottimizzazione dei costi in un ambiente Azure.

Risorse utili
Azure Policy: gestire e proteggere le risorse nel cloud di Azure (ictpower.it)
Come gestire le risorse Azure utilizzando le Azure Policy (ictpower.it)