Share via


Esercitazione: Gestire la governance dei tag con Criteri di Azure

I tag sono una parte cruciale dell'organizzazione delle risorse di Azure in una tassonomia. Quando si seguono le procedure consigliate per la gestione dei tag, questi possono costituire la base per l'applicazione dei criteri aziendali con Criteri di Azure o con il monitoraggio dei costi con Gestione costi. Indipendentemente da come o perché si usano i tag, è importante che sia possibile aggiungere, modificare e rimuovere rapidamente questi tag nelle risorse di Azure. Per verificare se la risorsa di Azure supporta l'assegnazione di tag, vedere Supporto dei tag.

L'effetto Modify di Criteri di Azure è progettato per semplificare la governance dei tag, indipendentemente dalla fase di governance delle risorse in cui ci si trova. Modify è utile quando:

  • Non si ha familiarità con il cloud e non si dispone di governance dei tag
  • Sono già presenti migliaia di risorse che non dispongono di governance dei tag
  • È presente una tassonomia esistente che è necessario modificare

In questa esercitazione verranno completate le attività seguenti:

  • Identificare i requisiti aziendali
  • Abbinare ogni requisito a una definizione dei criteri
  • Raggruppare i criteri di tag in un'iniziativa

Prerequisiti

Per completare l'esercitazione, è necessaria una sottoscrizione di Azure. Se non se ne ha una, creare un account gratuito prima di iniziare.

Identificare i requisiti

Analogamente a qualsiasi implementazione efficace dei controlli di governance, i requisiti dovrebbero provenire dalle esigenze aziendali ed essere compresi a fondo prima della creazione di controlli tecnici. Per l'esercitazione relativa a questo scenario, gli elementi seguenti rappresentano i requisiti aziendali:

  • Due tag obbligatori per tutte le risorse: CostCenter ed Env
  • CostCenter deve esistere in tutti i contenitori e nelle singole risorse
    • Le risorse ereditano dal contenitore in cui si trovano, ma possono essere sottoposte singolarmente a override
  • Env deve esistere in tutti i contenitori e nelle singole risorse
    • Le risorse determinano l'ambiente tramite schema di denominazione dei contenitori e non possono essere sottoposte a override
    • Tutte le risorse all'interno di un contenitore fanno parte dello stesso ambiente

Configurare il tag CostCenter

In termini specifici per un ambiente Azure gestito da Criteri di Azure, i requisiti del tag CostCenter necessitano dei risultati seguenti:

  • Rifiuto dei gruppi di risorse a cui manca il tag CostCenter
  • Modifica delle risorse per aggiungere il tag CostCenter dal gruppo di risorse padre, se mancante

Rifiuto dei gruppi di risorse a cui manca il tag CostCenter

Poiché non è possibile determinare il CostCenter per un gruppo di risorse dal nome di quel gruppo, deve avere il tag definito nella richiesta per creare il gruppo di risorse. La regola dei criteri seguente con l'effetto Deny impedisce la creazione o l'aggiornamento di gruppi di risorse che non hanno il tag CostCenter:

"if": {
    "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "tags['CostCenter']",
            "exists": false
        }
    ]
},
"then": {
    "effect": "deny"
}

Nota

Poiché questa regola dei criteri è destinata a un gruppo di risorse, la modalità nella definizione dei criteri deve essere "Tutte" anziché "Indicizzato".

Modificare le risorse per ereditare il tag CostCenter, se mancante

La seconda necessità di CostCenter è che le risorse ereditino il tag dal gruppo di risorse padre, se mancante. Se il tag è già definito nella risorsa, anche se diverso dal gruppo di risorse padre, deve rimanere invariato. La regola dei criteri seguente usa Modify:

"policyRule": {
    "if": {
        "field": "tags['CostCenter']",
        "exists": "false"
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "add",
                "field": "tags['CostCenter']",
                "value": "[resourcegroup().tags['CostCenter']]"
            }]
        }
    }
}

Questa regola dei criteri usa l'operazione add invece di addOrReplace poiché non si vuole modificare il valore del tag se è presente durante la correzione di risorse esistenti. Questa regola usa anche la funzione di modello [resourcegroup()] per ottenere il valore del tag dal gruppo di risorse padre.

Nota

Poiché questa regola dei criteri è destinata a risorse che supportano i tag, la modalità nella definizione dei criteri deve essere "Indicizzato". Questa configurazione garantisce inoltre che i criteri ignorino i gruppi di risorse.

Configurare il tag Env

