Archivi categoria: Azure Governance

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 Governance: come gestire ed ottimizzare i costi del cloud

Una delle principali caratteristiche del cloud è la possibilità di creare e distribuire risorse in modo estremamente agile e veloce. Utilizzare soluzioni ottimizzate per ridurre al minimo i costi ed avere sempre sotto controllo le spese da sostenere per le risorse create in ambiente cloud è un aspetto di fondamentale importanza. In questo articolo vengono riepilogati i principi e gli strumenti che è opportuno tenere in considerazione per gestire ed ottimizzare i costi del cloud.

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

Figura 1 – Iniziative cloud top per l’anno 2020

Principi per gestire al meglio i costi

Per ottenere una posizione di successo nella gestione dei costi del cloud è bene tenere in considerazione i principi in seguito riportati.

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 determinare 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 responsabile processo di governance dell’ambiente cloud.

Quali soluzioni usare?

In fase di progettazione è utile avere una stima il più possibile precisa relativa ai costi che si devono sostenere nell’adottare soluzione in ambito Azure. Per fare queste stime è possibile utilizzare i seguenti strumenti:

La soluzione Azure Cost Management + Billing offre un set completo di funzionalità di gestione dei costi cloud ed è utile in particolare per:

  • Monitorare e analizzare la fattura di Azure.
  • Impostare budget e avvisi di spesa.
  • Assegnare i costi ai team e per i vari progetti.

Figura 2 – Azure Cost Management + Billing: analisi dei costi

Dopo aver compreso le spese attuali e future in ambito cloud è possibile lavorare per ottimizzare i costi dei workload presenti in Azure. In questo ambito gli strumenti Microsoft che è possibile utilizzare sono:

  • Azure Advisor: si tratta di una soluzione totalmente gratuita ed inclusa in Azure che consente facilmente di ottimizzare le risorse presenti nei propri deployment, offrendo delle raccomandazioni specifiche per diverse categorie, tra le quali i costi. Azure Advisor fornisce delle indicazioni per massimizzare il ritorno economico degli investimenti in Azure. Questa soluzione può essere utile ad esempio per identificare le risorse inutilizzate oppure per individuare opportunità per dimensionare in modo migliore i servizi.

Figura 3 – Azure Advisor: esempio di raccomandazione

Politiche per ottimizzare i costi

Indipendentemente dagli strumenti utilizzati, 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 Azure 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. 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).
  • Per la riduzione dei costi Azure è inoltre possibile adottare l’Azure Hybrid Benefit, che consente di risparmiare fino al 40% sul costo delle macchine virtuali Windows Server che vengono implementate su Azure. Il risparmio è dato dal fatto che Microsoft consente di pagare solamente i costi di infrastruttura Azure, mentre il licensing per Windows Server viene coperto dal contratto di Software Assurance. Questo benefit è applicabile sia alla versione Standard che Datacenter ed è usufruibile per Windows Server 200 R2 o successivi.

Figura 4 – Struttura dei costi per una VM Windows

L’Azure Hybrid Benefit può essere utilizzato anche per Azure SQL Database e per i SQL Server installati su macchine virtuali Azure. Questi vantaggi facilitano la migrazione verso soluzioni nel cloud 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.

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 5 – Percentuali di possibili risparmi adottando RIs ed Azure Hybrid Benefit

  • Per gli ambienti di test e sviluppo è possibile utilizzare 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.
  • Valutare l’adozione di nuove tecnologie serverless e applicare miglioramenti nelle architetture esistenti.

Conclusioni

L’utilizzo di un approccio metodico alla gestione dei costi e l’adozione dei giusti strumenti, sono elementi fondamentali per affrontare le sfide dei costi del cloud. I vari elementi esaminati in questo articolo permettono di ridurre le spese e massimizzare l’investimento nel cloud.

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.

Azure Data Share: il servizio per condividere in modo sicuro i dati

Microsoft ha recentemente annunciato la disponibilità del nuovo servizio gestito Azure Data Share, appositamente ideato per la condivisione di dati tra differenti organizzazioni. Azure Data Share consente di condividere e combinare i dati in modo semplice, al fine di garantire una collaborazione aziendale efficace tra differenti realtà, nel rispetto della sicurezza e della governance. In questo articolo vengono approfonditi i principi di funzionamento e viene riportata la procedura da seguire per la relativa configurazione.

