Azure Governance: come organizzare le risorse utilizzando gli Azure Management Groups

In presenza di ambienti con un numero elevato di subscription Azure è necessario avere un livello di astrazione differente per poter gestire in modo efficace gli accessi, le policy e la compliance. A questo scopo sono stati introdotti gli Azure Management Groups, che consentono di organizzare differenti subscriptions in contenitori logici, sui quali definire, porre in essere e verificare le politiche di governo necessarie. In questo articolo vengono esaminati nel dettaglio i relativi concetti e vengono riportate delle indicazioni per organizzare al meglio le risorse Azure al fine di facilitare il processo di governance.

Per organizzare in modo efficace le risorse Azure è fondamentale definire una gerarchia di management groups e di subscriptions sulla quale è possibile applicare le Azure Policy, il servizio che consente di creare, assegnare e gestire dei criteri di controllo. L’utilizzo dei Management Group è inoltre utile per gestire in modo efficace l’assegnazione dei permessi tramite role-based access control (RBAC), a fini di delega amministrativa.

Figura 1 – Esempio di gerarchia di Management Groups

Ogni risorsa Azure è contenuta all’interno di una specifica Azure Subscription, la quale è associata ad un solo tenant Azure Active Directory, ed eredita i permessi impostati a tale livello.

Al momento, un vincolo da tenere in considerazione, è che un Management Group può contenere più subscriptions purché le stesse facciano parte dello stesso tenant Azure Active Directory.  Detto in altri termini, i Management Groups risiedono all’interno di un tenant e non possono contenere subscriptions di tenant diversi. I security principal utilizzabili sui management group possono provenire solo dal tenant di riferimento per il management group.

Figura 2 –  Relazione tra Azure AD e la struttura organizzativa

Le risorse Azure appartenenti a una subscription sono contenute a loro volta in Resource Groups. I resource groups sono contenitori di risorse che, a fini amministrativi, consentono di ottenere i seguenti vantaggi:

  • Facilitano la delega amministrativa in quanto le risorse contenute ereditano i permessi a livello di resource group.
  • Sui resorce group si possono assegnare dei tag, anche se questi non vengono in automatico ereditati dalle risorse, ma è opportuno prevedere dei meccanismi specifici se lo si ritiene necessario.

Figura 3 – Relazione tra i livelli della struttura organizzativa

Le Azure Policy possono essere assegnate a livello di Subscription oppure di Management Group e possono essere definite eccezioni per Resource Group. A questo proposito si consiglia quando possibile, di organizzare le policy in “initiative” e assegnarle a livello di Management Group.

Il Management Group root è al livello top e contiene tutti Management Groups configurati e le varie subscriptions Azure. Il root Management Group non può essere rimosso o spostato. La struttura può essere creata con al massimo sei livelli di profondità, senza considerare il Root level e il livello della subscription. Ogni Management Group può avere più figli, ma è supportato un solo parent per ogni Management Group e per ogni subscription.

In assenza di specifici requisiti, Microsoft consiglia di dividere gli ambienti di produzione da quelli di “DevTest”, creando due livelli di management groups. Al management group root di default saranno associate le policy fondamentali, come ad esempio quelle relative alla security. Sui restanti Management Groups saranno invece associate policy specifiche. La gerarchia dei Management Groups permette di avere un modello per il quale le policy che vengono definite a livelli più alti della gerarchia non possono essere sovrascritte dai livelli inferiori.

Figura 4 – Management Group & Subscription Modeling Strategy

Questo approccio consente di gestire ambienti Azure complessi, che vedono la presenza di più subscription. in modo più semplice e flessibile, per le seguenti ragioni:

  • Il concetto di ereditarietà consente con un’unica associazione di applicare i controlli voluti e l’assegnazione dei ruoli su differenti subscriptions.
  • Si ha una gestione centralizzata.
  • Si possono includere ulteriori subscription nella gerarchia, con la consapevolezza che dovranno aderire alle politiche stabilite e che avranno l’assegnazione dei ruoli desiderata.

Conclusioni

I processi di goverance attraverso i quali è possibile garantire a un’organizzazione un utilizzo efficace ed efficiente delle risorse IT, al fine di poter raggiungere i propri obiettivi, non possono esimersi dall’adozione di un modello che consenta di organizzare in modo efficace le risorse Azure. L’utilizzo dei Management Groups, in ambienti con un numero considerevole di subscriptions, diventa quindi fondamentale per far fronte all’esigenza comune di standardizzare, e in alcuni casi imporre, come vengono configurate le differenti risorse nel cloud.