Gestire la conformità delle macchine virtuali

Criteri di Azure

Questo articolo descrive come gestire la conformità delle macchine virtuali senza compromettere le procedure DevOps. Usare Image Builder per macchine virtuali di Azure e Raccolta di calcolo di Azure per ridurre al minimo i rischi derivanti dalle immagini di sistema.

Architettura

La soluzione è costituita da due processi:

  • Il processo di pubblicazione dell'immagine Golden
  • Processo di rilevamento della conformità della macchina virtuale

Diagramma dell'architettura che mostra come la soluzione gestisce le immagini Azure Marketplace. I passaggi illustrati includono personalizzazione, rilevamento, test e pubblicazione.

Scaricare un file di Visio di questa architettura.

Flusso di dati

Il processo di pubblicazione dell'immagine Golden viene eseguito ogni mese e prevede i passaggi seguenti:

  1. Il processo acquisisce un'immagine di base da Azure Marketplace.
  2. Image Builder per macchine virtuali di Azure personalizza l'immagine.
  3. Il processo di assegnazione di contrassegni alle immagini consente di tenere traccia delle informazioni sulla versione dell'immagine, ad esempio la data di origine e di pubblicazione.
  4. I test automatizzati convalidano l'immagine.
  5. Se l'immagine non supera i test, torna al passaggio di personalizzazione per le correzioni.
  6. Il processo pubblica l'immagine finalizzata.
  7. Raccolta di calcolo rende disponibile l'immagine ai team di DevOps.

Diagramma dell'architettura che illustra come la soluzione gestisce la conformità assegnando definizioni di criteri, valutando i computer e visualizzando i dati in un dashboard.

Scaricare un file di Visio di questa architettura.

Il processo di monitoraggio della conformità delle VM prevede i passaggi seguenti:

  1. Criteri di Azure assegna le definizioni dei criteri alle macchine virtuali e ne valuta la conformità.
  2. Criteri di Azure pubblica i dati di conformità per le macchine virtuali e per altre risorse di Azure nel dashboard di Criteri di Azure.

Componenti

  • Image Builder per macchine virtuali di Azure è un servizio gestito per la personalizzazione di immagini di sistema. Questo servizio compila e distribuisce le immagini usate dai team di DevOps.

  • Raccolta di calcolo consente di strutturare e organizzare le immagini personalizzate. Archiviandole nei repository, questo servizio fornisce l'accesso controllato alle immagini. Gli utenti possono essere interni o esterni all'organizzazione.

  • Criteri di Azure offre le definizioni dei criteri. È possibile usare queste definizioni per applicare gli standard dell'organizzazione e per valutare la conformità su larga scala. Il dashboard di Criteri di Azure visualizza i risultati delle valutazioni di Criteri di Azure. Questi dati informano l'utente sullo stato di conformità delle risorse.

  • La funzionalità Configurazione automatica del computer di Azure di Criteri di Azure consente di controllare o assegnare dinamicamente le configurazioni ai computer tramite codice. Le configurazioni includono in genere le impostazioni dell'ambiente o del sistema operativo.

Alternativi

  • È possibile usare uno strumento di terze parti per gestire la conformità. Con questo tipo di strumento, tuttavia, in genere è necessario installare un agente nella macchina virtuale di destinazione. Potrebbe anche essere necessario pagare un canone di licenza.

  • È possibile usare estensioni per script personalizzati installare il software nelle macchine virtuali o per configurarle dopo la distribuzione. Ma ogni macchina virtuale o set di scalabilità di macchine virtuali può avere solo un'estensione di script personalizzata. E se si usano estensioni per script personalizzati, si impedisce ai team di DevOps di personalizzare le loro applicazioni.

Dettagli dello scenario

Ogni azienda prevede normative e standard di conformità specifici. Per quanto riguarda la sicurezza, ogni azienda ha una propria propensione al rischio. Gli standard di sicurezza possono differire da un'organizzazione all'altra e da un'area all'altra.

Il fatto di seguire standard diversi può rivelarsi più problematico in ambienti cloud con scalabilità dinamica rispetto ai sistemi locali. Quando i team usano le procedure DevOps, in genere sono presenti meno restrizioni per chi può creare risorse di Azure come le macchine virtuali. Questo fatto complica le problematiche di conformità.

Usando Criteri di Azure e le assegnazioni del controllo degli accessi in base al ruolo, le aziende possono applicare standard alle risorse di Azure. Tuttavia, con le macchine virtuali, questi meccanismi influiscono solo sul piano di controllo o sulla route verso la macchina virtuale. Le immagini di sistema eseguite in una macchina virtuale rappresentano comunque una minaccia per la sicurezza. Alcune aziende impediscono agli sviluppatori di accedere alle macchine virtuali. Questo approccio compromette l'agilità, rendendo difficile seguire procedure DevOps.

Questo articolo presenta una soluzione per la gestione della conformità delle macchine virtuali in esecuzione in Azure. Oltre a monitorare la conformità, la soluzione riduce al minimo i rischi derivanti dalle immagini di sistema eseguite nelle macchine virtuali. Allo stesso tempo, la soluzione è compatibile con le procedure DevOps. I componenti principali includono Image Builder per macchine virtuali di Azure, Raccolta di calcolo di Azure e Criteri di Azure.

Potenziali casi d'uso

Questa soluzione si applica alle organizzazioni con zone di destinazione di Azure che completano queste attività:

  • Distribuzione di immagini Golden ai team di DevOps. Un'immagine Golden è la versione pubblicata di un'immagine del marketplace.
  • Test e convalida delle immagini prima di renderle disponibili ai team di DevOps.
  • Monitoraggio delle immagini usate da ogni team di DevOps.
  • Applicazione degli standard aziendali senza compromettere la produttività.
  • Verifica che i team di DevOps usino le ultime versioni delle immagini.
  • Gestione della conformità dei pet server, che richiedono una manutenzione intensiva, e dei cattle server, che sono facilmente sostituibili.

Approccio

Le sezioni seguenti forniscono una descrizione dettagliata dell'approccio della soluzione.

Identificare pet server e cattle server

Per definire i modelli di servizio, i team di DevOps usano l'analogia degli animali domestici (pet) e del bestiame (cattle). Per monitorare la conformità delle VM, è necessario determinare prima di tutto se si tratta di un pet server o di un cattle server:

  • I pet server richiedono un'attenzione significativa. Non sono facili da sostituire. Il ripristino di un pet server richiede un notevole investimento di tempo e risorse finanziarie. Ad esempio, un pet server potrebbe essere un server che esegue SAP. Oltre al software in esecuzione nel server, anche altre considerazioni possono determinare il modello di servizio. Se la tolleranza di errore è bassa, anche i server di produzione in tempo reale e quasi in tempo reale possono essere pet server.

  • I cattle server fanno parte di un gruppo identico. Possono essere facilmente sostituiti. Ad esempio, le macchine virtuali eseguite in un set di scalabilità di macchine virtuali sono bovini. Se il set include un numero sufficiente di VM, il sistema continua a essere in esecuzione e non è necessario conoscere il nome di ogni macchina virtuale. I server dell'ambiente di test che soddisfano le condizioni seguenti forniscono un altro esempio di cattle server:

    • Si usa una procedura automatizzata per creare i server da zero.
    • Al termine dell'esecuzione dei test, i server vengono dismessi.

Un ambiente può contenere solo pet server o solo cattle server. Viceversa, un set di VM in un ambiente potrebbe essere composto da pet server. Un set diverso di VM nello stesso ambiente potrebbe essere composto da cattle server.

Per gestire la conformità:

  • La conformità dei pet server può essere più problematica da monitorare rispetto a quella dei cattle server. In genere, solo i team di DevOps possono monitorare e mantenere la conformità di ambienti e server di tipo pet. Ma la soluzione di questo articolo aumenta la visibilità dello stato di ogni pet server, semplificando a chiunque nell'organizzazione di monitorare la conformità.
  • Per gli ambienti cattle, aggiornare le macchine virtuali e ricrearle regolarmente da zero. Questi passaggi dovrebbero essere adeguati per la conformità. È possibile allineare questo ciclo di aggiornamento con la cadenza di rilasci regolare dei team di DevOps.

Limitare le immagini

Non consentire ai team di DevOps di usare immagini di VM di Azure Marketplace. Consentire solo immagini di VM pubblicate da Raccolta di calcolo. Questa restrizione è fondamentale per garantire la conformità delle macchine virtuali. È possibile usare criteri personalizzati in Criteri di Azure applicare questa restrizione. Per un esempio, vedere Consentire autori di immagini.

Come parte di questa soluzione, Image Builder per macchine virtuali di Azure usa un'immagine di Azure Marketplace. È essenziale usare l'immagine più recente disponibile in Azure Marketplace. Applicare eventuali personalizzazioni all'immagine. Le immagini di Azure Marketplace vengono aggiornate spesso e ogni immagine include alcune configurazioni predefinite, garantendone la sicurezza per impostazione predefinita.

Personalizzare le immagini

