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)