Ad oggi le soluzioni più comunemente utilizzate per lo scambio e la condivisione dei dati aziendali si basano su File Transfer Protocol (FTP) oppure su Web API custom, le quali oltre a richiedere di dover gestire un’infrastruttura specifica, non sono in grado di aderire agli standard aziendali in termini di sicurezza e governance. Inoltre, queste soluzioni non risultano idonee per lo scambio di grossi volumi di dati. Azure Data Share è invece un servizio totalmente gestito nato con l’obiettivo di semplificare, rendere sicuro e controllato il processo di condivisione dei dati tra realtà aziendali differenti. Non è richiesta la configurazione di nessuna infrastruttura specifica e il servizio può scalare rapidamente per far fronte ad esigenze di condivisione di grandi quantitativi di dati. Anche l’aspetto sicurezza è fondamentale per un servizio di questo tipo ed Azure Data Share sfrutta le principali misure di sicurezza intrinseche in Azure per la protezione dei dati.

Attivazione del servizio

L’attivazione del servizio Azure Data Share deve essere fatta in primis da chi deve condividere i dati, secondo la seguente modalità.

Figura 1 – Avvio del processo di creazione

Figura 2 – Parametri richiesti dal processo di creazione

Il deployment è molto rapido e dopo aver attivato il servizio è possibile iniziare il processo di condivisione dei dati.

Utilizzo della soluzione

Azure Data Share ha un’interfaccia intuitiva, può essere utilizzato direttamente dal portale Azure, e con pochi semplici passaggi è possibile scegliere quali dati condividere e con chi condividerli.

Figura 3 – Avvio del processo di condivisione

Figura 4 – Definizione nome e dettagli della share

Risulta possibile governare l’uso dei dati associando specifici termini di utilizzo ad ogni condivisione che viene creata. Per consentire la ricezione dei dati, i destinatari dovranno accettare le condizioni di utilizzo specificate.

Figura 5 – Aggiunta Dataset e selezione della tipologia

Per la condivisione dei dati ad oggi è possibile utilizzare come Dataset Azure Blob Storage ed Azure Data Lake Storage, ma a breve saranno introdotti anche nuovi data source di Azure.

Figura 6 – Selezione del container che contiene i dati da condividere

Figura 7 – Aggiunta dell’indirizzo mail della persona con cui condividere i file

Il servizio prevede anche la possibilità di schedulare la condivisione di nuovi contenuti o delle modifiche apportate, mantenendo sempre il controllo completo di qualsiasi condivisione.

Figura 8 – Schedulazione degli snapshots

Figura 9 – Review e creazione della share

Il destinatario riceverà al termine del processo di creazione della condivisione una notifica tramite mail.

Figura 10 – Invito ricevuto tramite mail dalla persona alla quale si vuole inviare dati

Figura 11 – Invito di Data Share dal portale Azure

Colui che riceve i dati condivisi dovrà disporre di un servizio Azure Data Share per poter consultare i dati condivisi.

Figura 12 – Accettazione invito di Data Share

In seguito all’accettazione dell’invito è necessario specificare il target, nel caso specifico lo storage account, sul quale far confluire i dati ricevuti. Tali contenuti si può scegliere se mantenerli sincronizzati secondo lo scheduling specificato dal mittente.

Figura 13 – Configurazione dello storage account target

Figura 14 – Dettaglio di una condivisione ricevuta

Nelle condivisioni ricevute viene inoltre fornita la possibilità di forzare manualmente il trigger di una snapshot (completa oppure incrementale).

Conclusioni

In un mondo in cui la quantità, la tipologia e la varietà dei dati è in costante crescita, è necessario disporre di servizi che consentano alle organizzazioni di collaborare tra di loro condividendo dati di qualsiasi tipologia e dimensione. Grazie al servizio Azure Data Share è possibile condividere dati, tra realtà aziendali differenti, in modo semplice, sicuro e rispettando le politiche di governance. L’aggiunta di nuovi Dataset per la condivisione dei dati, prevista nel breve periodo, renderà questo servizio ancora più completo ed efficace.

Azure Governance: introduzione ad Azure Resource Graph

L’Azure Governance è possibile grazie ad una serie di servizi appositamente progettati per consentire una gestione ed un costante controllo delle varie risorse Azure su vasta scala. Tra questi servizi troviamo Resource Graph, un potente strumento che da command-line consente rapidamente di ottenere dettagli riguardanti i differenti artifacts di Azure. Utilizzando Resource Graph è possibile recuperare informazioni che in precedenza richiedevano necessariamente la creazione di script complessi ed iterativi. In questo articolo vengono riportate le caratteristiche della soluzione e come è possibile utilizzarla per scoprire i dettagli delle risorse Azure su larga scala.

Caratteristiche del servizio

In presenza di ambienti Azure complessi che vedono la presenza di molte subscription, mantenere una visibilità complessiva di tutte le risorse Azure può risultare complesso senza l’adozione di strumenti appositamente sviluppati. Queste le esigenze che tipicamente si devono affrontare:

  • Possibilità di visualizzare le risorse Azure e le rispettive proprietà in modo trasversale tra differenti subscription.
  • Poter eseguire in modo efficiente delle query sulle risorse impostando dei filtri, dei raggruppamenti e imponendo un preciso ordinamento sulle rispettive proprietà.
  • Esplorare iterativamente le differenti risorse.
  • Valutare l’impatto dato dall’applicazione di policy su un numero elevato di risorse cloud.

Il servizio Azure Resource Graph consente, grazie all’utilizzo di un linguaggio efficiente e performante di effettuare le seguenti azioni:

  • Eseguire query sulle risorse applicando filtri, raggruppamenti e ordinamenti complessi.
  • Esplorare iterativamente le risorse in base ai requisiti di governance.
  • Valutare l’impatto dato dall’applicazione delle policy in un vasto ambiente cloud.
  • Dettagliare le modifiche che vengono apportate alle proprietà delle risorse Azure. Recentemente è stata infatti introdotta la possibilità di visualizzare gli ultimi 14 giorni di cronologia relativa alle modifiche apportate alle risorse, per individuare quali proprietà sono state modificate e quando. Questa funzionalità risulta particolarmente utile in fase di troubleshooting, per individuare eventuali eventi di modifica in una specifica fascia oraria. Inoltre, risulta funzionale per comprendere le proprietà che sono state modificate quando una risorsa ha cambiato lo stato di compliance, in modo da valutare l’adozione di Azure Policy per gestire opportunamente tali proprietà. Per maggiori informazioni a riguardo è possibile consultare la documentazione ufficiale Microsoft.

Tutte queste azioni garantiscono aspetti importanti per poter governare al meglio il proprio ambiente Azure.

Quando una risorsa di Azure viene aggiornata, Resource Graph viene notificato da Resource Manager della relativa modifica ed aggiorna di conseguenza il suo database. Resource Graph esegue inoltre regolarmente una scansione completa delle risorse per garantire che i suoi dati siano aggiornati nel caso di mancate notifiche oppure di aggiornamenti che avvengono al di fuori di Resource Manager.

Come utilizzare Resource Graph

Le query di Azure Resource Graph sono basate sul linguaggio Kusto, utilizzato anche da Azure Data Explorer, Application Insights ed Azure Log Analytics. Per maggiori dettagli sull’utilizzo del linguaggio di query di Azure Resource Graph è possibile consultare la documentazione ufficiale Microsoft, che riporta come è strutturato e quali sono gli operatori e le funzionalità supportate.

Resource Graph supporta l’Azure CLIAzure PowerShell e Azure SDK per .NET. L’esecuzione di query Resource Graph richiede nell’Azure CLI environment l’aggiunta della relativa extension, mentre in Azure PowerShell è necessaria l’installazione del modulo Resource Graph. Le query sono comunque sempre strutturate in modo identico, indipendentemente da dove vengono eseguite.

L’utilizzo di Resource Graph richiede che l’utente con il quale vengono eseguite le query disponga di permessi almeno in lettura, tramite Role-based access control (RBAC), sulle risorse che si intende interrogare. Nel caso non siano presenti almeno i permessi di lettura su determinate risorse, le interrogazioni non restituiranno i risultati relativi ad esse.

Il servizio Azure Resource Graph viene utilizzato anche quando si effettuano delle ricerche nella search bar del portale Azure, nel nuovo elenco delle risorse (‘All resources’) e nella change history delle Azure Policy.

Figura 1 – Experience di ‘All resources’ che utilizza Azure Resource Graph

Query di esempio

Si riportano alcuni esempi di query Resource Graph ed il relativo risultato.

Figura 2 – Query per contare le risorse per tipologia (Resource Type)

Figura 3 – Query per contare le risorse in base alla location geografica

Le query Azure Resource Graph hanno il grosso vantaggio che oltre a poter ottenere il risultato desiderato in modo semplice, sono anche molto performanti:

Figura 4 – Tempo di esecuzione della query per contare le risorse in base alla location

Se si volesse ottenere questo risultato utilizzando il classico metodo PowerShell in ambienti Azure complessi, bisognerebbe collegarsi alla singola subscription Azure, ricercare le informazioni necessarie e passare alla subscription successiva. Questo approccio era l’unico possibile fino all’arrivo di Resource Graph, ma risultava essere più laborioso e molto meno performante.

Figura 5 – Elenco delle VMs con l’OS disk non Managed

Conclusioni

Azure Resource Graph permette di esplorare e analizzare in modo rapido ed efficace le risorse Azure, consentendo di mantenere una visibilità totale anche sugli ambienti Azure particolarmente complessi, costituiti da diverse subscription, ciascuna delle quali con un numero elevato di elementi. Particolarmente utile la funzionalità che consente di consultare la cronologia delle modifiche apportate alle risorse Azure. Azure Resource Graph è uno strumento che consente di apportare un contributo significativo per la governance del proprio ambiente Azure.