Un'immagine Golden è la versione di un'immagine del marketplace pubblicata in Raccolta di calcolo. Le immagini Golden sono disponibili per l'utilizzo da parte dei team di DevOps. La personalizzazione viene applicata prima della pubblicazione dell'immagine. Le attività di personalizzazione sono univoche per ogni azienda. Le attività comuni includono:

  • Protezione avanzata del sistema operativo.
  • Distribuzione di agenti personalizzati per software di terze parti.
  • Installazione dei certificati radice dell'autorità di certificazione globale (enterprise).

È possibile usare Image Builder per macchine virtuali di Azure per personalizzare le immagini modificando le impostazioni del sistema operativo ed eseguendo script e comandi personalizzati. Image Builder per macchine virtuali di Azure supporta immagini di Windows e di Linux. Per altre informazioni sulla personalizzazione delle immagini, vedere Controlli di conformità alle normative di Criteri di Azure per Macchine virtuali di Azure.

Tenere traccia dei contrassegni delle immagini

L'assegnazione di contrassegni alle immagini è il processo che consente di tenere traccia di tutte le informazioni di controllo delle versioni usate da una VM. Queste informazioni sono molto utili durante la risoluzione dei problemi e possono includere:

  • L'origine originale dell'immagine, ad esempio il nome e la versione del server di pubblicazione.
  • La stringa della versione del sistema operativo, necessaria se è presente un aggiornamento sul posto.
  • La versione dell'immagine personalizzata.
  • La data di pubblicazione.

La quantità e il tipo di informazioni di cui si tiene traccia dipendono dal livello di conformità dell'organizzazione.

Per l'assegnazione di contrassegni alle immagini nelle VM Windows, configurare un registro personalizzato. Aggiungere tutte le informazioni necessarie nel percorso di questo registro sotto forma di coppie chiave-valore. Nelle VM Linux immettere i dati dei contrassegni delle immagini nelle variabili di ambiente o in un file. Inserire il file nella cartella /etc/, in cui non va in conflitto con il lavoro o con le applicazioni degli sviluppatori. Se si preferisce usare Criteri di Azure per tenere traccia dei dati dei contrassegni o per segnalarli, archiviare ogni dato come coppia chiave-valore univoca. Per informazioni su come determinare la versione di un'immagine del marketplace, vedere Come individuare la versione di un'immagine del marketplace.

Convalidare le immagini Golden con test automatizzati

In genere, è consigliabile aggiornare le immagini Golden ogni mese per rimanere al passo con gli aggiornamenti e le modifiche più recenti delle immagini di Azure Marketplace. A questo scopo, usare una procedura di test ricorrenti. Come parte del processo di creazione dell'immagine, usare una pipeline di Azure o un altro flusso di lavoro automatizzato per i test. Configurare la pipeline per distribuire una nuova macchina virtuale per l'esecuzione dei test prima dell'inizio di ogni mese. I test dovranno confermare le immagini prima di pubblicarle per l'utilizzo. Automatizzare i test usando un'apposita soluzione o eseguendo comandi o batch nella macchina virtuale.

Gli scenari di test comuni includono:

  • Convalida del tempo di avvio della macchina virtuale.
  • Conferma di qualsiasi personalizzazione dell'immagine, ad esempio le impostazioni di configurazione del sistema operativo o le distribuzioni di agenti.

Un test non superato dovrebbe interrompere il processo. Ripetere il test dopo aver risolto la causa radice del problema. Se i test vengono eseguiti senza problemi, l'automazione del processo di test riduce il lavoro richiesto per mantenere uno stato aggiornato.

Pubblicare le immagini Golden

Pubblicare le immagini finali in Raccolta di calcolo come immagine gestita o come disco rigido virtuale (VHD) che i team di DevOps possono usare. Contrassegnare le immagini precedenti come obsolete. Se non è stata impostata una data di fine vita per una versione dell'immagine in Raccolta di calcolo, è preferibile sospendere l'immagine meno recente. Questa decisione dipende dai criteri aziendali.

Per informazioni sui limiti applicabili quando si usa Raccolta di calcolo, vedere Archiviare e condividere immagini in Raccolta di calcolo di Azure.

Un'altra procedura consigliata consiste nel pubblicare le immagini più recenti in aree diverse. Con Raccolta di calcolo, è possibile gestire il ciclo di vita e la replica delle immagini in aree di Azure diverse.

Per altre informazioni su Raccolta di calcolo, vedere Archiviare e condividere immagini in Raccolta di calcolo di Azure.

Aggiornare le immagini Golden

Quando un'immagine viene usata per un'applicazione, può essere difficile aggiornare l'immagine del sistema operativo sottostante con modifiche recenti di conformità. Requisiti aziendali rigorosi possono complicare il processo di aggiornamento della macchina virtuale sottostante. L'aggiornamento è complesso anche quando la macchina virtuale è fondamentale per l'azienda.

Poiché i cattle server sono sostituibili, è possibile coordinarsi con i team di DevOps per aggiornarli in una finestra di manutenzione pianificata come attività regolare.

I pet server sono più difficili da aggiornare. La sospensione di un'immagine può mettere a rischio le applicazioni. Negli scenari scale-out, Azure non è in grado di trovare le rispettive immagini, generando errori.

Per l'aggiornamento dei pet server, considerare queste linee guida:

Migliorare la visibilità

In genere, è consigliabile usare Criteri di Azure per gestire qualsiasi attività di conformità del piano di controllo. È possibile usare Criteri di Azure anche per:

  • Monitorare la conformità delle VM.
  • Installare gli agenti di Azure.
  • Acquisire i log di diagnostica.
  • Migliorare la visibilità della conformità delle VM.

Usare la funzionalità Configurazione computer di gestione automatica di Azure di Criteri di Azure per controllare le modifiche di configurazione apportate durante la personalizzazione dell'immagine. Quando si verifica una deriva, il dashboard di Criteri di Azure elenca la macchina virtuale interessata come non conforme. Criteri di Azure può usare le informazioni dei contrassegni delle immagini per verificare se sono in uso immagini o sistemi operativi obsoleti.

Controllare i pet server per ogni applicazione. Usando Criteri di Azure con un effetto di controllo, è possibile migliorare la visibilità di questi server. Modificare il processo di controllo in base alla propensione al rischio dell'azienda e ai processi interni di gestione dei rischi.

Ogni tea di DevOps può tenere traccia dei livelli di conformità delle applicazioni nel dashboard di Criteri di Azure e intraprendere le azioni correttive appropriate. Quando si assegnano questi criteri a un gruppo di gestione o a una sottoscrizione, fornire nella descrizione dell'assegnazione un URL che punta a un wiki a livello aziendale. È anche possibile usare un URL breve come aka.ms/policy-21. Nel wiki elencare i passaggi che i team di DevOps dovrebbero eseguire per rendere conformi le loro VM.

I responsabili dei rischi IT e i responsabili della sicurezza possono anche usare il dashboard di Criteri di Azure per gestire i rischi dell'azienda in base alla relativa propensione al rischio.

Usando la funzionalità di configurazione del computer di gestione automatica di Azure di Criteri di Azure con opzioni di correzione, è possibile applicare automaticamente le azioni correttive. Tuttavia, se le VM vengono esaminate spesso o se si apportano modifiche a una VM usata per applicazioni critiche, possono verificarsi riduzioni delle prestazioni. Pianificare con attenzione le azioni correttive per i carichi di lavoro di produzione. Assegnare a un team di DevOps la proprietà della conformità delle applicazioni in tutti gli ambienti. Questo approccio è essenziale per gli ambienti e i server di tipo pet, che in genere sono componenti di Azure a lungo termine.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.

Scalabilità

È possibile configurare il numero di repliche di ogni immagine archiviate in Raccolta di calcolo. Un numero più elevato di repliche riduce al minimo il rischio di limitazioni quando si effettua il provisioning di più macchine virtuali contemporaneamente. Per indicazioni generali sul ridimensionamento e sulla configurazione di un numero appropriato di repliche, vedere Ridimensionamento per Raccolta di calcolo di Azure.

Resilienza

Questa soluzione usa componenti gestiti che sono automaticamente resilienti a livello di area. Per indicazioni generali sulla progettazione di soluzioni resilienti, vedere Progettazione di applicazioni resilienti per Azure.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

A meno che non si usi un servizio di terze parti, ad esempio Ansible o Terraform, questo approccio è quasi gratuito. Potrebbero applicarsi costi per l'archiviazione e per il traffico in uscita. Altri possibili addebiti riguardano i componenti seguenti:

  • Criteri di Azure e configurazione del computer di gestione automatica di Azure sono gratuiti per le risorse di Azure. Se l'azienda usa un approccio ibrido, sono previsti costi aggiuntivi per le risorse di Azure Arc.

  • Durante il periodo di anteprima pubblica, Image Builder per macchine virtuali di Azure usa un tipo di istanza di calcolo singola con una vCPU e 3,5 GB di RAM. Potrebbero applicarsi costi per l'archiviazione e il trasferimento dei dati.

  • Raccolta di calcolo non prevede addebiti, con queste eccezioni:

    • Il costo dell'archiviazione delle repliche.
    • Gli addebiti per il traffico in uscita della rete per la replica delle immagini.

Autori di contributi

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai collaboratori seguenti.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi