Archivi categoria: Azure Governance

La nuova soluzione per gestire e governare gli aggiornamenti dei sistemi

Le comuni pratiche in materia di sicurezza informatica prevedono, tra i molteplici accorgimenti, l’applicazione tempestiva degli aggiornamenti software. Infatti, questa attività risulta di fondamentale importanza anche per eliminare le vulnerabilità che permettono l’attuazione di specifici attacchi informatici sui sistemi aziendali. Per facilitare l’applicazione delle patch, relative al sistema operativo, alle macchine della propria infrastruttura, Microsoft ha recentemente annunciato la disponibilità di una nuova soluzione denominata “Update management center”. In questo articolo vengono riportate le caratteristiche e le peculiarità di questa soluzione che aiuta a semplificare la gestione degli aggiornamenti e a raggiungere la conformità per quanto concerne questi aspetti legati alla sicurezza.

Cosa consente di fare questa soluzione?

Update management center è la nuova soluzione che aiuta a gestire e a governare centralmente gli aggiornamenti di tutte le macchine presenti nella propria infrastruttura. Infatti, mediante questa soluzione risulta possibile:

  • Controllare la conformità degli aggiornamenti per l’intero parco macchine.
  • Distribuire istantaneamente aggiornamenti critici per proteggere i propri sistemi oppure pianificare l’installazione all’interno di una finestra di manutenzione definita.
  • Sfruttare le differenti opzioni di applicazione delle patch, come Automatic VM guest patching in Azure, hot patching, e le pianificazioni delle manutenzioni definite dal cliente.

Ad oggi, Update management center è in grado di gestire e governare gli aggiornamenti su:

  • Sistemi operativi Windows e Linux.
  • Macchine che risiedono in Azure, in locale e su altre piattaforme cloud, grazie ad Azure Arc.

Il diagramma seguente illustra come Update management center effettua la valutazione e l’applicazione degli aggiornamenti su tutti i sistemi Azure e sui server abilitati per Arc, sia Windows sia Linux.

Figura 1 – Panoramica di Update management center

Update Management Center si basa su una nuova Azure extension progettata per fornire tutte le funzionalità necessarie per interagire con il sistema operativo per quanto riguarda la valutazione e l’applicazione degli aggiornamenti. Questa extension viene installata automaticamente all’avvio di qualsiasi operazione di Update Management Center. La distribuzione dell’extension è supportata sulle macchine virtuali di Azure oppure sui server abilitati per Arc e viene installata e gestita utilizzando:

  • L’agente Windows oppure l’agente Linux per le macchine virtuali di Azure.
  • L’agente Azure Arc per computer o server fisici non Azure (sia Linux, sia Windows).

L’installazione e la configurazione dell’extension viene gestita dalla soluzione e non è necessario alcun intervento manuale, purché gli agenti delle macchine virtuali di Azure o gli agenti per Azure Arc siano funzionanti. L’extension dell’Update management center esegue il codice in locale sul computer per interagire con il sistema operativo e consente di:

  • Recuperare le informazioni di valutazione sullo stato degli aggiornamenti di sistema, specificati dall’agente di Windows Update oppure dal Linux package manager*.
  • Avviare il download e l’installazione degli aggiornamenti approvati dal client Windows Update oppure dal Linux package manager.
  • Ottenere tutte le informazioni sui risultati dell’installazione degli aggiornamenti, le quali vengono riportate nell’Update management center dall’extension e sono disponibili per essere analizzate tramite Azure Resource Graph. La visualizzazione dei dati delle valutazioni è possibile consultarla per gli ultimi sette giorni ed i risultati riguardanti l’installazione degli aggiornamenti è disponibile per gli ultimi trenta giorni.

* Le macchine erogano le segnalazioni sugli aggiornamenti in base all’origine con cui sono configurate per la sincronizzazione. Windows Update Agent (WUA) su macchine Windows può essere configurato per far riferimento a Windows Server Update Services (WSUS) oppure a Microsoft Update. Le macchine Linux possono essere configurate per far riferimento a un repository di pacchetti YUM o APT locale oppure pubblico.

Benefici della soluzione

Update management center funziona senza la necessità di fare attività di onboarding, in quanto è una soluzione che si basa nativamente sulla piattaforma Azure Compute e su Azure Arc-enabled servers. Questa soluzione prenderà presto il posto di Update Management di Azure Automation, rimuovendo qualsiasi dipendenza da Azure Automation e da Log Analytics.

Nei paragrafi seguenti vengono sintetizzati i principali punti di forza della nuova soluzione.

Visibilità centralizzata degli aggiornamenti

Grazie a questa soluzione è possibile consultare in modo centralizzato, direttamente dal portale Azure, lo stato di compliance rispetto agli aggiornamenti richiesti e distribuiti sui vari sistemi.

Integrazione nativa e zero onboarding

Trattandosi di una soluzione creata come funzionalità nativa della piattaforma Azure, non è presente nessuna dipendenza da Log Analytics e da Azure Automation. Inoltre, la soluzione supporta una totale integrazione con le Azure Policy.

Integrazione con i ruoli e le identità di Azure

La soluzione consente di ottenere un controllo di accesso granulare a livello di risorsa. Il tutto è basato su Azure Resource Manager e quindi consente l’utilizzo di RBAC e dei ruoli basati su ARM in Azure.

Elevata flessibilità nella gestione degli aggiornamenti

La possibilità di controllare automaticamente gli aggiornamenti mancanti oppure su richiesta, così come la capacità di agire installando immediatamente gli aggiornamenti oppure di pianificarli per una data successiva sono elementi che garantiscono una elevata flessibilità. Inoltre, è consentito mantenere aggiornati i sistemi adottando nuove tecniche, come ad esempio l’automatic VM guest patching in Azure e l’hotpatching.

Integrazione con altre soluzioni

In questo contesto è opportuno considerare che Microsoft offre, oltre a questa soluzione, anche altre funzionalità per gestire gli aggiornamenti per le macchine virtuali di Azure.  Queste funzionalità è necessario considerarle come parte integrante della propria strategia generale per la gestione degli aggiornamenti. Tra le varie funzionalità troviamo:

  • Automatic OS image upgrade
  • Automatic VM guest patching
  • Automatic extension upgrade
  • Hotpatch
  • Maintenance control
  • Scheduled events

Per approfondire tutte queste soluzioni riportate è possibile consultare la documentazione ufficiale Microsoft.

Conclusioni

Questa nuova funzionalità, totalmente integrata nella piattaforma Azure ed in grado di sfruttare le potenzialità di Azure Arc permette di mantenere aggiornati tutti i sistemi della propria infrastruttura in modo semplice, diretto e con un effort amministrativo molto ridotto. Inoltre, garantisce una visibilità totale sulla compliance degli update sia per i sistemi Windows sia per i sistemi Linux, elemento fondamentale per aumentare la security posture della propria infrastruttura.

Principi e tecniche per governare ed ottimizzare i costi di Azure

Quelle che sono le caratteristiche principali ed i potenziali punti di forza del cloud possono in alcune circostanze nascondere delle insidie se non governate a dovere. La gestione dei costi rientra tra le discipline fondamentali in ambito cloud governance. In questo articolo vengono riepilogati i principi e le tecniche che è possibile adottare per gestire al meglio e per ridurre al minimo i costi da sostenere per le risorse create in ambiente Azure.

Il processo di ottimizzazione dei costi cloud è sicuramente un tema molto sentito da diversi clienti al punto che, per il sesto anno consecutivo, risulta essere la principale iniziativa cloud in base al rapporto di Flexera:

Figura 1 – Iniziative cloud top per l’anno 2022

Principi per gestire al meglio i costi

Per gestire al meglio i costi di Azure è importante tenere in considerazione i principi riportati nei paragrafi seguenti.

Progettazione

Solamente grazie ad un processo di progettazione strutturato, che prevede una attenta analisi dei requisiti aziendali, si è nelle condizioni di personalizzare l’utilizzo delle soluzioni in ambiente cloud. Risulta pertanto importante definire l’infrastruttura da implementare e il modo in cui questa viene utilizzata, il tutto tramite un processo di progettazione finalizzato a massimizzare l’efficienza delle risorse dislocate in ambiente Azure.

Visibilità

Dotarsi di strumenti che permettono di avere una visibilità globale e che consentono di ricevere notifiche in merito ai costi di Azure è un aspetto importante da contemplare.

Responsabilità

Una buona pratica è attribuire i costi delle risorse cloud, all’interno della propria organizzazione aziendale, per assicurarsi che le persone responsabili siano consapevoli delle spese imputabili al loro gruppo di lavoro. Questo consente di comprendere appieno le spese di Azure dell’organizzazione. Per farlo è opportuno organizzare le risorse Azure per massimizzare la comprensione in merito all’attribuzione dei costi.

Ottimizzazione

Tramite processi di revisione periodica è opportuno agire sulle risorse Azure con l’obiettivo di ridurre la spesa qualora possibile. Grazie al set di informazioni a disposizione è possibile individuare facilmente le risorse sottoutilizzate, rimuovere gli sprechi e massimizzare le opportunità di risparmio sui costi.

Iterazione

Il personale IT è opportuno che sia coinvolto in modo continuativo nei processi iterativi di ottimizzazione dei costi delle risorse Azure, in quanto risulta essere un principio chiave per un processo responsabile di governance dell’ambiente cloud.

Tecniche per ottimizzare i costi

Indipendentemente dagli strumenti e dalle soluzioni utilizzate, per ottimizzare i costi di Azure è possibile adottare le seguenti politiche:

  • Spegnere le risorse inutilizzate dal momento che il costo dei vari servizi Azure è calcolato sulla base dell’utilizzo delle risorse. Per le risorse che non necessitano di una esecuzione continua e che permettono, senza perdita di configurazioni o dati, lo spegnimento oppure la sospensione, è possibile adottare una automazione che, basandosi su uno scheduling predefinito, permetta di ottimizzare l’uso e di conseguenza i costi delle stesse.
  • Dimensionare in modo opportuno le risorse consolidando i carichi di lavoro e intervenendo sulle risorse sottoutilizzate.
  • Per le risorse in ambiente Azure che ne viene fatto un uso continuativo è possibile valutare l’attivazione delle Reservations. Le Azure Reservation consentono di ottenere una riduzione dei costi fino al 72% rispetto al prezzo pay-as-you-go, semplicemente impegnandosi nel pagamento, per uno oppure tre anni, per l’utilizzo delle risorse Azure. Il pagamento può avvenire in anticipo oppure su base mensile, senza costi aggiuntivi. L’acquisto di queste reservation può essere fatto direttamente dal portale Azure ed è contemplato per i clienti che dispongono delle seguenti tipologie di subscription: Enterprise agreement, Pay-As-You-Go e Cloud Solution Provider (CSP).  Le Azure Reserved Instances non solo permettono di ottenere un beneficio importante in termini di costi, ma garantiscono anche di riservare risorse computazionali per i propri workloads. Si potrebbe pensare che le risorse in Azure siano pressoché infinite, ma in realtà non è così. Tendenzialmente si ha sempre la possibilità di attingere a nuove risorse, ma in situazioni speciali (vedi ad esempio nel periodo iniziale del COVID-19) queste potrebbero scarseggiare e, solo a fronte del fatto di aver acquistato risorse in questa modalità, si ha la certezza che vengano riservate le risorse necessarie per l’esecuzione dei propri workload.
  • Per ridurre i costi Azure è inoltre possibile valutare l’adozione dell’Azure Hybrid Benefit. Il risparmio è dato dal fatto che Microsoft consente di pagare solamente i costi di infrastruttura Azure, mentre il licensing per Windows Server oppure per SQL Server viene coperto da un contratto di Software Assurance o a subscription esistente. Questo benefit è applicabile sia alla versione Standard sia alla versione Datacenter di Windows Server .

Figura 2 – Struttura dei costi per una VM Windows

L’Azure Hybrid Benefit può essere utilizzato anche per Azure SQL Database, per i SQL Server installati a bordo di macchine virtuali Azure e per SQL Managed Instance. Questi vantaggi facilitano la migrazione verso soluzioni nel cloud (180 giorni di diritto di doppio utilizzo) e aiutano a massimizzare gli investimenti già effettuati in termini di licenze SQL Server. Per maggiori informazioni su come è possibile utilizzare l’Azure Hybrid Benefit per SQL Server è possibile consultare le FAQ di questo documento. Inoltre, questo vantaggio si applica anche alle subscription di RedHat e SUSE Linux.

L’Azure Hybrid Benefit può essere utilizzato in concomitanza con le Azure Reserved VM Instance, consentendo di avere risparmi complessivi che possono raggiungere l’80% (nel caso di acquisto di Azure Reserved Instance per 3 anni).

Figura 3 – Percentuali di possibili risparmi adottando RIs ed Azure Hybrid Benefit

  • Valutare l’adozione di nuove tecnologie serverless e applicare ottimizzazioni nelle architetture andando a selezionare il servizio Azure più adeguato per l’applicazione specifica.
  • Allocare e e de-allocare dinamicamente le risorse per soddisfare le esigenze in termini di prestazioni. In questo caso si parla di “autoscaling” che è il processo di allocazione dinamica delle risorse per soddisfare i requisiti in termini di prestazioni. Con l’aumento del volume di lavoro, un’applicazione potrebbe richiedere risorse aggiuntive per mantenere i livelli di prestazioni desiderati e soddisfare gli SLA (Service Level Agreement). Dal momento in cui la domanda diminuisce e le risorse aggiuntive non sono più necessarie, possono essere deallocate per ridurre al minimo i costi. Il processo di autoscaling sfrutta l’elasticità degli ambienti ospitati nel cloud riducendo al contempo il sovraccarico di gestione.
  • Per gli ambienti di test e sviluppo è possibile valutare l’adozione delle subscription di DevTest, che permettono di ottenere degli sconti considerevoli sulle tariffe di Azure. Queste subscription è possibile attivarle nell’ambito di un contratto di Enterprise Agreement.

Conclusioni

L’utilizzo di un approccio metodologico alla gestione dei costi del cloud e l’adozione delle giuste tecniche sono aspetti fondamentali che consentono di affrontare al meglio la sfida del governo dei costi. Prendendo in considerazione i principi e le tecniche riportate in in questo articolo, si ha la possibilità di ottimizzare le spese e di massimizzare l’investimento nel cloud.

Come affrontare la migrazione del datacenter in Azure

L’adozione di soluzioni e servizi nel cloud pubblico è in rapido e costante aumento e questo aumento è dato principalmente dal fatto che molte organizzazioni si sono rese conto che spostare workload esistenti in Azure può portare vantaggi significativi. Tra questi troviamo la capacità di distribuire rapidamente le applicazioni consentendo di beneficiare di un’infrastruttura presente su scala globale, la riduzione dei requisiti e dei costi di manutenzione e l’ottimizzazione delle prestazioni. In questo articolo saranno esaminati i principali aspetti da prendere in considerazione al fine di adottare un approccio strategico per quanto riguarda la migrazione della propria infrastruttura IT in Azure e come, grazie proprio a questo approccio, sia possibile trarre beneficio di tutti i vantaggi del cloud pubblico di Microsoft.

Principali fattori scatenanti per la migrazione

Tra i principali aspetti che portano i clienti ad affrontare una migrazione dei propri workload verso soluzioni cloud troviamo:

  • le scadenze dei contratti dei data center in uso;
  • la necessità di effettuare velocemente integrazioni a fronte di nuove acquisizioni;
  • l’esigenza urgente di capacità e di risorse;
  • il bisogno di mantenere aggiornato il software e l’hardware in utilizzo;
  • la volontà di rispondere efficacemente a potenziali minacce alla sicurezza;
  • le esigenze riguardanti la conformità (ad es. GDPR);
  • la necessità di innovare le proprie applicazioni e di renderle disponibili più velocemente;
  • la fine del fine del supporto software per determinati prodotti e la necessità di ottenere gratuitamente aggiornamenti di sicurezza estesi, sia per Windows Server 2008/R2, sia per Windows Server 2012/R2, oltre alle versioni corrispondenti di SQL Server.

Figura 1 – Principali fattori scatenanti per la migrazione

Ritrovarsi in almeno uno di questi fattori scatenanti che potrebbero avviare un processo di migrazione è molto comune. Per intraprendere nel migliore dei modi questa migrazione è necessario tenere in considerazione quanto riportato nei paragrafi successivi.

Il percorso di adozione di soluzioni cloud

Nel percorso di adozione di soluzioni cloud definito nel Microsoft Cloud Adoption Framework per Azure emergono sei azioni principali che è opportuno prendere in considerazione:

  • Strategy definition: definizione della “business justification” e dei risultati attesi.
  • Plan: allineamento del piano di adozione del cloud ai risultati aziendali, tramite:
    • Inventario del patrimonio digitale: catalogazione dei workload, applicazioni, origini dati, macchine virtuali e altre risorse IT e valutazioni per determinare il modo migliore per ospitarli nel cloud.
    • Creazione di un piano di adozione del cloud assegnando la priorità ai workload in base al loro impatto aziendale e alla complessità tecnica.
    • Definizione delle competenze e delle esigenze di supporto, per garantire che l’azienda sia preparata per il cambiamento e per le nuove tecnologie.
  • Ready: preparazione dell’ambiente cloud.
  • Adopt: implementazione delle modifiche desiderate nei processi IT e aziendali. L’adozione può avvenire tramite:
    • Migrazione: si concentra sullo spostamento delle applicazioni locali esistenti nel cloud in base a un processo incrementale.
    • Innovazione: si concentra sulla modernizzazione del patrimonio digitale per guidare l’innovazione aziendale e di prodotto. I moderni approcci all’implementazione, alle operations e alla governance dell’infrastruttura consentono di colmare rapidamente il divario tra lo sviluppo e le operations.
  • Govern: valutazione ed implementazione delle best practices in ambito governance.
  • Manage: implementazione delle linee operative e delle best practice.

Azure Landing Zone

Indipendentemente dalla strategia di migrazione che si decide di adottare è opportuno predisporre la Landing Zone, che rappresenta, nel percorso di adozione del cloud, la destinazione in ambiente Azure. Si tratta di un’architettura con scalabilità orizzontale progettata per consentire al cliente di gestire ambienti cloud funzionali, mantenendo al tempo stesso le procedure consigliate per la sicurezza e la governance. L’architettura della Landing Zone deve essere definita in base ai requisiti aziendali e ai requisiti tecnici necessari.

Figura 2 – Esempio concettuale di una Azure landing zone

Sono disponibili diverse opzioni per implementare la Landing Zone, grazie alle quali sarà possibile soddisfare le esigenze di deployment ed operatività del portfolio cloud.

Un approccio strutturato e metodologico e le strategie di migrazione

Diversi sono i percorsi di adozione delle soluzioni in Azure. Per affrontare nel migliore dei modi ciascuno di questi percorsi è consigliato elaborare a priori un business case completo ed un piano di progetto, contenente le informazioni sui vantaggi e sui costi (TCO) dello spostamento dei workload sul cloud Microsoft Azure, nonché raccomandazioni su come ottimizzare il modello di utilizzo dei servizi Microsoft Azure.

Figura 3 – Percorsi di adozione delle soluzioni cloud

Basandosi sulla strategia cloud dell’azienda e sugli obiettivi generali di business, è opportuno esaminare la distribuzione e l’utilizzo dei workload in uso e valutare il relativo stato “cloud-ready” per determinare le opzioni migliori e le modalità più opportune (lift&shift, refactor, rearchitect e rebuild) in ottica di consolidamento e migrazione ai servizi cloud di Microsoft Azure.

Figura 4 – Possibili strategie di migrazione

* Queste strategie di migrazione sono riportate da Gartner research. Gartner definisce anche una quinta strategia chiamata " Replace". 

Nei paragrafi seguenti vengono riportate le principali strategie di migrazioni che possono risultare utili.

Rehost application (i.e., lift & shift)

Si tratta di ridistribuire un’applicazione esistente su una piattaforma cloud senza modificarne il codice. L’applicazione viene migrata “così com’è”, il che fornisce vantaggi cloud di base senza dover affrontare un rischio elevato e senza dover sostenere i costi necessari per apportare modifiche al codice applicativo.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • Si ha la necessità di spostare rapidamente le applicazioni da on-premise al cloud
  • Quando l’applicazione è necessaria, ma l’evoluzione delle sue capacità non risulta una priorità aziendale
  • Per applicazioni che sono già state progettate per sfruttare la scalabilità di Azure IaaS
  • In presenza di requisiti specifici dell’applicazione oppure della base dati, che possono essere soddisfatti solo utilizzando delle macchine virtuali IaaS in ambiente Azure.
Esempio

Spostamento di un’applicazione line of business a bordo di macchine virtuali che risiedono in ambiente Azure.

Refactor application (i.e., repackaging)

In questa strategia di migrazione sono previste modifiche minimali del codice dell’applicazione oppure modifiche alle configurazioni, necessarie per ottimizzare l’applicazione per Azure PaaS e sfruttare al meglio il cloud.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • Si vuole sfruttare una base di codice esistente
  • La portabilità del codice è un elemento importante
  • L’applicazione può essere facilmente pacchettizzata per essere eseguita in ambiente Azure
  • L’applicazione deve essere più scalabile e distribuibile in modo veloce
  • Si vuole promuovere l’agilità aziendale mediante un’innovazione continua (DevOps)
Esempio

Si effettua il refactoring di una applicazione esistente adottando servizi come App Service oppure Container Services. Inoltre, si effettua il refactoring di SQL Server in Azure SQL Database.

Rearchitect application

La tecnica di ri-progettazione consiste nel modificare oppure estendere l’architettura e la base di codice dell’applicazione esistente, andandola ad ottimizzare per la piattaforma cloud e garantendo così una migliore scalabilità.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • L’applicazione necessita di importanti revisioni per incorporare nuove funzionalità oppure per lavorare in modo più efficace su una piattaforma cloud
  • Si vogliono sfruttare gli investimenti fatti nelle applicazioni esistenti
  • Si ha la necessità di ridurre al minimo la gestione delle VMs nel cloud
  • Si intende soddisfare i requisiti di scalabilità in modo conveniente
  • Si vuole promuovere l’agilità aziendale mediante un’innovazione continua (DevOps)
Esempio

Scomposizione di un’applicazione monolitica in microservizi in ambiente Azure che interagiscono tra loro e sono facilmente scalabili.

Rebuild application

Il rebuild dell’applicazione da zero prevede l’utilizzo di tecnologie cloud-native su Azure PaaS.

Questa tecnica di migrazione viene solitamente utilizzata quando:

  • Si ha la necessita di uno sviluppo rapido e l’applicazione esistente è troppo limitante in termini di funzionalità e durata
  • Si vogliono sfruttare le nuove innovazioni presenti nel cloud come serverless, Intelligenza artificiale (AI) e IoT
  • Si dispone delle competenze necessarie per creare nuove applicazioni cloud-native
  • Si vuole promuovere l’agilità aziendale mediante un’innovazione continua (DevOps)
Esempio

Creazione di applicazioni green field con tecnologie cloud native innovative, come Azure Functions, Logic Apps, Cognitive Service, Azure Cosmos DB ed altro ancora.

Azure Cloud Governance

Nell’adozione di successo dei servizi nel cloud pubblico, oltre ad essere richiesto un approccio strutturato e metodologico, diventa fondamentale adottare una precisa strategia per migrare non solo le applicazioni, ma anche le pratiche di governance e di gestione, adeguandole in modo opportuno.

Per questa ragione diventa fondamentale mettere in atto un processo di Cloud Technical Governance attraverso il quale è possibile garantire al Cliente un utilizzo efficace ed efficiente delle risorse IT in ambiente Microsoft Azure, al fine di poter raggiungere i propri obiettivi. Per farlo è necessario applicare controlli e misurazioni utili ad aiutare il cliente a mitigare i rischi e creare dei confini. Le politiche di governance, all’interno dell’ambiente del Cliente, fungeranno anche da sistema di allarme preventivo per rilevare potenziali problemi.

Conclusioni

Il processo di trasformazione digitale che interessa le realtà aziendali spesso prevede la migrazione dei workload ospitati presso i propri datacenter verso il cloud per ottenere migliori risultati per quanto concerne la governance, la sicurezza e l’efficienza dei costi. L’innovazione data dalla migrazione verso il cloud diventa frequentemente una priorità aziendale, per questo motivo è opportuno adottare un proprio approccio strutturato, per affrontare vari scenari di migrazione, che consente di ridurre la complessità ed i costi.

Azure Governance: come controllare le configurazioni dei sistemi in ambienti ibridi e multicloud

Diverse sono le realtà che stanno investendo in tecnologie ibride e multicloud per ottenere una elevata flessibilità, che consente di innovare e di soddisfare le esigenze aziendali in continua evoluzione. In questi scenari, ai clienti si presenta la sfida di utilizzare in modo efficiente le risorse IT, al fine di raggiungere al meglio i propri obiettivi di business, attuando un processo di IT governance strutturato. Questo risultato è possibile raggiungerlo più agilmente se si dispone di soluzioni che, in modo centralizzato, consentono di inventariare, organizzare ed applicare delle policy di controllo sulle proprie risorse IT ovunque si trovino. La soluzione Azure Arc coinvolge diverse tecnologie con l’obiettivo di sostenere scenari ibridi e multicloud, dove i servizi e i principi di gestione di Azure vengono estesi a qualsiasi infrastruttura. In questo articolo si approfondirà come, grazie all’adozione delle Azure Guest Configuration Policy è possibile controllare le configurazioni dei sistemi in esecuzione in Azure, nei datacenter locali oppure presso altri cloud provider.

Il principio alla base di Azure Arc

Il principio che sta alla base di Azure Arc è quello di estendere le pratiche di gestione e di governance di Azure anche ad ambienti differenti e di adottare soluzioni tipicamente cloud, come tecniche DevOps (infrastructure as code), anche per gli ambienti on-premises e multicloud.

Figura 1 – Panoramica di Azure Arc

L’abilitazione dei sistemi ad Azure Arc

L’abilitazione dei server ad Azure Arc permette di gestire i server fisici e le macchine virtuali che risiedono all’esterno di Azure, sulla rete aziendale on-premises oppure presso un altro cloud provider. Questo vale sia per sistemi Windows sia per i sistemi Linux. Questa esperienza di gestione è progettata per fornire coerenza con le metodologie di gestione delle macchine virtuali native di Azure. Connettendo infatti una macchina ad Azure tramite Arc viene considerata a tutti gli effetti come una risorsa Azure. Ogni macchina connessa ha un ID specifico, viene inclusa in un resource group e beneficia dei costrutti standard di Azure come le Azure Policy e l’applicazione dei tag.

Per offrire questa esperienza è richiesta l’installazione dell’agente specifico di Azure Arc su ogni macchina che si prevede di connettere ad Azure (“Azure Connected Machine”). Attualmente sono supportati i seguenti sistemi operativi:

  • Windows Server 2008 R2, Windows Server 2012 R2 oppure superiore (sono compresi i Server Core)
  • Ubuntu 16.04 and 18.04 LTS (x64)
  • CentOS Linux 7 (x64)
  • SUSE Linux Enterprise Server (SLES) 15 (x64)
  • Red Hat Enterprise Linux (RHEL) 7 (x64)
  • Amazon Linux 2 (x64)
  • Oracle Linux 7

L’Azure Arc Connected Machine agent è composto dai seguenti componenti logici:

  • L’Hybrid Instance Metadata service (HIMDS) che gestisce la connessione ad Azure e l’identità di Azure della macchina connessa.
  • Il Guest Configuration agent che fornisce le funzionalità di In-Guest Policy e Guest Configuration.
  • L’Extension Manager agent che gestisce i processi di installazione, disinstallazione ed aggiornamento delle estensioni della macchina.

Figura 2 – Componenti dell’agente Azure Arc

Il Connected Machine agent richiede una comunicazione sicura in uscita verso Azure Arc sulla porta TCP  443.

Questo agente non fornisce altre funzionalità e non sostituisce l’agente di Azure Log Analytics, il quale rimane necessario quando si desidera monitorare in modo proattivo il sistema operativo ed i carichi di lavoro in esecuzione sulla macchina.

Per maggiori informazioni sull’installazione di Azure Arc è possibile consultare questo documento ufficiale Microsoft.

I server abilitati per la soluzione Azure Arc possono beneficiare di diverse funzionalità legate ad Azure Resource Manager come Tags, Policies e RBAC, oltre che ad alcune funzionalità relative ad Azure Management.

Figura 3 – Azure Management per tutte le risorse IT

Guest Configuration Policy di Azure

Le Guest Configuration Policy permettono di controllare le impostazioni all’interno di una macchina, sia per le macchine virtuali in esecuzione in ambiente Azure che per le macchine “Arc Connected”. La convalida viene eseguita dal client e dall’estensione Guest Configuration per quanto riguarda:

  • Configurazione del sistema operativo
  • Configurazione oppure presenza di applicazioni
  • Impostazioni dell’ambiente

Al momento, la maggior parte delle Guest Configuration Policy di Azure permettono solamente di effettuare controlli sulle impostazioni all’interno della macchina, ma non applicano configurazioni. L’eccezione è una policy incorporata di configurazione del Time Zone del sistema operativo per le macchine Windows.

Requisiti

Prima di poter controllare le impostazioni all’interno di una macchina, tramite le Guest Configuration Policy, è necessario:

  • Abilitare un’extension sulla macchina virtuale di Azure, necessaria per scaricare le assegnazioni delle policy assegnate e le corrispondenti configurazioni. Questa extension non è richiesta per macchine “Arc Connected” in quanto è inclusa nell’agente Arc.
  • Fare in modo che la macchina abbia una system-managed identity, utilizzata per il processo di autenticazione durante la lettura e la scrittura nel servizio Guest Configuration.

Funzionamento

Azure fornisce built-in nella piattaforma delle specifiche initiatives e un numero elevato di Guest Configuration Policy, ma è possibile crearne anche delle personalizzate sia in ambiente Windows, sia in ambiente Linux.

L’assegnazione delle Guest Configuration policy funziona allo stesso modo delle Azure Policy standard, quindi è possibile raggrupparle in initiative. Anche per le Guest Configuration Policy sono configurabili dei parametri specifici ed esiste almeno un parametro che consente di includere i server abilitati ad Azure Arc. Nel momento in cui si possiede la definizione della policy desiderata, è possibile assegnarla a una subscription ed eventualmente in modo più circoscritto ad un Resource Group specifico. Si ha inoltre la possibilità di escludere determinate risorse dall’applicazione della policy.

In seguito all’assegnazione è possibile valutare lo stato di compliance nel dettaglio direttamente dal portale Azure.

All’interno della macchina, il Guest Configuration agent utilizza strumenti locali per eseguire l’audit delle configurazioni:

Il Guest Configuration agent verifica la presenza di assegnazioni di policy guest nuove oppure modificate ogni 5 minuti e una volta ricevuta l’assegnazione le impostazioni vengono controllate a intervalli di 15 minuti.

Costo della soluzione

Il costo delle Guest Configuration Policy di Azure si basa sul numero di server registrati al servizio e che hanno una o più configurazioni guest assegnate. Qualsiasi altro tipo di Azure Policy che non si basa sulla configurazione guest viene offerto senza costi aggiuntivi, comprese le estensioni della macchina virtuali per abilitare servizi come Azure Monitor ed Azure Security Center oppure le policy di auto tagging. La fatturazione è ripartita su base oraria e contempla anche le funzionalità di change tracking presenti tramite Azure Automation. Per maggiori dettagli sui costi è possibile consultare la pagina ufficiale Microsoft.

Conclusioni

Gli ambienti IT sono in continua evoluzione e spesso devono erogare applicazioni critiche per il business aziendale basate su differenti tecnologie, attive su infrastrutture eterogenee e che in alcuni casi utilizzano soluzioni erogate presso differenti cloud pubblici. L’adozione di un processo di IT governance strutturato è più semplice anche grazie alle Guest Configuration Policy e alle potenzialità di Azure Arc, che permettono di controllare e sostenere più facilmente ambienti ibridi e multicloud.

Cloud Governance: come controllare i costi del cloud tramite i budget

Nel cloud pubblico la semplicità di delega e il modello di costi legato al consumo espone le aziende ad un rischio di perdita di controllo sugli stessi. Avere sempre una supervisione sulle spese da sostenere per le risorse create in ambiente cloud diventa quindi un aspetto di fondamentale importanza per attuare un processo di governance efficace. La soluzione Azure Cost Management offre un set completo di funzionalità per la gestione dei costi del cloud, tra le quali la possibilità di impostare budget ed avvisi di spesa. In questo articolo viene riportato come utilizzare al meglio i budget per controllare e gestire in modo proattivo i costi dei servizi cloud.

I budget sono delle soglie di spesa che è possibile impostare nella soluzione Azure Cost Management + Billing, in grado di generare delle notifiche quando vengono raggiunte. I dati sui costi e sull’utilizzo delle risorse sono generalmente disponibili entro 20 ore ed i budget vengono valutati rispetto a questi costi ogni 12-14 ore.

La procedura per impostare i budget dal portale Azure prevede i seguenti step.

Figura 1 – Aggiunta di un budget da Cost Management

Figura 2 – Parametri richiesti in fase di creazione del budget

Durante la fase di configurazione del budget è necessario per prima cosa assegnare lo scope. A seconda della tipologia di account Azure è possibile selezionare i seguenti scope:

  • Azure role-based access control (Azure RBAC)
    • Management groups
    • Subscription
  • Enterprise Agreement
    • Billing account
    • Department
    • Enrollment account
  • Individual agreements
    • Billing account
  • Microsoft Customer Agreement
    • Billing account
    • Billing profile
    • Invoice section
    • Customer
  • AWS scopes
    • External account
    • External subscription

Per maggiori informazioni in merito all’utilizzo degli scope è possibile consultare questo documento Microsoft.

Per creare un budget allineato al periodo di fatturazione si ha la possibilità di selezionare un periodo di reset relativo al mese, al trimestre oppure all’anno di fatturazione. Se invece si intende creare un budget allineato al mese di calendario è necessario selezionare un periodo di reset mensile, trimestrale o annuale.

Successivamente, è possibile impostare la data di scadenza a partire dalla quale il budget diventa non più valido e ne viene interrotta la relativa valutazione dei costi.

In base ai campi scelti in fase di definizione del budget, viene mostrato un grafico per fornire un aiuto nell’impostare la soglia di spesa da utilizzare. Di default il budget suggerito si basa sul costo previsto più elevato che si potrebbe sostenere nei periodi futuri, ma l’importo del budget può essere modificato in base alle proprie esigenze.

Dopo aver impostato il budget viene richiesto di configurare i relativi avvisi. I budget richiedono almeno una soglia di costo (% del budget) e un indirizzo e-mail da utilizzare per le notifiche.

Figura 3 – Configurazione degli alert e dell’indirizzo di posta elettronica da utilizzare per le notifiche

Per un singolo budget è possibile includere fino a cinque soglie e cinque indirizzi e-mail. Quando viene raggiunta una soglia di budget, le notifiche e-mail vengono normalmente inviate entro un’ora dalla valutazione.

In fase di creazione oppure di modifica di un budget, ma solo se lo scope definito per lo stesso è una subscription oppure un resource group, è possibile configurarlo per richiamare un Action Group. L’Action Group permette di personalizzare le notifiche in base alle proprie esigenze e può eseguire varie azioni quando viene raggiunta la soglia di budget, tra le quali:

  • Chiamata vocale oppure invio di SMS (per i paesi abilitati)
  • Invio di una mail
  • Chiamata a un webhook
  • Invio di dati verso ITSM
  • Richiamo di una Logic App
  • Invio di una notifica push sulla mobile app di Azure
  • Esecuzione di un runbook di Azure Automation

Figura 4 – Associazione di un Action Group al raggiungimento di una soglia

Dopo aver concluso la creazione di un budget è possibile visualizzarlo nella rispettiva sezione.

Figura 5 – Budget creato e relativa percentuale di utilizzo

La visualizzazione del budget rispetto all’andamento della spesa è uno delle prime azioni che generalmente si prende in considerazione in fase di analisi dei costi.

Figura 6 – Visualizzazione del budget nell’analisi dei costi

Al raggiungimento di una determinata soglia impostata in un budget oltre alle notifiche impostate, viene anche generato un alert nel portale Azure.

Figura 7 – Alert generato a fronte del raggiungimento di una determinata soglia

Quando le soglie di budget create vengono superate si attivano le notifiche, ma nessuna delle risorse cloud viene modificata e di conseguenza il consumo non viene interrotto.

Grazie all’ integrazione con Amazon Web Services (AWS) Cost and Usage report (CUR) è possibile monitorare e controllare i costi di AWS in Azure Cost Management e definire dei budget anche per le risorse AWS.

Costo della soluzione

Azure Cost Management è possibile utilizzarlo gratuitamente, in tutte le sue funzionalità, per l’ambiente Azure. Per quanto riguarda la gestione dei costi di AWS è previsto, al rilascio definitivo, un addebito pari all’1% della spesa totale gestita per AWS. Per maggiori dettagli in merito al costo della soluzione è possibile consultare la pagina del pricing di Cost Management.

Conclusioni

Il controllo dei costi è una componente fondamentale per massimizzare il valore dell’investimento nel cloud. Grazie all’utilizzo dei budget è possibile attivare facilmente un efficace meccanismo per controllare e gestire in modo proattivo i costi dei servizi cloud dislocati sia in Microsoft Azure che in Amazon Web Services (AWS).

Azure Arc: nuove funzionalità per gestire sistemi in ambienti ibridi

La complessità degli ambienti IT è in continua espansione al punto da avere realtà con applicazioni basate su diverse tecnologie, attive su infrastrutture eterogenee e che magari utilizzano soluzioni in differenti cloud pubblici. L’esigenza molto sentita dai clienti è di poter adottare una soluzione che, in modo centralizzato, consenta di inventariare, organizzare e applicare delle policy di controllo sulle proprie risorse IT ovunque si trovino. La risposta di Microsoft a questa esigenza è Azure Arc, la soluzione che coinvolge diverse tecnologie con l’obiettivo di sviluppare nuovi scenari ibridi, dove i servizi e i principi di gestione di Azure vengono estesi a qualsiasi infrastruttura. In questo articolo vengono riportate le nuove funzionalità che sono state recentemente introdotte per estendere la capacità di gestione degli ambienti ibridi.

I server abilitati per la soluzione Azure Arc possono già beneficiare di diverse funzionalità legate ad Azure Resource Manager come Tags, Policies e RBAC, oltre che ad alcune funzionalità relative ad Azure Management.

Figura 1 – Azure Management per tutte le risorse IT

Grazie al nuovo aggiornamento che è stato recentemente annunciato è possibile utilizzare nuove estensioni, chiamate Azure Arc Extensions, per ampliare le funzionalità ed estendere ulteriormente le pratiche di gestione e di governance di Azure anche ad ambienti differenti. Questo consente di adottare sempre più soluzioni tipicamente cloud, come tecniche DevOps (infrastructure as code), anche per gli ambienti on-premises.

Azure Arc Extensions

Le Azure Arc Extensions sono delle applicazioni che consentono di effettuare delle configurazioni e di eseguire dei task di automazione post-deployment. Queste estensioni possono essere eseguite direttamente da riga di comando Azure, da PowerShell oppure dal portale di Azure.

Al momento sono disponibili le seguenti Azure Arc Extensions che possono essere distribuite sui server abilitati per Azure Arc.

Custom Script Extension per sistemi Windows e Linux

Grazie a questa estensione è possibile eseguire dei task post provisioning della macchina per effettuare delle personalizzazioni dell’ambiente. Aggiungendo questa estensione è infatti possibile scaricare degli script personalizzati, ad esempio da Azure Storage, ed eseguirli direttamente sulla macchina.

Figura 2 – Custom Script Extension, per sistemi Windows abilitati per Azure Arc, dal portale Azure

Durante il deployment della Custom Script Extension è possibile aggiungere il file che contiene lo script da eseguire e opzionalmente i relativi parametri. Per i Sistemi Linux si tratta di uno script shell (.sh), mentre per Windows di uno script Powershell (.ps1).

Desired State Configuration extension su sistemi Windows e Ubuntu (DSCForLinux)

Desired State Configuration (DSC) è una piattaforma di gestione che è possibile utilizzare per gestire l’infrastruttura IT e di sviluppo in ottica di “configuration as code”.

DSC per Windows fornisce nuovi cmdlet di Windows PowerShell e risorse che è possibile utilizzare per specificare in modo dichiarativo come si desidera configurare l’ambiente software. Fornisce inoltre uno strumento utile per mantenere e gestire le configurazioni esistenti. Questa extension funziona come l’estensione per le macchine virtuali in Azure, ma è progettata per essere distribuita sui server abilitati per Azure Arc.

Figura 3 – PowerShell Desired State Configuration, per sistemi Windows abilitati per Azure Arc, dal portale Azure

L’estensione DSCForLinux consente di installare l’OMI agent e il DSC agent sui sistemi Ubuntu abilitati per Azure Arc. L’extension DSC permette di effettuare le seguenti azioni:

  • Registrare la VM ad un Azure Automation account per estrarre (pull) delle configurazioni (Register ExtensionAction).
  • Distribuire delle configurazioni MOF (Push ExtensionAction).
  • Applicare la configurazione meta MOF alla VM per configurare un pull server al fine di estrarre la configurazione del nodo (Pull ExtensionAction).
  • Installare moduli DSC personalizzati (Install ExtensionAction).
  • Rimuovere moduli DSC personalizzati (Remove ExtensionAction).

 

OMS Agent for Linux – Microsoft Monitoring Agent

L’installazione di questo agente consente raccogliere i dati di monitor dal sistema operativo guest e dai workload applicativi dei sistemi e di inviarli a un workspace di Log Analytics. Questo agente viene utilizzato da diverse soluzioni di management di Azure, tra le quali Azure Monitor, Azure Security Center, ed Azure Sentinel. Sebbene oggi sia possibile monitorare VMs non di Azure anche senza Azure Arc, l’utilizzo di questa estensione consente di rilevare e gestire automaticamente gli agenti nelle VMs. Una volta integrati, i server abilitati ad Azure Arc si adatteranno perfettamente alle viste esistenti del portale Azure insieme alle macchine virtuali presenti in Azure e agli Azure scale sets.

Dopo aver distribuito l’agente di Azure Arc sui sistemi è possibile installare il Microsoft Monitoring Agent (MMA) usando questa extension, semplicemente aggiungendo l’ID del workspace di Log Analytics e la relativa key.

Figura 4 – Microsoft Monitoring Agent extension per Azure Arc dal portale Azure

Grazie alla disponibilità di queste nuove extension, i server abilitati per Azure Arc dispongono anche di funzionalità come Update Management, Inventory, Change Tracking e monitor.

Update Management

La soluzione di Update Management consente di avere una visibilità complessiva sulla compliance degli update sia per sistemi Windows che Linux. Tramite il pannello di ricerca è possibile identificare velocemente gli update mancati ed è prevista la possibilità di schedulare dei deployment per l’installazione degli update all’interno di una specifica finestra di manutenzione.

Inventory

Questa funzionalità consente di recuperare informazioni di inventario relative a: software installati, files, chiavi Windows Registry, Servizi Windows e Daemons Linux.

Change Tracking

La funzionalità di Change Tracking consente di monitorare le modifiche apportate ai sistemi relativamente a Daemons, File, Registry, Software e Servizi Windows. Tale funzionalità può risultare molto utile per diagnosticare problemi specifici e per abilitare segnalazioni a fronte di cambiamenti non attesi.

Conclusioni

Grazie alla disponibilità di queste nuove extension è possibile usufruire di funzionalità maggiori, in ambito governance e management tipiche di Azure, anche per gli ambienti hybrid cloud. Si tratta di una importante evoluzione di questa soluzione, al momento ancora in preview, che è destinata presto ad arricchirsi ulteriormente con nuove importanti funzionalità.

Azure Monitor: come abilitare il servizio di monitor delle macchine virtuali tramite Azure Policy

In Azure Monitor è stato reso disponibile il servizio che consente di effettuare il monitor delle macchine virtuali, chiamato Azure Monitor for VMs. Questo servizio permette di analizzare i dati di performance dei sistemi ed effettua una mappa che consente di identificare tutte le dipendenze delle macchine virtuali e dei relativi processi. Il metodo consigliato per abilitare questa soluzione per differenti sistemi è tramite l’adozione delle Azure Policy.  In questo articolo viene riportata la procedura da seguire per effettuarne l’attivazione utilizzando questo metodo, riprendendo vari concetti relativi alla governance di Azure.

Caratteristiche principali di Azure Monitor for VMs

Azure Monitor for VMs può essere utilizzato su macchine virtuali Windows e Linux, indipendentemente dall’ambiente in cui esse risiedono (Azure, on-premises oppure presso altri cloud provider) e contempla i seguenti ambiti:

  • Performance: vengono riportati i dati principali di performance, provenienti dal sistema operativo guest. Nella soluzione sono presenti potenti funzionalità di aggregazione dei dati e di filtering che consentono di affrontare la sfida di monitorare le performance per un numero molto elevato di sistemi. In questo modo è possibile monitorare agilmente lo stato di utilizzo delle risorse di tutte le VMs ed individuare facilmente quelle che presentano problematiche di performance.
  • Maps: viene generata una mappa con le interconnessioni presenti tra vari componenti che risiedono su sistemi differenti. Le mappe mostrano come le VMs ed i processi interagiscono tra loro e possono identificare eventuali dipendenze da servizi di terze parti. La soluzione permette anche di controllare eventuali errori di connessione, conteggia le connessioni in tempo reale, i byte di rete inviati e ricevuti dai processi e le latenze riscontrare a livello di servizio.

L’abilitazione tramite Azure Policy

Le Azure Policy permettono di applicare e forzare su larga scala dei criteri di compliance e le relative azioni di remediation. Per abilitare questa funzionalità in modo automatico sulle macchine virtuali presenti nell’ambiente Azure ed ottenere un livello elevato di compliance è consigliato quindi utilizzare le Azure Policy. Tramite le Azure Policy è infatti possibile:

  • Effettuare il deployment dell’agente di Log Analytics e del Dependency agent.
  • Avere un report sullo stato di compliance.
  • Avviare delle azioni di remediation per le VMs non compliant.

Un requisito da verificare prima di procedere con l’attivazione è la presenza della soluzione VMInsights nel workspace di Azure Monitor Log Analytics che verrà utilizzato per archiviare i dati di monitor.

Figura 1 – Configurazione del workspace di log Analytics

Selezionando il workspace desiderato viene scatenata l’installazione della solution VM Insights che permette di collezionare i performance counters e le metriche di tutte le macchine virtuali connesse a tale workspace.

Per attivare Azure Monitor for VMs tramite policy basta selezionare il relativo riquadro di onboarding nella schermata principale della soluzione.

Figura 2 – Selezione di Azure Policy come metodo di abilitazione

Nel blade seguente verrà riportato lo stato di copertura del servizio e sarà fornita la possibilità di assegnare le Policy per la relativa attivazione.

Figura 3 – Assegnazione dell’Initiative a livello di Management Group

Gli Azure Management Groups, consentono di organizzare differenti subscriptions in contenitori logici, sui quali definire, porre in essere e verificare le politiche di governo necessarie.

Le Initiatives, che sono un insieme di più Azure Policy, possono essere assegnate a livello di Resource Group, Subscription oppure di Management Group. Si ha inoltre la possibilità di escludere determinate risorse dall’applicazione delle policy.

A questo proposito le policy di abilitazione di Azure Monitor for VMs sono raggruppate in un’unica “initiative”, chiamata “Enable Azure Monitor for VMs” che comprende le seguenti policy:

  • Audit Dependency agent deployment – VM image (OS) unlisted
  • Audit Log Analytics agent deployment – VM image (OS) unlisted
  • Deploy Dependency agent for Linux VMs
  • Deploy Dependency agent for Windows VMs
  • Deploy Log Analytics agent for Linux VMs
  • Deploy Log Analytics agent for Windows VMs

Tale Initiative è consigliato assegnarla a livello di Management Group.

Figura 4 – Configurazione dell’associazione

Tra i parametri è richiesto di specificare il workspace di Log Analytics ed opzionalmente è possibile specificare eventuali task di remediation.

In seguito all’assegnazione è possibile valutare lo stato di compliance nel dettaglio e se lo si ritiene necessario applicare delle azioni di remediation.

Figura 5 – Verifica sullo stato di compliance dell’Initiative

Completato il processo di abilitazione sarà possibile analizzare i dati di performance dei sistemi e le mappa create per identificare tutte le dipendenze delle macchine virtuali e dei relativi processi.

Figura 6 – Performance raccolte per i sistemi

Figura 7 – Mappa con le interconnessioni presenti tra vari sistemi

Figura 8 – Mappa che riporta i dettagli delle connessioni

Un metodo efficace per renderle facilmente consultabili questi dati e per analizzarli in modo semplice è l’utilizzo dei Workbooks, documenti interattivi che consentono di interpretare al meglio le informazioni e fare analisi approfondite. In questo documento Microsoft è possibile consultare la lista dei relativi Workbook inclusi in Azure Monitor for VMs e come crearne dei propri personalizzati.

Conclusioni

In questo articolo si è dimostrato come è possibile abilitare la soluzione Azure Monitor for VMs grazie all’adozione delle Azure Policy in modo semplice, rapido ed efficace. La soluzione riporta informazioni molto utili che tipicamente devono essere raccolte su diversi sistemi presenti nel proprio ambiente. Aumentando la complessità e la quantità di servizi su Azure diventa indispensabile adottare degli strumenti come Azure Policy, per avere delle politiche efficaci di governance. Inoltre, con l’introduzione di Azure Arc si potranno estendere queste pratiche di gestione e di governance di Azure anche ad ambienti differenti, facilitando in questo modo l’implementazione di funzionalità presenti in Azure su tutti i componenti dell’infrastruttura.

Azure Governance: panoramica di Azure Blueprints

L’IT governance permette di realizzare un processo attraverso il quale è possibile garantire alle realtà aziendali un utilizzo efficiente delle proprie risorse IT, con l’obiettivo di poter raggiungere in modo efficace i propri obiettivi. La Governance dell’ambiente Azure è resa possibile da una serie di servizi appositamente progettati per consentire una gestione ed un costante controllo delle varie risorse Azure su vasta scala. Tra questi strumenti troviamo Azure Blueprints che permette di effettuare il design e la creazione di nuovi componenti in Azure, nel rispetto totale delle specifiche e degli standard aziendali. In questo articolo viene riportata una panoramica della soluzione per fornire gli elementi necessari per il relativo utilizzo.

Azure Blueprints consente ai Cloud Architect e ai Cloud Engineer, responsabili di realizzare architetture in Azure, di definire ed implementare in modo ripetibile un insieme di risorse Azure, con la certezza di aderire agli standard, ai modelli e ai requisiti definiti aziendalmente. Azure Blueprints permette inoltre di effettuare il rilascio di nuovi ambienti in modo rapido, adottando componenti integrati e accelerando i tempi di sviluppo e di consegna degli stessi.

I principali punti di forza della soluzione Azure Blueprints posso essere così sintetizzati.

Semplifica la creazione degli ambienti Azure

  • Centralizza la creazione di nuovi ambienti Azure tramite template.
  • Consente di aggiungere risorse, policy e ruoli.
  • Permette di tenere traccia degli aggiornamenti dei progetti tramite il controllo delle versioni.

Azure Blueprints tramite un modello dichiarativo permette di orchestrare la distribuzione di vari templates di risorse e di altri artifacts Azure. Il servizio Azure Blueprints è basato e supportato da Azure Cosmos DB. Gli oggetti blueprint vengono replicati in più region di Azure, ottenendo così una bassa latenza, un’elevata disponibilità e accesso coerente agli stessi, indipendentemente dalla region in cui vengono distribuite le risorse.

Permette di rispettare la compliance

  • Consente agli sviluppatori di creare ambienti completamente governati attraverso metodologie self-service.
  • Fornisce la possibilità di creare in modo centralizzato più ambienti e subscription Azure.
  • Permette di sfruttare l’integrazione con le Azure Policy e con il ciclo di vita di DevOps.

Consente di controllare i lock sulle risorse

  • Assicura che le risorse di base non possano essere modificate.
  • Gestisce i lock in modo centralizzato.
  • Permette di aggiornare le risorse bloccate tramite delle variazioni alla definizione del modello blueprint.

Come utilizzare Azure BluePrints

Si riportano le fasi da seguire per adottare la soluzione Azure Blueprints.

Figura 1 – Come funziona Azure Blueprint

Il primo step prevedere la creazione di un blueprint che può essere fatta tramite portale Azure, PowerShell oppure REST API.

Figura 2 – Schermata iniziale di Bluprints dal portale Azure

Avviando il processo di creazione dal portale Azure c’è la possibilità di partire da un blueprint vuoto oppure di utilizzare alcuni esempi disponibili.

Figura 3 – Creazione del blueprint dal portale Azure

Il blueprint è composto da differenti artifacts come: Role Assignments, Policy Assignments, Azure Resource Manager templates e Resource Group. Terminata la creazione è necessario pubblicare il blueprint (al termine della creazione sarà nello stato di draft) specificando il versioning. Azure Blueprints risulta uno strumento molto utile per le aziende che utilizzano il modello di infrastructure as code in quanto contempla i processi di continuous integration e continuous deployment.

Solo dopo aver pubblicato il blueprint è possibile assegnarlo a una o più subscription Azure, specificando la tipologia di lock secondo i seguenti stati:

  • Don’t Lock: significa che le risorse create da Blueprints non saranno protette.
  • Do Not Delete: significa che le risorse possono essere modificate, ma non rimosse.
  • Read Only: l’assegnazione risulta in locked e le derivanti risorse non potranno essere modificate o rimosse, nemmeno dagli owner della subscription. In questo caso è bene specificare che non tutte le risorse Azure supportano il lock e che l’assegnazione del blocco può richiedere fino a 30 minuti per essere effettivo.

Figura 4 – Assegnazione del blueprint

Durante l’assegnazione del Blueprint verranno inoltre richiesti i parametri previsti per effettuare il deployment delle risorse.

Figura 5 – Esempio di richiesta dei parametri del blueprint

Un aspetto interessante della soluzione Azure Blueprints è dato dal fatto che i blueprint creati mantengono una relazione con le risorse assegnate e possono essere monitorati e controllati, cosa non possibile utilizzando i semplici template ARM e le policy.

Conclusioni

Azure Blueprints è un servizio che offre a coloro che si occupano di realizzare architetture in Azure la capacità di definire un set di risorse in modo facilmente ripetibile, conforme agli standard aziendali e ai requisiti dell’organizzazione. Adottando dei blueprint è possibile creare e distribuire rapidamente nuovi ambienti, contemplando una serie di componenti integrati. Questo permette non solo di distribuire ambienti consistenti, ma di farlo in modo agile, consentendo alle organizzazioni di accelerare lo sviluppo e la consegna delle soluzioni in Azure.

Azure Arc: un nuovo approccio agli ambienti ibridi

L’impiego di architetture ibride nelle realtà aziendali è sempre più preponderante, in quanto consentono di continuare a trarre vantaggio dagli investimenti fatti nel proprio ambiente on-premises e, allo stesso tempo, utilizzare l’innovazione introdotta dal cloud. L’adozione di soluzioni ibride risulta vincente se tiene conto anche di una politica condivisa per la distribuzione, la gestione e la messa sicurezza dei componenti. Senza coerenza nella gestione dei differenti ambienti, i costi e la complessità rischiano di crescere in modo esponenziale. Microsoft ha deciso di rispondere a questa esigenza con la soluzione Azure Arc, che coinvolge una serie di tecnologie con l’obiettivo di sviluppare nuovi scenari ibridi, dove i servizi e i principi di gestione di Azure vengono estesi a qualsiasi infrastruttura. In questo articolo viene presentato l’approccio adottato da Azure Arc per gli ambienti ibridi.

La complessità degli ambienti IT è in continua espansione al punto da riscontrare realtà con applicazioni basate su diverse tecnologie, attive su infrastrutture eterogenee e magari che adottano soluzioni in differenti cloud pubblici. L’esigenza molto sentita dai clienti è di poter adottare una soluzione che in modo centralizzato consenta di inventariare, organizzare e applicare delle policy di controllo sulle proprie risorse IT ovunque si trovino.

Il principio che sta alla base di Azure Arc è quello di estendere le pratiche di gestione e di governance di Azure anche ad ambienti differenti e di adottare soluzioni tipicamente cloud, come tecniche DevOps (infrastructure as code), anche per gli ambienti on-premises.

Figura 1 – Panoramica di Azure Arc

Per ottenere questo risultato Microsoft ha deciso di estensione il modello Azure Resource Manager per poter supportare anche ambienti ibridi, facilitando in questo modo l’implementazione delle funzionalità di security presenti in Azure su tutti i componenti dell’infrastruttura.

Figura 2 – Azure Management per tutte le risorse

Azure Arc consiste in un insieme di differenti tecnologie e di componenti che permette di:

  • Gestire le applicazioni in ambienti Kubernetes: viene fornita la possibilità di effettuare il deploy e la configurazione delle applicazioni Kubernetes in modo omogeneo su tutti gli ambienti, adottando le moderne tecniche DevOps.
  • Consentire l’esecuzione degli Azure data services su qualsiasi infrastruttura: il tutto si basa sull’adozione di Kubernetes e permette di rispettare più facilmente i criteri di compliance, di migliorare la sicurezza dei dati e di avere una notevole flessibilità in fase di deploy. Al momento i servizi contemplati sono Azure SQL Database e Azure Database for PostgreSQL.
  • Organizzare, gestire e governare tutti i sistemi server: Azure Arc estende infatti le possibilità offerte in ambito governance e management da Azure anche alle macchine fisiche e ai sistemi virtuali presenti in ambienti differenti. Tale soluzione è chiamata nello specifico Azure Arc for servers.

Figura 3 – Tecnologie di Azure Arc

Azure Arc prevede l’utilizzo di Resource Provider specifici per Azure Resource Manager ed è necessaria l’installazione degli agenti di Azure Arc.

Accedendo al portale si può notare come Azure Arc for Servers sia già attualmente disponibile in preview pubblica, mentre è necessario effettuare una registrazione per gestire in preview gli ambienti Kubernetes e i data services.

Figura 4 – Azure Arc nel portale Azure

Grazie all’adozione di Azure Arc che introduce una visione complessiva, è possibile raggiungere, per le proprie architetture ibride, i seguenti obiettivi, difficilmente perseguibili diversamente:

  • Standardizzazione delle operazioni
  • Organizzazione delle risorse
  • Sicurezza
  • Controllo dei costi
  • Business Continuity
  • Rispetto delle normative e della compliance aziendale

Figura 5 – Cloud-native governance con Azure Arc

Conclusioni

Azure Arc è stato recentemente annunciato e nonostante si trovi ancora in una fase embrionale, ritengo che possa evolvere notevolmente al punto da rivoluzionare la gestione e lo sviluppo degli ambienti ibridi. Per mantenersi aggiornati su come si svilupperà questa soluzione è possibile registrarsi a questa pagina.

Come controllare l’esecuzione delle applicazioni tramite Azure Security Center

Azure Security Center mette a disposizione diversi meccanismi per prevenire le minacce di sicurezza e per ridurre le superfici di attacco del proprio ambiente. Uno di questi meccanismi è l’Adaptive Application Controls, una soluzione in grado di controllare quali applicazioni vengono eseguite sui sistemi. Azure Security Center utilizza il motore di machine learning per analizzare le applicazioni in esecuzione sulle macchine virtuali e sfrutta l’intelligenza artificiale per mettere a disposizione una lista di applicazioni consentite. In questo articolo vengono riportati i benefici che si possono ottenere adottando questa soluzione e come effettuare la configurazione.

Adottando questa soluzione, disponibile utilizzando il tier Standard di Azure Security Center, è possibile effettuare le seguenti operazioni:

  • Essere avvisati a fronte di tentativi di esecuzione di applicazioni malevole, che potenzialmente potrebbero non essere individuate da soluzioni antimalware. Per i sistemi Windows presenti su Azure è possibile anche applicare dei blocchi di esecuzione.
  • Rispettare la compliance aziendale, permettendo l’esecuzione solo di software regolarmente licenziato.
  • Evitare l’utilizzo di software non voluto oppure obsoleto all’interno della propria infrastruttura.
  • Controllare l’accesso ai dati sensibili che avviene utilizzando specifiche applicazioni.

Figura 1 – Azure Security Center Free vs Standard tier

Adaptive application controls può essere utilizzato sui sistemi indipendentemente dalla loro location geografica. Al momento per i sistemi non dislocati in Azure e per le VMs Linux, è supportata solamente la modalità di audit.

Questa funzionalità può essere attivata direttamente dal portale Azure accedendo al Security Center.

Figura 2 – Adaptive application controls nella sezione “Advanced cloud defense” di Security Center

Security Center utilizza un algoritmo proprietario per la creazione automatica di gruppi di macchine con caratteristiche simili, per facilitare l’applicazione delle policy di Application Control.

Dall’interfaccia di gestione i gruppi sono divisi in tre tipologie:

  • Configured: lista i gruppi contenenti VMs dove è configurata questa funzionalità.
  • Recommended: sono presenti i gruppi di sistemi dove è raccomandata l’abilitazione del controllo applicativo. Security Center utilizza meccanismi di machine learning per identificare le VMs sulle quali vengono eseguiti regolarmente sempre gli stessi applicativi, e pertanto risultano delle buone candidate per abilitare il controllo applicativo.
  • Unconfigured: elenco dei gruppi che contengono le VMs per le quali non sono presenti raccomandazioni specifiche riguardanti il controllo applicativo. Per esempio, VMs che eseguono sistematicamente applicative differenti.

Figura 3 – Tipologie di gruppi

Cliccando sui gruppi di macchine virtuali sarà possibile gestire le Application control rules, che permetteranno di creare delle regole in grado di valutare l’esecuzione delle applicazioni.

Figura 4 – Configurazione delle Application control rules

Per ogni singola regola si selezionano le macchine sulle quali applicarla e le applicazioni che si intende consentire. Per ogni applicazione vengono riportate le informazioni di dettaglio, in particolare, nella colonna “Expoitable” viene indicato se si tratta di una applicazione che può potenzialmente essere utilizzata in modo malevolo per bypassare la lista delle applicazioni consentite. Per questa tipologia di applicazioni è opportuno prestare molta attenzione prima di consentirle.

Questa configurazione, per i sistemi Windows, comporta la creazione di specifiche regole di Applocker, tramite le quali viene governata l’esecuzione delle applicazioni.

Di default, Security Center abilita il controllo applicativo in modalità Audit, limitandosi a controllare l’attività nelle macchine virtuali protette senza applicare nessun blocco sull’esecuzione delle applicazioni. Per ogni singolo gruppo, dopo aver verificato che la configurazione effettuata non comporta malfunzionamenti sui workload presenti sui sistemi, è possibile portare il controllo applicativo in modalità Enforce, purché siano macchine virtuali Windows in ambiente Azure, per bloccare l’esecuzione delle applicazioni non espressamente consentite. Sempre dalla stessa interfaccia è possibile cambiare il nome del gruppo dei sistemi.

Figura 5 – Cambio del nome e della modalità di protezione

Al termine di questa configurazione saranno riportate, nel pannello principale di Security Center, le notifiche riguardanti potenziali violazioni nell’esecuzione delle applicazioni rispetto a quanto consentito.

Figura 6 – Notifiche di violazione dell’esecuzione delle applicazioni in Securiy Center

Figura 7 – Lista completa delle violazioni riscontrate

Figura 8 – Esempio di segnalazione

Conclusioni

La funzionalità di Adaptive application controls consente con pochi passaggi di abilitare in modo rapido un controllo approfondito sulle applicazioni che vengono eseguite sui propri sistemi. La configurazione risulta semplice e intuitiva, soprattutto grazie alla funzionalità che permette di raggruppare i sistemi che hanno caratteristiche simili per quanto riguarda l’esecuzione degli applicativi. Si tratta pertanto di un importante meccanismo che consente di prevenire potenziali minacce di sicurezza e di ridurre al minimo le superfici di attacco del proprio ambiente. Sommato alle ulteriori funzionalità, Adaptive application controls contribuisce a rendere Security Center una soluzione completa per la protezione dei propri workload.