In termini specifici per un ambiente Azure gestito da Criteri di Azure, i requisiti del tag Env necessitano dei risultati seguenti:

  • Modifica del tag Env nel gruppo di risorse in base allo schema di denominazione del gruppo stesso
  • Modifica del tag Env per tutte le risorse nel gruppo di risorse in modo analogo al gruppo di risorse padre

Modifica del tag Env per i gruppi di risorse in base al nome

Per ogni ambiente esistente nell'ambiente Azure è necessario un criterio Modify. Il criterio Modify per ogni elemento è simile alla definizione dei criteri seguente:

"policyRule": {
    "if": {
        "allOf": [{
            "field": "type",
            "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
            "field": "name",
            "like": "prd-*"
        },
        {
            "field": "tags['Env']",
            "notEquals": "Production"
        }

    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "Production"
            }]
        }
    }
}

Nota

Poiché questa regola dei criteri è destinata a un gruppo di risorse, la modalità nella definizione dei criteri deve essere "Tutte" anziché "Indicizzato".

Questo criterio corrisponde soltanto ai gruppi di risorse con lo schema di denominazione di esempio usato per le risorse di produzione di prd-. È possibile ottenere uno schema di denominazione più complesso con diverse condizioni di corrispondenza anziché il singolo schema come in questo esempio.

Modificare le risorse per ereditare il tag Env

Il requisito aziendale richiede che tutte le risorse abbiano il tag Env del gruppo di risorse padre. Non è possibile eseguire l'override di questo tag, quindi si userà l'operazione addOrReplace con l'effetto Modify. Il criterio Modify di esempio è simile alla regola seguente:

"policyRule": {
    "if": {
        "anyOf": [{
            "field": "tags['Env']",
            "notEquals": "[resourcegroup().tags['Env']]"
        },
        {
            "field": "tags['Env']",
            "exists": false
        }
    ]
    },
    "then": {
        "effect": "modify",
        "details": {
            "roleDefinitionIds": [
                "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "operations": [{
                "operation": "addOrReplace",
                "field": "tags['Env']",
                "value": "[resourcegroup().tags['Env']]"
            }]
        }
    }
}

Nota

Poiché questa regola dei criteri è destinata a risorse che supportano i tag, la modalità nella definizione dei criteri deve essere "Indicizzato". Questa configurazione garantisce inoltre che i criteri ignorino i gruppi di risorse.

Questa regola dei criteri cerca le risorse che non hanno i propri valori dei gruppi di risorse padre per il tag Env o in cui lo stesso tag Env risulta mancante. Le risorse corrispondenti hanno il tag Env impostato sul valore dei gruppi di risorse padre, anche se il tag esiste già nella risorsa, ma con un valore diverso.

Assegnazione dell'iniziativa e correzione delle risorse

Dopo aver creato i criteri di tag precedenti, è necessario aggiungerli a un'unica iniziativa per la governance dei tag e assegnarli a un gruppo di gestione o a una sottoscrizione. L'iniziativa e i criteri inclusi valutano la conformità delle risorse esistenti e modificano le richieste per le risorse nuove o aggiornate che corrispondono alla proprietà if nella regola dei criteri. Tuttavia, il criterio non aggiorna automaticamente le risorse non conformi esistenti con le modifiche ai tag definiti.

Analogamente ai criteri di deployIfNotExists, il criterio Modify usa le attività di correzione per modificare le risorse non conformi esistenti. Seguire le istruzioni riportate in Correggere le risorse non conformi con Criteri di Azure per identificare le risorse non conformi a Modify e correggere i tag secondo la tassonomia definita.

Pulire le risorse

Se le risorse di questa esercitazione non sono più necessarie, usare i passaggi seguenti per eliminare tutte le assegnazioni o definizioni create:

  1. Selezionare Definizioni (o Assegnazioni se si sta tentando di eliminare un'assegnazione) in Creazione sul lato sinistro della pagina Criteri di Azure.

  2. Cercare la nuova iniziativa o definizione (o assegnazione) di criteri da rimuovere.

  3. Fare clic con il pulsante destro del mouse sulla riga o selezionare i puntini di sospensione alla fine della definizione (o assegnazione) e quindi Elimina definizione o Elimina assegnazione.

Verifica

In questa esercitazione sono stati presentate le attività seguenti:

  • Sono stati identificati i requisiti aziendali
  • È stato mappato ogni requisito a una definizione dei criteri
  • Sono stati raggruppati i criteri di tag in un'iniziativa

Passaggi successivi

Per altre informazioni sulle strutture delle definizioni di criteri, vedere: