Archivi categoria: Cloud

Azure Application Gateway: come monitorarlo con Log Analytics

L’Azure Application Gateway è un load balancer applicativo (OSI layer 7) per il traffico web, disponibile in ambiente Azure, che consente di gestire il traffico HTTP e HTTPS delle applicazioni. In questo articolo verrà approfondito come effettuare il monitor degli Azure Application Gateway utilizzando Log Anaytics.

Figura 1 – Schema di base dell’Azure Application Gateway

Utilizzando l’Azure Application Gateway è possibile usufruire delle seguenti funzionalità:

  • Routing basato su URL
  • Redirection
  • Multiple-site hosting
  • Session affinity
  • Secure Sockets Layer (SSL) termination
  • Web application firewall (WAF)
  • Supporto nativo per i protocolli WebSocket e HTTP/2

Per maggiori dettagli sugli Azure Application Gateway è possibile consultare la documentazione ufficiale Microsoft.

Configurazione Diagnostics logs dell’Application Gateway

L’Azure Application Gateway prevede l’invio dei log di diagnostica verso un workspace di Log Analytics. Questa funzionalità è molto utile per controllare le performance, per rilevare eventuali errori ed è   fondamentale per operazioni di troubleshooting, in particolare in presenza del modulo WAF.  Per abilitare la diagnostica dal portale Azure è possibile selezionare la risorsa Application Gateway specifica ed accedere alla sezione “Diagnostics logs”:

Figura 2 –  Avvio della configurazione dei Diagnostics logs

Figura 3 – Configurazione dei Diagnostics logs

Dopo aver scelto il workspace di Log Analytics dove inviare i dati di diagnostica, nella sezione Log, è possibile selezionare quale tipologia di Log collezionare tra i seguenti:

  • Access log (ApplicationGatewayAccessLog)
  • Performance log (ApplicationGatewayPerformanceLog)
  • Firewall log (ApplicationGatewayFirewallLog): questi log vengono generati solo se il Web Application Firewall è configurato sull’Application Gateway.

Oltre a questi log sono inoltre collezionati di default gli Activity Log generati da Azure. Questi log vengono mantenuti per 90 giorni nello store dell’Azure event logs. Per maggiori dettagli è possibile consultare questo documento specifico.

Solution Azure Application Gateway analytics di Log Analytics

Microsoft mette a disposizione la solution Azure Application Gateway analytics che può essere aggiunta al workspace di Log Analytics seguendo questi semplici step:

Figura 4 – Avvio della procedura di aggiunta della solution al workspace OMS

Figura 5 – Selezione della solution Azure Application Gateway analytics

Figura 6 – Aggiunta della solution nel workspace selezionato

Dopo aver abilitato l’invio dei log di diagnostica verso il workspace di Log Analytics ed aver aggiunto sullo stesso la solution, selezionando il tile Azure Application Gateway analytics presente nella pagina di Overview, si potrà visualizzare una overview dei dati di log raccolti dall’Application Gateway:

Figura 7 – Schermata di overview della solution Azure Application Gateway analytics

Sarà inoltre possibile consultare i dettagli per le seguenti categorie.

  • Application Gateway Access logs:
    • Client and server errors for Application Gateway access logs
    • Requests per hour for each Application Gateway
    • Failed requests per hour for each Application Gateway
    • Errors by user agent for Application Gateways

Figura 8 – Schermata degli Application Gateway Access logs

  • Application Gateway performance:
    • Host health for Application Gateway
    • Maximum and 95th percentile for Application Gateway failed requests

Figura 9 – Schermata delle performance degli Application Gateway

Dashboard personalizzata di Log Analytics per il monitor dell’Application Gateway

Oltre a questa solution può essere conveniente utilizzare anche una apposita dashboard di Log Analytics, specifica per il monitoring dell’Application Gateway, reperibile a questo indirizzo. Il deploy della dashboard avviene tramite template ARM e richiede anche in questo caso l’abilitazione dei Diagnostics logs dell’Application Gateway, come descritto precedentemente. Le varie query di Log Analytics, utilizzate dalla dashboard, sono documentate in questo blog. Grazie a queste query la dashboard riporta diverse informazioni aggiuntive esposte dalla diagnostica dell’Application Gateway.

Figura 10 – Dashboard custom di Log Analytics per il monitor dell’Application Gateway

Query di Log Analytics per monitorare i Firewall Log

Utilizzando la solution Azure Application Gateway analytics di Log Analytics oppure la dashboard custom (riportata nel paragrafo precedente) non sono al momento contemplati i Firewall log, generati quando risulta attivo il Web Application Firewall (WAF) sull’Application Gateway. Il WAF si basa sulle regole di OWASP Core Rule Set 3.0 o 2.2.9 per intercettare gli attacchi, alle applicazioni Web, che sfruttano le più note vulnerabilità. Per citarne alcune, troviamo ad esempio gli attacchi SQL injection e gli attacchi cross site scripting.

In questo caso, qualora si decida di verificare i Firewall log, è necessario eseguire direttamente delle query di Log Analytics, come ad esempio:

Figura 11 – Query di LA per recuperare le richieste bloccate dal modulo WAF, negli ultimi 7 giorni, per uno specifico URI, suddivise per RuleId

Per consultare la lista delle regole del WAF, associando il RuleId alla relativa description, è possibile consultare questo documento.

Il messaggio descrittivo della rule viene riportato anche all’interno dei risultati restituiti dalla query:

Figura 12 – Query di LA per recuperare le richieste bloccate dal modulo WAF, negli ultimi 7 giorni, per uno specifico URI e per specifica RuleId

Conclusioni

Secondo la mia esperienza, nelle architetture Azure che richiedono la pubblicazione sicura di servizi Web verso internet, è spesso utilizzato il servizio Azure Application Gateway con il modulo WAF attivo. Grazie alla possibilità di inviare i log di diagnostica di questo componente verso Log Analytics si ha la possibilità di avere un monitor completo, che risulta fondamentale per analizzare eventuali condizioni di errore e per valutare lo stato del componete in tutte le sue sfaccettature.

OMS e System Center: novità di Giugno 2018

Nel mese di giugno sono state annunciate, da parte di Microsoft, un numero considerevole di novità riguardanti Operations Management Suite (OMS) e System Center. La nostra community, tramite questi articoli rilasciati mensilmente, vuole fornire una panoramica complessiva delle principali novità del mese, in modo da rimanere sempre aggiornati su questi argomenti ed avere i riferimenti necessari per effettuare maggiori approfondimenti.

Operations Management Suite (OMS)

Log Analytics

Recentemente è stato ufficialmente annunciato che il portale OMS sarà deprecato, a favore del portale Azure. In questo articolo vengono esaminati gli aspetti legati a questo cambiamento e cosa è bene sapere per non farsi cogliere impreparati.

Figura 1 – Notifiche presenti nel portale OMS

Azure Backup

Azure Backup si arricchisce con una nuova importante funzionalità che consente di proteggere in modo nativo i workload SQL, in esecuzione sulle macchine virtuali IaaS che risiedono su Azure. In questo articolo vengono riportati i benefici introdotti e le caratteristiche di questa nuova funzionalità.

Figura 2 – Protezione con Azure Backup di SQL Server su VMs Azure

Rilasciata una versione aggiornata dell’Azure Backup agent (MARS), la quale la si può ottenere accedendo a questo indirizzo.

Utilizzando Azure Backup c’è la possibilità di generare la reportistica necessaria per poter facilmente controllare lo stato di protezione delle risorse, i dettagli sui vari job di backup configurati, l’effettivo utilizzo dello storage e lo stato dei relativi alert. Il tutto è reso possibile grazie all’utilizzo di Power BI, che consente di avere un elevato grado di flessibilità nella generazione e nella personalizzazione della reportistica. In questo video, recentemente pubblicato, viene riportato come configurare un workspace Power BI per la condivisione dei reports di Azure Backup all’interno della propria organizzazione. Per analizzati gli step necessari per configurare la reportistica di Azure Backup è possibile consultare questo articolo.

Figura 3 – La condivisione di report PowerBI di Azure Backup

In Azure Backup è stata introdotta la possibilità di proteggere workloads in esecuzione in ambiente Azure Stack. I tenant che usufruiscono della soluzione Azure Stack possono quindi disporre di una protezione short term direttamente sull’ambiente Azure Stack e possono usufruire dei Recovery Service vault in Azure per la long term retention e per effettuare l’offsite. Per maggiori dettagli a riguardo è possibile consultare l’annuncio del rilascio.

Figura 4 – Azure Stack Tenant backup con Microsoft Azure Backup Server

Azure Site Recovery

In Azure Site Recovery (ASR) è stata annunciata in “general availability (GA)” la funzionalità che consente di configurare il Disaster Recovery (DR) di Azure Virtual Machines. Configurando la replica delle macchine virtuali in region differenti di Azure, si ha la possibilità di rendere le applicazioni resilienti ad eventuali guasti che interessano una specifica region di Azure. Questa funzionalità è disponibile in tutte le region Azure dove è possibile utilizzare ASR. Azure è il primo cloud pubblico a offrire una soluzione nativa di Disaster Recovery per le applicazioni in esecuzione in ambiente IaaS.

Durante il periodo di preview, Microsoft ha preso in considerazione i diversi feedback ricevuti dai client ed ha aggiunto alla soluzione le seguenti importati funzionalità:

Si segnalano questi utili riferimenti riguardanti questa soluzione:

Security e Audit

La solution Azure Network Security Group Analytics sarà sostituita da Traffic Analytics che è stato rilasciato in General availability (GA). Questa soluzione, totalmente cloud-based, consente di avere una visibilità complessiva sulle attività di rete che vengono intraprese nell’ambiente cloud. Per maggiori dettagli a riguardo è possibile consultare l’articolo “Come monitora le attività di rete nel cloud Azure con Traffic Analytics

System Center

System Center Data Protectrion Manager

In ambienti dove System Center Data Protection Manager (SCDPM) è connesso al servizio Azure Backup è stata introdotta la possibilità di visualizzare tutti gli items protetti, i dettagli sull’utilizzo dello storage e le informazioni sui recovery point, direttamente dal portale Azure, all’interno dei Recovery Service vault. Questa funzionalità è supportata per SCDPM 2012 R2, 2016 e per Azure Backup Server v1 e v2, purché sia installata l’ultima versione dell’Azure Backup Agent (MARS).

Figura 5 – Informazioni provenienti da DPM riportate nel Recovery Service vault

System Center Configuration Manager

Solitamente viene rilasciata una technical preview al mese di Configuration Manager, ma questo mese, visto il numero considerevole di novità, ne sono state rilasciate due.

La prima è la versione 1806 per il branch Technical Preview di System Center Configuration Manager. La principale novità introdotta da questo aggiornamento è l’aggiunta del supporto per il software update catalogs di terze parti. Dalla console di Configuration Manager si potrà facilmente effettuare la sottoscrizione al catalog degli update di partner software di terze parti, per poi pubblicare gli updates tramite il Software Update Point. Tali aggiornamenti potranno essere rilasciati ai client utilizzando il metodo classico di Configuration Manager per la distribuzione dei software update.

Figura 6 – Accesso al software update catalogs di terze parti dalla console di SCCM

Oltre a questa nuova funzionalità sono stati rilasciati aggiornamenti riguardanti:

  • Sync MDM policy from Microsoft Intune for a co-managed device
  • Office 365 workload transition in co-management
  • Configure Windows Defender SmartScreen settings for Microsoft Edge
  • Improvements to the Surface dashboard
  • Office Customization Tool integration with the Office 365 Installer
  • Content from cloud management gateway
  • Simplified client bootstrap command line
  • Software Center infrastructure improvements
  • Removed Network Access Account (NAA) requirement for OSD Boot Media
  • Removed Network Access Account (NAA) requirement for Task Sequences
  • Package Conversion Manager
  • Deploy updates without content
  • Currently logged on user information is shown in the console
  • Provision Windows app packages for all users on a device

La seconda è la versione 1806.2 per il branch Technical Preview di System Center Configuration Manager, che include principalmente le seguenti novità relative al Phased deployment:

  • Possibilità di monitorare lo stato in modo nativo, dal Deployments node.
  • Possibilità di creare Phased deployment di applications e non solo per le task sequences.
  • Possibilità di effettuare un rollout graduale durante la fase di deployment.

Inoltre questa preview contiene aggiornamenti riguardanti:

  • Management Insights for proactive maintenance
  • Mobile apps for co-managed devices
  • Support for new Windows app package formats
  • New boundary group options for optimized P2P behaviors
  • Third-party software updates support for custom catalogs
  • Compliance 9 – Overall health and compliance (Report)

Si ricorda che i rilasci nel Technical Preview Branch consentono di valutare in anteprima le nuove funzionalità di SCCM ed è consigliato applicare questi aggiornamenti solo in ambienti di test.

System Center Operations Manager

Rilasciata una versione aggiornata del Management Pack per OS Windows Server 2016 e 1709 Plus che include diversi aggiornamenti e risoluzioni di problematiche. Per maggiori informazioni a riguardo è possibile consultare questo articolo.

Rilasciata la versione 8.2 del MP Author che include diversi miglioramenti. Per la lista delle novità incluse in questa nuova versione è possibile consultare l’annuncio ufficiale del rilascio.

Valutazione di OMS e System Center

Si ricorda che per testare e valutare in modo gratuito Operations Management Suite (OMS) è possibile accedere a questa pagina e selezionare la modalità che si ritiene più idonea per le proprie esigenze.

Per provare i vari componenti di System Center 2016 è possibile accedere all’Evaluation Center e dopo essersi registrati è possibile avviare il periodo di trial.

La gestione di Log Analytics dal portale Azure

Da diverso tempo Microsoft ha iniziato un processo che ha portato a far confluire nel portale Azure diverse funzionalità e impostazioni di OMS Log Analytics. Recentemente è stato ufficialmente annunciato che il portale OMS sarà deprecato, a favore del portale Azure. In questo articolo saranno esaminati gli aspetti legati a questo cambiamento e cosa è bene sapere per non farsi cogliere impreparati.

La scelta di abbandonare il portale OMS, a favore del portale Azure, è stata fatta per mettere a disposizione una user experience unica per il monitor e la gestione dei propri sistemi, indipendentemente dalla loro locazione (on-premises oppure su Azure). Grazie al portale Azure è infatti possibile esplorare e gestire tutti i servizi Azure e presto si avrà anche il controllo completo di OMS Log Analytics. L’aspettativa è che il gap attualmente presente tra i due portali venga definitivamente colmato entro la fine dell’estate e a breve Microsoft annuncerà la data per la dismissione definitiva del portale OMS.

Figura 1 – Notifiche presenti nel portale OMS

Figura 2 – Overview di Log Analytics nel portale Azure

Cosa comporta questo cambiamento?

La dismissione del portale OMS, oltre a un evidente cambio nella user experience, comporta anche un cambio nell’utilizzo di Log Analytics per gli aspetti in seguito riportati.

Gestione degli alert

Anziché utilizzare la solution di Alert management di Log Analytics è necessario utilizzare Azure Monitor che, oltre a consentire di monitorare tutte le risorse Azure borne, detiene anche l’engine di “alerting” per l’intera piattaforma cloud. Nell’articolo “L’estensione degli Alerts di Log Analytics in Azure Monitor” viene presentata la nuova gestione degli Alerts in Log Analytics e i relativi benefici introdotti da questa evoluzione.

Autorizzazioni per accedere al portale

La gestione degli accessi nel portale Azure, basata su role-based access control (RBAC), è sicuramente più flessibile e potente rispetto a quella presente nel portale OMS. Azure di default prevede questi due built-in user roles per Log Analytics:

  • Log Analytics Reader
  • Log Analytics Contributor

Per i dettagli riguardanti la gestione degli accessi di Log Analytics dal portale Azure è possibile consultare questa documentazione. A partire dal 25 giugno avrà inizio il processo di conversione automatico, durante il quale ogni utente o gruppo di security presente nel portale OMS verrà riportato nel portale Azure con il ruolo opportuno, secondo la seguente associazione:

Figura 3 – Associazione permessi portale OMS e ruoli in Azure

Mobile App

Così come per il portale OMS, anche la mobile app di OMS sarà deprecata. Al suo posto è possibile accedere al portale Azure direttamente dal browser del dispositivo mobile, in attesa di future estensioni dell’App Mobile di Azure. Per ricevere le notifiche sui dispositivi mobile, quando si generano degli alert, è possibile utilizzare gli Azure Action Groups.

Application Insights Connector

L’Application Insights Connector viene utilizzato per riportare i dati di Application Insights all’interno del workspace di Log Analytics. Questo connector non è più necessario e sarà deprecato, dal mese di Novembre di quest’anno, visto che la stessa funzionalità la si può ottenere utilizzando queries cross-resource.

Azure Network Security Group Analytics

La solution  Azure Network Security Group Analytics sarà sostituita da Traffic Analytics, accessibile solamente dal portale Azure. Per maggiori dettagli su questo nuovo strumento è possibile consultare l’articolo “Come monitora le attività di rete nel cloud Azure con Traffic Analytics

 

Attuali mancanze nel portale Azure

Ad oggi viene imposto l’utilizzo del portale OMS, a chi utilizza le seguenti solution, in quanto non sono totalmente utilizzabili nel portale Azure:

Microsoft sta lavorando per aggiornare queste solution e renderle disponibili utilizzando il portale Azure. Per rimanere aggiornati su cambiamenti in merito è possibile fare riferimento alla pagina degli Azure Updates.

 

Considerazioni

Per la gestione di Log Analytics è consigliabile utilizzare fin da oggi il portale Azure, il quale consente di adottare nuovi strumenti, di beneficiare della migliore experience offerta, e di usufruire delle funzionalità note del portale, come le dashboards, le ricerche, e il tagging per la gestione delle risorse. Il portale OMS è destinato a breve alla dismissione definitiva, ma può essere ancora necessario utilizzarlo nel caso si debbano utilizzare le solution non ancora compatibili (sopra riportate), in attesa di un loro imminente aggiornamento che le renderà totalmente funzionanti con il portale Azure.

Azure Backup: la protezione di SQL Server sulle macchine virtuali in Azure

Azure Backup si arricchisce con una nuova importante funzionalità che consente di proteggere in modo nativo i workload SQL, in esecuzione sulle macchine virtuali IaaS che risiedono su Azure. In questo articolo si esploreranno i benefici introdotti e le caratteristiche di questa nuova funzionalità.

Figura 1 – Protezione con Azure Backup di SQL Server su VMs Azure

Azure Backup ci ha da sempre abituato ad un approccio cloud-first consentendo di effettuare la protezione dei sistemi in modo rapido, sicuro ed efficace. La protezione di SQL Server sulle macchine virtuali IaaS di Azure fornisce una soluzione unica nel suo genere, caratterizzata dai seguenti elementi:

  • Zero-infrastructure backup: non è necessario gestire una infrastruttura di backup classica, composta dal server di backup, dai vari agenti installati sui sistemi e dallo storage su cui risiedono i backup. Inoltre, non è nemmeno richiesto l’utilizzo di script di backup, spesso necessari in altre soluzioni di backup, per la protezione di SQL Server.
  • Monitor dei backup tramite Recovery Services Vault: utilizzando la dashboard è possibile monitorare facilmente e in modo intuitivo i vari job di backup per tutte le tipologie di workload protetti: Azure IaaS VMs, Azure Files e SQL server databases. Risulta inoltre possibile configurare notifiche via mail a fronte di operazioni di backup o restore non andate a buon fine.
  • Gestione centralizzata: si ha la possibilità di configurare delle policy di protezione comuni, utilizzabili per database che risiedono su server distinti, dove viene definita la schedulazione e la retention per i backup short-term e long-term.
  • Restore dei DB a una data e ora precisa: grazie ad una intuitiva interfaccia grafica viene consentito all’operatore di effettuare il restore selezionando il recovery point più opportuno per la data selezionata. Azure Backup si preoccuperà di gestire il ripristino del backup full, differenziale e della catena dei backup log per poter ottenere il ripristino del database all’ora selezionata.
  • Recovery Point Objective (RPO) di 15 minuti: si può effettuare il backup dei transaction log con una frequenza di 15 minuti.
  • Servizio Pay as you go (PAYG): la fatturazione avviene mensilmente sulla base dei consumi e non sono previsti costi anticipati per il servizio.
  • Integrazione nativa con le API di SQL Server: Azure Backup richiama le API native della soluzione per garantire una elevata efficienza e affidabilità delle operazioni svolte. I job di backup possono essere consultati anche utilizzando SQL Server Management Studio (SSMS).
  • Supporto per gli Always On Availability Group: la soluzione è in grado di effettuare il backup dei database che risiedono all’interno di un Availability Group (AG), garantendo la protezione in caso di eventi di failover, onorando la backup preference impostata a livello di AG.

Questa nuova funzionalità supporta al momento le seguenti versioni del sistema operativo e di SQL Server, indipendentemente che siano VMs generate da una immagine del marketplace o meno (installazione di SQL Server effettuata manualmente).

Sistemi Operativi supportati

  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016

Linux, al momento, non è supportato.

VersioniEdizioni di SQL Server supportate

  • SQL 2012 Enterprise, Standard, Web, Developer, Express
  • SQL 2014 Enterprise, Standard, Web, Developer, Express
  • SQL 2016 Enterprise, Standard, Web, Developer, Express
  • SQL 2017 Enterprise, Standard, Web, Developer, Express

Per poter usufruire di questa funzionalità devono essere rispettati i seguenti requisiti:

  • Disporre di un Recovery Services vault nella stessa region Azure dove risiede la macchina virtuale che ospita i database SQL da proteggere.
  • La macchina virtuale con SQL Server necessità di connettività verso gli IP pubblici di Azure.
  • Sulla macchina virtuale che detiene i database da proteggere devono essere presenti specifiche impostazioni. Azure Backup richiede la presenza della VM extension AzureBackupWindowsWorkload. Tale extension viene installata sulla macchina virtuale durante il processo di discovery e consente la comunicazione con il servizio di Azure Backup. L’installazione dell’extension comporta la creazione sulla VM, da parte di Azure Backup, del Windows virtual service account denominato NT Service\AzureWLBackupPluginSvc. Questo virtual service account necessita permessi di log in e di sysadmin lato SQL, per proteggere i database.

Per abilitare il backup dei workload SQL a bordo delle macchine virtuali Azure è necessario effettuare un processo di discovery e successivamente è possibile configurare le politiche di protezione.

Processo di discovery

Si riporta la procedura da seguire, accedendo al portale Azure, per abilitare il discovery dei database:

Figura 2 – Avvio del processo di discovery

Figura 3 – Discovery in progress

Figura 4 – Discovery dei DBs sui sistemi selezionati

 

Configurazione dei backup di SQL

Completata la fase di discovery dei database è possibile procedere con la configurazione dei backup di SQL Server.

Figura 5 – Avvio della configurazione dei backup, post discovery dei DBs nelle VMs

Figura 6 – Selezione dei DBs da proteggere

Figura 7 – Creazione della policy che definisce la tipologia di backup di SQL e la retention dei dati

Figura 8 – Abilitazione del backup

 

Monitor dei backup e processo di restore

Figura 9 – Dashboard del Recovery Service vault

Figura 10 – Numero di backup items di SQL a bordo delle VMs Azure

Figura 11 – Stato dei backup di SQL

Selezionando il singolo DB è possibile avviare il processo di restore.

Figura 12 – Avvio del processo di restore del DB

Figura 13 – Selezione della destinazione dove ripristinare il DB

Figura 14 – Selezione del restore point da utilizzare

Figura 15 – Configurazione delle impostazioni di restore e delle directory dove posizionare i file

Figura 16 – Avvio del job di restore

 

Costo della soluzione

Il costo per la protezione di SQL Server in Azure Backup è dato dal numero di istanze protette (singole VMs Azure oppure Availability Groups). Il costo di una singola istanza protetta dipende dal size, il quale è determinato dalla dimensione complessiva dei vari DB protetti (senza tenere in considerazione il fattore di compressione e l’encryption). A questo costo è da aggiungere il costo dello storage Azure effettivamente consumato. Si tratta di Block Blob Storage di tipologia locally redundant storage (LRS) oppure geo-redundant storage (GRS). Per maggiori dettagli sui costi è possibile consultare la pagina ufficiale Microsoft.

 

Conclusioni

Azure Backup si arricchisce con una importante funzionalità e conferma di essere un’ottima soluzione enterprise per la protezione dei sistemi, ovunque essi si trovino. Grazie a questa funzionalità Azure si distingue da qualsiasi altro cloud pubblico, mettendo a disposizione una soluzione per la protezione di SQL Server a bordo delle macchine virtuali IaaS, totalmente integrata nella platform. Per maggiori informazioni sulla soluzione Azure Backup è possibile consultare la documentazione ufficiale.

Tutto quello che bisogna sapere sui nuovi Load Balancer di Azure

Microsoft ha recentemente annunciato la disponibilità in Azure degli Standard Load Balancer. Si tratta di load balancer Layer-4, per i protocolli TCP e UDP che, rispetto ai Basic Load Balancer, introducono dei miglioramenti e consentono di avere un controllo più granulare di determinate funzionalità. In questo articolo verranno riportate le caratteristiche principali degli Standard Load Balancer di Azure, al fine di poter avere gli elementi necessari per scegliere la tipologia di bilanciatore più opportuna per le proprie esigenze.

Qualsiasi scenario dove è possibile utilizzare la SKU Basic degli Azure Load Balancer, può essere soddisfatto anche utilizzando la SKU Standard, ma le due tipologie di bilanciatori presentano importanti differenze in termini di scalabilità, funzionalità, livelli di servizio garantito e costo.

Scalabilità

I Load Balancer Standard hanno una maggiore scalabilità, rispetto ai Basic Load Balancer, per quanto riguarda il numero massimo delle istanze (IP Configuration) che possono essere configurate nei pool di backend. La SKU Basic consente di avere fino a 100 istanze, mentre utilizzando la SKU Standard il numero massimo di istanze è pari a 1000.

Funzionalità

Backend pool

Per quanto riguarda i Basic Load Balancer, nei pool di backend, possono risiedere in modo esclusivo:

  • Macchine virtuali che si trovano all’interno di un availability set.
  • Una singola VM standalone.
  • Virtual Machine Scale Set.

Figura 1 – Associazioni possibili nei backend pool dei Basic Load Balancer

Negli Standard Load Balancer invece è consentito inserire nei pool di backend qualsiasi macchina virtuale attestata su una determinata virtual network. Lo scope di integrazione in questo caso non è infatti l’availability set, come per i load balancer Basic, ma è la virtual network e tutti i relativi concetti ad essa associati. Un requisito da tenere in considerazione, per poter inserire nei backend pool degli Standard Load Balancer le macchine virtuali, è che queste non devono avere IP pubblici associati oppure devono avere IP Pubblici con SKU Standard.

Figura 2 – Associazione nei backend pool degli Standard Load Balancer

Availability Zones

Gli Standard Load Balancer contemplano scenari di integrazione con le Availability Zones, nelle region che comprendono questa funzionalità. Per maggiori dettagli a riguardo è possibile consultare questo specifico documento Microsoft, che riporta i concetti principali e le linee guida di implementazione.

Alta disponibilità delle porte

I load balancer con SKU Standard, di tipologia “Internal”, consentono di bilanciare i flussi TCP e UDP su tutte le porte simultaneamente. Per farlo, nella regola di load-balancing, c’è la possibilità di abilitare l’opzione “HA Ports”:

Figura 3 – Configurazione rule di bilaciamento con opzione “HA Ports” abilitata

Il bilanciamento avviene per flusso, il quale è determinato dai seguenti elementi: source IP address, source port, destination IP address, destination port, e protocollo. Questa funzionalità risulta particolarmente utile in scenari dove vengono utilizzate delle Network Virtual Appliances (NVAs) che richiedono scalabilità. Questa nuova funzionalità consente di migliorare le attività richieste relative ad implementazioni in HA delle NVAs.

Figura 4 – Architettura di rete che prevede l’utilizzo del LB con opzione “HA Ports” abilitata

Un altro possibile utilizzo di questa funzionalità è quando si ha la necessità di bilanciare un elevato numero di porte.

Per maggiori dettagli in merito all’opzione “HA Ports” è possibile consultare la documentazione ufficiale.

Diagnostica

I Load Balancer Standard introducono le seguenti funzionalità in termini di capacità diagnostica:

  • Multi-dimensional metrics: si possono recuperare differenti metriche che consentono di consultare, in tempo reale, lo stato di utilizzo dei load balancer, sia pubblici che interni. Queste informazioni risultano particolarmente utili anche per operazioni di troubleshooting.

Figura 5 – Metriche dei Load Balancer dal portale Azure

  • Resource Health: in Azure Monitor si ha la possibilità di consultare lo stato di salute dei Load Balancer Standard (al momento disponibile solo per i Load Balancer Standard di tipologia Public).

Figura 6 – Resource health del Load Balancer in Azure Monitor

Si può inoltre consultare lo storico dello stato di health:

Figura 7 – Health history del Load Balancer

Tutti i dettagli relativi alla diagnostica, dei Load Balancer Standard, possono essere consultati nella documentazione ufficiale.

Sicurezza

I Load Balancer con SKU standard sono configurati di default in modo sicuro in quanto, per consentire il funzionamento, è necessario avere un Network Security Group (NSG) dove il flusso di traffico viene consentito in modo esplicito. Come riportato in precedenza, i Load Balancer Standard sono completamente integrati nella virtual network, la quale è caratterizzata dal fatto che è privata e di conseguenza chiusa. I Load Balancer Standard e gli IP Pubblici Standard vengono utilizzati per consentire l’accesso alle virtual network dall’esterno e ora di default è necessario configurare un Network Security Group (chiuso di default) per consentire il traffico voluto. Nel caso non sia presente un NSG, attestato sulla subnet oppure sulla NIC della macchina virtuale, non sarà consentito il relativo accesso da parte del flusso di rete proveniente dal Load Balancer Standard.

I Load Balancer Basic sono invece di default aperti e la configurazione di un Network Security Group è opzionale.

Connessioni in Outbound

I Load Balancer in Azure supportano scenari di connettività sia in inbound che in outbound. I Load Balancer Standard, rispetto ai Load Balancer Basic, si comportano in modo differente per quanto riguarda le connessioni in outbound.

Per effettuare il mapping degli indirizzamenti IP interni e privati della propria virtual network verso gli indirizzi IP pubblici dei Load Balancer viene utilizzata la tecnica Source Network Address Translation (SNAT). I Load Balancer Standard introducono un nuovo algoritmo per avere politiche di SNAT più robuste, scalabili e precise, che consentono di avere una maggiore flessibilità e di disporre di nuove funzionalità.

Utilizzando i Load Balancer Standard è opportuno considerare i seguenti aspetti per quanto riguarda gli scenari di outbound:

  • Devono essere creati in modo esplicito per consentire alle macchine virtuali la connettività in uscita e sono definiti sulla base delle regole di bilanciamento in ingresso.
  • Le regole di bilanciamento definiscono come avvengono le politiche di SNAT.
  • In presenza di più frontend, vengono utilizzati tutti i frontend e per ognuno di questi si moltiplicano le porte SNAT preallocate disponibili.
  • Si ha la possibilità di scegliere e controllare se uno specifico frontend non lo si vuole utilizzare per le connessioni in uscita.

Nei Basic Load Balancer, in presenza di più frontend IP Pubblici, viene scelto un singolo frontend per essere utilizzato nei flussi in uscita. Questa selezione non può essere configurata e avviene in modo casuale.

Per designare un indirizzo IP specifico è possibile seguire la procedura descritta in questa sezione della documentazione Microsoft.

Operazioni di Management

I Load Balancer di tipologia Standard consentono l’abilitazione delle operazioni di management in modo più rapido, tanto da portare i tempi di esecuzione di queste operazioni al di sotto dei 30 secondi (contro i 60-90 secondi necessari per i Load Balancer con SKU Basic). I tempi di modifica dei pool di backend sono dipendenti anche dalla dimensione degli stessi.

Altre differenze

Al momento per i Public Load Balancer di tipologia Standard non è possibile prevedere l’utilizzo di un indirizzo IPv6 pubblico:

Figura 8 – IPv6 pubblico per i Public Load Balancer

 

Service-Level Agreement (SLA)

Un importante aspetto da tenere in considerazione, nella scelta della SKU più opportuna per le diverse architetture, è il livello di servizio che si deve garantire (SLA). Utilizzando i Load Balancer Standard viene garantito che un Load Balancer Endpoint, che serve due o più istanze di macchine virtuali in stato di salute, sarà disponibile temporalmente con uno SLA del 99.99%.

I Load Balancer Basic non garantisco questo SLA.

Per maggiori dettagli a riguardo è possibile consultare l’articolo specifico SLA for Load Balancer.

 

Costo

Mentre per i Load Balancer Basic non sono previsti dei costi, per i Load Balancer Standard sono previsti dei costi di utilizzo in base ai seguenti elementi:

  • Numero delle regole di load balancing configurate.
  • Quantità dei dati processati in ingresso e in uscita.

Non sono invece previsti costi specifici per le regole di NAT.

Nella pagina dei costi dei Load Balancer possono essere consultati i dettagli e le cifre.

 

Migrazione tra SKUs

Per i Load Balancer non è previsto il passaggio dalla SKU Basic alla SKU Standard e viceversa. Ma è necessario prevedere una migrazione in side by side, tenendo in considerazione le differenze funzionali precedentemente descritte.

 

Conclusioni

L’introduzione dei Load Balancer Standard in Azure consente di disporre di nuove funzionalità e garantiscono una maggiore scalabilità. Queste caratteristiche potrebbero consentire di non dover utilizzare, in scenari specifici, soluzioni di bilanciamento offerte da vendor di terze parti. Rispetto ai Load Balancer tradizionali (SKU Basic) cambiano diversi principi di funzionamento e hanno caratteristiche distinte in termini di costi e SLA, che è bene valutare attentamente per poter scegliere la tipologia di Load Balancer più opportuna, sulla base dell’architettura che si deve realizzare.

OMS e System Center: novità di Maggio 2018

Rispetto a quanto siamo stati abituati a vedere nei mesi scorsi, nel mese di maggio, sono state annunciate da Microsoft un numero ridotto di novità riguardanti Operations Management Suite (OMS) e System Center. In questo articolo verranno riepilogate riportando i riferimenti necessari per effettuare ulteriori approfondimenti.

Operations Management Suite (OMS)

Log Analytics

Microsoft ha annunciato il ritiro, a partire dall’8 Giugno 2018, delle seguenti solution:

Questo significa che, a partire da questa data, non sarà più possibile aggiungerle nei workspaces di Log Analytics. Per coloro che le stanno attualmente utilizzando è opportuno tenere in considerazione che le solution continueranno a funzionare, ma verrà a mancare il relativo supporto e non saranno rilasciati nuovi aggiornamenti.

In questo articolo vengono riportate alcune importanti raccomandazioni che è opportuno seguire quando si utilizzano gli operatori “Summarize” e “Join” nelle query di Log Analytics e Application Insights. Si consiglia di adeguare la sintassi di eventuali query esistenti, che utilizzano questi operatori, per rispettare le specifiche riportate nell’articolo.

Security e Audit

Si segnala questo interessante articolo dove viene riportato come è possibile rilevare ed investigare attività anomale e potenzialmente malevole utilizzando Log Analytics ed Azure Security Center.

Azure Site Recovery

Microsoft ha annunciato che le seguenti versioni delle REST API di Azure Site Recovery saranno deprecate a partire dal 31 Luglio 2018:

  • 2014-10-27
  • 2015-02-10
  • 2015-04-10
  • 2015-06-10
  • 2015-08-10

Sarà quindi necessario utilizzare le API almeno della versione 2016-08-10 per interfacciarsi con Azure Site Recovery. Questo tipo di modifica non ha nessun impatto sul portale di Azure Site Recovery e sull’accesso alla soluzione tramite PowerShell.

System Center

System Center Orchestrator

Gli Integration Pack di Orchestrator, versione 7.3 per System Center 2016, sono stati rilasciati.
Il download può essere effettuato a questo indirizzo e include i seguenti componenti:

  • System Center 2016 Integration Pack per System Center 2016 Configuration Manager.
  • System Center 2016 Integration Pack per System Center 2016 Data Protection Manager.
  • System Center 2016 Integration Pack per System Center 2016 Operations Manager.
  • System Center 2016 Integration Pack per System Center 2016 Service Manager.
  • System Center 2016 Integration Pack per System Center 2016 Virtual Machine Manager.

Questi Integration Pack consentono di sviluppare delle automazioni, interfacciandosi direttamente anche con gli altri componenti di System Center. L’Integration Pack di System Center 2016 Operations Manager è stato rivisto per non richiedere più la presenza della console di Operations Manager per funzionare in modo corretto.

System Center Operations Manager

In seguito, si riportano gli aggiornamenti rilasciati per i Management Pack di Operations Manager:

  • Active Directory Federation Services versione 10.0.1.0
  • Active Directory Federation Services 2012 R2 versione 7.1.10100.1

System Center Service Management Automation

Service Management Automation vede il rilascio dell’Update Rollup 5. Tra le problematiche risolte troviamo:

  • Runbooks che, utilizzando cmdlets di System Center 2016 Service Manager, falliscono con l’errore “MissingMethodException”.
  • Runbooks che falliscono con l’exception “unauthorized access”.

Sono stati inoltre apportati miglioramenti nella parte di debug logging.

Per consultare l’elenco completo dei problemi risolti e i dettagli da seguire per effettuare l’aggiornamento è possibile accedere alla relativa knowledge base.

 

Valutazione di OMS e System Center

Si ricorda che per testare e valutare in modo gratuito Operations Management Suite (OMS) è possibile accedere a questa pagina e selezionare la modalità che si ritiene più idonea per le proprie esigenze.

Per provare i vari componenti di System Center 2016 è possibile accedere all’Evaluation Center e dopo essersi registrati è possibile avviare il periodo di trial.

Azure SQL Database: come gestire la connettività con i vNet Service Endpoints

Per avere un maggiore controllo sugli accessi che vengono effettuati sugli Azure SQL Database, lo scorso mese, Microsoft ha rilasciato pubblicamente la possibilità di abilitare i Virtual Network (vNet) Service Endpoints per i SQL Database. In questo articolo verrà spiegato il principio di funzionamento, con i benefici che ne derivano, e verrà mostrata la relativa configurazione.

Caratteristiche e principi di funzionamento

I vNet Service Endpoints per gli Azure SQL Database consentono di isolare maggiormente i SQL Server logici presenti nel cloud Microsoft, garantendo l’accesso solamente da una o più subnet definite nelle proprie Virtual Network di Azure. Questa funzionalità garantisce che tutto il traffico generato dalle proprie vNet verso l’Azure SQL Database rimarrà sempre all’interno della rete di backbone di Azure. Si tratta di una funzionalità disponibile in tutte le region di Azure e non sono previsti costi aggiuntivi per il relativo utilizzo.

Figura 1 – Schema di sintesi dell’architettura

Sul firewall degli Azure SQL Database rimane la possibilità di abilitare la comunicazione da parte dei servizi Azure e di filtrare gli accessi sulla base di un range di IP Pubblici.

Figura 2 – Impostazioni firewall di Azure SQL Server

Abilitando l’impostazione “Allow access to Azure services” viene consentito l’accesso al SQL Server da tutti gli indirizzamenti IP pubblici di Azure e da tutte le subnet di Azure, comprese quelle non di propria appartenenza. Andando ad applicare ulteriori filtri sulla base dell’IP pubblico che si deve connettere può diventare di difficile gestione e richiedere la configurazione di indirizzi IP pubblici statici sulle risorse di Azure.

Grazie all’introduzione dei Virtual Network (vNet) Service Endpoints per SQL Server è possibile avere un maggiore controllo sulle potenziali comunicazioni e un minor effort di gestione delle risorse. Il principio di funzionamento dei vNet Service Endpoints non si estende al mondo on-premises anche in presenza di connettività con Azure (VPN oppure ExpressRoute), ma per consentire l’accesso da sistemi presenti on-premises è necessario continuare ad utilizzare le regole firewall per limitare la connettività solamente agli IP pubblici di propria appartenenza.

I Virtual Network (vNet) Service Endpoints sono disponibili, con lo stesso principio di funzionamento, anche per Azure Storage e per Azure SQL Datawarehouse (al momento in preview).

Come effettuare la configurazione

L’abilitazione dei vNet Service Endpoints richiede l’attivazione sulla subnet della virtual network di Azure, dalla quale ci si intende connettere al SQL Server, dell’Enpoint di SQL Server (Microsoft.SQL).

Figura 3 – Abilitazione del SQL Server Service Endpoint sulla subnet

Figura 4 – Service Endpoint di SQL Server abilitato con successo sulla subnet

Successivamente è necessario aggiungere lato SQL Database la virtual network, con il Service Endpoint abilitato, nella sezione Firewall and virtual networks.

Figura 5 – Aggiunta Virtual Network con Service Endpoint di SQL Server abilitato

Ogni Virtual Network Rule viene applicata a livello di Azure SQL Database server e non a livello di singolo database.

Questo tipo di configurazione comporta che collegandosi ai DB ospitati dall’Azure SQL Server da una macchina attestata su una vNet con i Service Endpoint abilitati, verrà utilizzato come source IP un indirizzo appartenente all’address space della vNet. Questo aspetto è da tenere in considerazione, in configurazioni esistenti, per evitare che quando si attiva il SQL Server Service Endpoint sulla subnet, venga bloccato l’accesso al SQL Server. A questo scopo è possibile evitare il blocco consentendo temporaneamente l’accesso tramite l’impostazione “Allow access to Azure services”, oppure definendo la vNet nelle firewall rule del SQL Server prima di abilitare il Service Endpoint sulla subnet. Per farlo è necessario utilizzando il flag IgnoreMissingServiceEndpoint oppure selezionare il flag seguente presente nel portale Azure:

Figura 6 – Aggiunta Virtual Network senza Service Endpoint di SQL Server abilitato

Conclusioni

I Virtual Network (vNet) Service Endpoints sono in grado di estendere le proprie virtual network di Azure e la relativa identità verso determinati servizi di Azure, come Azure SQL Server, tramite una connessione diretta. Questo consente di aumentare il livello di sicurezza dei propri servizi presenti nel cloud Microsoft, di ottimizzare il routing per accedere alle risorse Azure dalle proprie vNet e di diminuire l’effort di gestione, il tutto con pochi semplici passaggi.

Creazione di un ambiente Docker in Azure tramite VM Extension

Docker è una piattaforma software che consente di creare, gestire ed eseguire applicazioni isolate in containers. Un container non è altro che una metodologia di creazione dei pacchetti software in un formato che permette di essere eseguito in modo indipendente ed isolato su un sistema operativo condiviso. I containers a differenza delle machine virtuali non comprendono un sistema operativo completo, ma solamente le librerie e le impostazioni necessarie per consentire l’esecuzione del software. Ne derivano quindi una serie di vantaggi in termini di dimensione, velocità, portabilità e gestione delle risorse.

 
Figura 1 – Diagramma dei Container

 

Nel mondo Microsoft Azure ci sono svariate possibilità di configurare ed utilizzare container Docker che vi elenco sinteticamente:

  • VM Extension: tramite una Extension specifica è possibile implementare Docker all’interno di una macchina virtuale.
  • Azure Container Service: consente di distribuire rapidamente nell’ambiente Azure un cluster Docker Swarm, DC/OS o Kubernetes pronto per la produzione. Si tratta della soluzione più completa per l’orchestrazione dei container.
  • Docker EE for Azure: è un template disponibile sull’Azure Marketplace, frutto della collaborazione tra Microsoft e Docker, grazie al quale è possibile fare il provisioning di un cluster Docker Enterprise Edition sfruttando l’integrazione con gli Azure VM Scale Sets, gli Azure Load Balancer e l’Azure Storage.
  • RancherOS: è una distribuzione Linux appositamente creata per l’esecuzione di containers Docker disponibile come template all’interno del Marketplace Azure.
  • Web App for Containers: viene offerta la possibilità di utilizzare containers facendone il deployment nella piattaforma gestita degli Azure App Service come Web App in esecuzione in un ambiente Linux.
  • Azure Container Instances (attualmente in preview): è sicuramente il metodo più semplice e rapido per eseguire un container Docker nella piattaforma Azure, senza la necessità di creare macchine virtuali, ideale in scenari che prevedono containers isolati.
  • Azure Service Fabric: supporta i containers sia nell’ambiente Windows che Linux. La piattaforma contiene in modo nativo il supporto per Docker Compose (attualmente in preview), consentendo di orchestrare applicazioni basate su containers nell’Azure Service Fabric.
  • DC/OS su Azure: si tratta di un servizio cloud gestito che mette a disposizione un ambiente per il deployment di workload in cluster utilizzando la piattaforma DC/OS (Datacenter Operating System).

Tutte queste possibilità offerte consentono, in base alle esigenze e allo scenario che si deve implementare, di scegliere la metodologia di deployment più opportuna nell’ambiente Azure per l’esecuzione dei container Docker.

In questo articolo approfondiremo la creazione di un ambiente Docker utilizzando l’apposita Virtual Machine Extension. Partendo da una macchina virtuale presente in Azure è possibile aggiungere la Docker Extension che installa e configura il daemon Docker, il client Docker e il Docker Compose.

Questa extension è supportata per le seguenti distribuzioni Linux:

  • Ubuntu 13 o superiore.
  • CentOS 7.1 o superiore.
  • Red Hat Enterprise Linux (RHEL) 7.1 o superiore.
  • CoreOS 899 o superiore.

L’aggiunta dell’extension dal portale Azure può essere fatta tramite i seguenti step. Nella sezione Extensions della macchina virtuale seleziono il pulsante Add:

Figura 2 – Aggiunta Extension alla VM dal portale Azure

 

Successivamente viene mostrato l’elenco delle Extension disponibili, ci si posiziona sull’Extension Docker e si preme il pulsante Create.

Figura 3 – Selezione dell’Extension Docker

 

Per consentire una comunicazione sicura con il sistema Docker implementato nell’ambiente Azure è necessario utilizzare dei certificati e delle chiavi rilasciati da una CA trusted. Se non si dispone di una CA per generare questi certificati è possibile seguire le indicazioni riportate nella sezione Create a CA, server and client keys with OpenSSL presente nella documentazione ufficiale di Docker.

 

Figura 4 – Schema di comunicazione docker tramite protocollo crittografato TLS

 

Il wizard di aggiunta dell’Extension richiede come prima cosa di inserire la porta di comunicazione utilizzata dell’Engine Docker (2376 è la porta di default). Inoltre è richiesto l’inserimento del certificato della CA, del certificato Server e della Server Key, tutti nel formato base64-encoded:

Figura 5 – Parametri richiesti dal wizard di aggiunta della Docker VM Extension

 

L’aggiunta dell’Extension Docker richiede alcuni minuti al termine dei quali sulla macchina virtuale sarà presente l’installazione dell’ultima versione stabile del Docker Engine e il daemon Docker sarà in ascolto sulla porta specificata utilizzando i certificati inseriti nel wizard.

Figura 6 – Dettagli dell’Extension Docker

 

Nel caso sia necessario consentire la comunicazione Docker dall’esterno della vNet su cui è attestata la macchina virtuale con Docker è necessario configurare in modo opportuno le regole nel Network Security Group utilizzato:

Figura 7 – Esempio di configurazione NSG per consentire comunicazione Docker (porta 2376)

 

Giunti a questo punto l’ambiente è pronto per essere utilizzato e da un client remoto posso iniziare a comunicare verso l’ambiente Docker appena configurato:

Figura 8 – Comando Docker eseguito da un client remoto per recuperare informazioni

 

Conclusioni

L’Azure Docker VM extension è ideale per implementare facilmente e in modo affidabile e sicuro un ambiente Docker di sviluppo oppure di produzione su una singola macchina virtuale. Microsoft Azure offre un’ampia gamma di possibilità nelle scelte di implementazione relative alla piattaforma Docker, consentendo di scegliere con molta flessibilità la soluzione più idonea per le proprie esigenze.

Azure Multi-Factor Authentication: Introduzione alla Soluzione

Per rendere più sicuro l’accesso ai dati e alle applicazioni critiche può essere necessario prevedere l’autenticazione a più fattori che generalmente richiede l’utilizzo di almeno due dei seguenti metodi di verifica:

 

  • Qualcosa che si conosce (tipicamente una password).
  • Qualcosa che si possiede (un dispositivo unico e non facilmente duplicabile, come ad esempio un telefono).
  • Un sistema di riconoscimento biometrico che ha lo scopo di identificare una persona sulla base di una o più caratteristiche biologiche o comportamentali (biometria).

 

Microsoft consente di adottare una soluzione di autenticazione a due fattori utilizzando l’Azure Multi-Factor Authentication (MFA) che prevede l’adozione di un secondo metodo di verifica dell’identità durante il processo di autenticazione. Utilizzando questa soluzione sono configurabili i seguenti fattori di autenticazione aggiuntivi:

 

  • Chiamata telefonica: viene effettuata una chiamata verso il telefono registrato per l’utenza. In questo caso verrà richiesto all’utente di rispondere alla chiamata e di verificare l’accesso premendo il pulsante # oppure inserendo un codice PIN.
  • Messaggio di testo (SMS): viene inviato al cellulare dell’utente un SMS che contiene un codice pin di 6 cifre il quale dovrà essere inserito durante il processo di autenticazione.
  • Notifica tramite Mobile App: sullo smartphone dell’utente viene inviata tramite Mobile App una richiesta di verifica che deve essere approvata dall’utente per completare il processo di autenticazione.
  • Codice di verifica tramite Mobile App: nella Mobile App presente sullo smartphone dell’utente viene generato un codice di 6 cifre ogni 30 secondi. L’utente dovrà quindi inserire il codice più recente nel momento in cui effettua l’autenticazione.
  • Token OATH di terze parti: c’è la possibilità di configurare Azure Multi-Factor Authentication per accettare metodi di verifica messi a disposizione da soluzione di terze parti.

 

L’Azure Multi-Factor Authentication (MFA) prevede due possibili modelli di deployment:

 

  • MFA come soluzione interamente nel Cloud.
  • Sistema MFA installato e configurato su sistemi on-premises.

 

Per individuare il modello di deployment più opportuno è necessario prendere in considerazione diversi aspetti: cosa sto mettendo in sicurezza, dove si trovano gli utenti che devono accedere alla soluzione e di quali funzionalità ho realmente bisogno.

 

Cosa si sta Tentando di Proteggere?

Questa è sicuramente la prima domanda che occorre porsi la cui risposta ci può già indirizzare a un modello di deployment specifico. Nel caso infatti ci sia la necessità di abilitare il doppio fattore di autenticazione per applicazioni IIS non pubblicate tramite Azure AD App Proxy oppure soluzioni di accesso remoto (VPN oppure Remote Desktop Gateway) è necessario utilizzare il server Azure MFA implementato sui sistemi on-premises.

 

Figura 1 – Cosa si intende proteggere tramite MFA

 

Dove si Trovano gli Utenti?

Un altro aspetto importante da tenere in considerazione è dove si trovano gli utenti sulla base del modello di Identity adottato, come mostra la figura 2.

 

Figura 2 – Ubicazione degli utenti

 

Quali funzionalità sono necessarie?

A seconda del modello di deployment scelto (MFA nel cloud oppure MFA locale) sono disponibili funzionalità differenti che ci potrebbero far optare per una scelta piuttosto che per un’altra, come mostra la figura 3.

 

Figura 3 – Funzionalità MFA disponibili nei due modelli

 

Requisiti necessari per l’utilizzo della MFA

Per poter utilizzare l’Azure Multi-Factor Authentication (MFA) è necessario avere accesso a una subscription Azure. Nel caso si volesse testare il servizio è possibile eventualmente utilizzare una subscription di trial di Azure.

 

I requisiti hardware per quanto riguarda l’Azure Multi-Factor Authentication Server sono minimi (200 MB di spazio disco e 1 GB di RAM), mentre sono richieste le seguenti caratteristiche software:

 

  • Sistema Operativo: Windows Server 2008 R2 o superiore
  • Microsoft .NET 4.0 Framework
  • IIS 7.0 o superiore se si vuole installare lo User Portal oppure il Web Service SDK

 

Ogni server MFA deve essere in grado di comunicare sulla porta 443 in uscita verso i seguenti indirizzi web:

 

  • https://pfd.phonefactor.net
  • https://pfd2.phonefactor.net
  • https://css.phonefactor.net

 

Inoltre nel caso ci siano policy firewall di blocco in uscita verso la porta 443 è necessario aprire i range di indirizzi IP documentati nel paragrafo “Azure Multi-Factor Authentication Server firewall requirements” della documentazione ufficiale Microsoft.

 

Azure Multi-Factor Authentication nel cloud

L’abilitazione della MFA nello scenario cloud è molto semplice ed avviene per utente. Per farlo è necessario accedere al servizio Azure Active Directory, figura 4, dal portale Azure:

 

Figura 4 – Step 1: abilitazione MFA nel cloud

 

Dopo aver selezionato la Directory, nella sezione “Users and groups” selezionare “Multi-Factor Authentication”:

 

Figura 5 – Step 2: abilitazione MFA nel cloud

 

Si verrà rediretti su un altro portale dove selezionando l’utente specifico, figura 6, è possibile abilitare la MFA:

 

Figura 6 – Step 3: abilitazione MFA nel cloud

 

Giunti a questo punto l’utente sarà abilitato all’utilizzo della MFA. La stessa operazione può essere fatta anche selezionando più utenti contemporaneamente e dallo stesso portale è possibile configurare le varie impostazioni dell’Azure Multi-Factor Authentication. Per maggiori dettagli a riguardo vi invito a consultare la documentazione ufficiale Microsoft.

 

La stessa operazione può essere portata a termine anche utilizzando i cmdlet Powershell per Azure AD i quali ci consentono facilmente di effettuare l’abilitazione della MFA per più utenti con poche righe di codice, come riportato nell’esempio seguente:

 

$users = “user1@ugisystemcenter.org”,”user2@ugisystemcenter.org”,”user3@ugisystemcenter.org”

foreach ($user in $users)

{

    $st = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement

    $st.RelyingParty = “*”

    $st.State = “Enabled”

    $sta = @($st)

    Set-MsolUser -UserPrincipalName $user -StrongAuthenticationRequirements $sta

}

 

Azure Multi-Factor Authentication on-premises

Il deployment on-premises dell’Azure Multi-Factor Authentication Server richiede di effettuare il download del setup di installazione direttamente dal portale Azure. Nel caso si voglia licenziare Azure Multi-Factor Authentication come servizio autonomo con opzioni di fatturazione per utente e per autenticazione è necessario creare dal portale Classic di Azure un nuovo Multi-Factor Auth Provider (tale funzionalità presto sarà disponibile anche sul nuovo portale Azure).

 

Figura 7 – Creazione nuovo Multi-Factor Auth Providers

 

Selezionando il pulsante Manage si viene rediretti verso il portale dell’Azure Multi-Factor Authentication, figura 8, dal quale è possibile effettuare il donwload del setup e generare le credenziali di attivazione del servizio.

 

Figura 8 – Download del Multi-Factor Authentication Server e generazione credenziali

 

Nel caso si voglia utilizzare la licenza in bundle a Enterprise Mobility Suite, Azure AD Premium oppure Enterprise Cloud Suite non è necessario creare un Multi-Factor Auth Provider ma è sufficiente accedere al portale dell’Azure Multi-Factor Authentication per effettuare direttamente il download del setup.

 

Dopo essere entrati in possesso del setup è possibile effettuare l’installazione dell’Azure MFA Server. Durante il setup verrà richiesto solamente il percorso di installazione, figura 9.

 

Figura 9 – Setup Azure MFA Server

 

Figura 10 – Setup Azure MFA Server

 

Giunti a questo punto è necessario eseguire il Multi-Factor Authentication Server appena installato che ci guiderà nella procedura di attivazione.

 

Figura 11 – Applicazione Multi-Factor Authentication Server

 

Figura 12 – Step 1: Procedura attivazione Multi-Factor Authentication Server

 

Nella schermata seguente è necessario inserire le credenziali di accesso che vengono generate dal Portale dell’Azure Multi-Factor Authentication (vedi Figura 8).

 

Figura 13 – Step 2: Procedura attivazione Multi-Factor Authentication Server

 

Dopo aver completato l’attivazione del primo server Azure MFA è possibile avviare il Wizard di configurazione, figura 14, per attivare la replica tra più server Azure MFA e configurare il servizio in alta disponibilità.

 

Figura 14 – Wizard di configurazione Multi-Server MFA

 

Nello scenario dove il Multi-Factor Authentication Server è abilitato su più sistemi, i server Azure MFA comunicano tra di loro attraverso chiamate RPC e per fare in modo che il tutto avvenga in modo sicuro devono autenticarsi in modo reciproco. Tale processo di autenticazione può avvenire sia tramite l’appartenenza a un gruppo di security specifico in Active Directory (denominato Phone Factor Admins) sia tramite l’utilizzo di certificati SSL.

 

Ora che il server Azure MFA è stato configurato c’è la possibilità di importare facilmente gli utenti da Active Directory, figura 15, e su questi abilitare il doppio fattore di autenticazione desiderato.

 

Figura 15 – Import degli utenti da Active Directory

 

Nello scenario di utilizzo dell’Azure Multi-Factor Authentication (MFA) Server è bene specificare che i dati relativi agli utenti vengono salvati sui sistemi on-premises e nessun dato viene memorizzato in modo persistente sul cloud. Infatti nel momento in cui un utente effettua il processo di autenticazione a più fattori il server Azure MFA invia i seguenti dati verso il servizio Cloud Azure MFA per effettuare la verifica e a fini di reportistica:

 

  • ID univoco dell’utente (username oppure ID del server MFA interno)
  • Nome e Cognome (opzionali)
  • Indirizzo Email (opzionale)
  • Numero di telefono (in caso di chiamata Telefonica oppure di invio SMS)
  • Device token (quando viene utilizzata l’autenticazione tramite mobile app)
  • Metodo di autenticazione
  • Esito autenticazione
  • Nome e inidirizzo IP del server Azure MFA
  • Client IP (se disponibile)
  • Esito verifica (successo o negata) e motivazione in caso di deny

 

Oltre all’import mirato dei diversi utenti da Active Directory sui quali si vuole abilitare il doppio fattore di autenticazione è possibile integrare il server Azure MFA con il servizio Active Directory e impostare una importazione mirata e schedulata degli utenti secondo determinati criteri. Per maggiori dettagli in merito è possibile consultare la documentazione ufficiale Integrazione di directory tra il server Azure MFA e Active Directory.

 

Modelli di Licensing della soluzione

Azure Multi-Factor Authentication è disponibile come servizio autonomo, con opzioni di fatturazione per utente e per autenticazione, oppure in bundle con Azure Active Directory PremiumEnterprise Mobility Suite e Enterprise Cloud Suite. Azure Multi-Factor Authentication è disponibile attraverso un contratto Enterprise Microsoft, il programma di licenza Open Volume, il programma Cloud Solution Provider e un contratto Direct, come modello annuale per utente. Il servizio è anche disponibile con un modello in base al consumo per utente e per autenticazione, fatturato ogni mese secondo l’Azure monetary commitmen.

 

Per maggiori informazioni sui costi della soluzione è possibile consultare il seguente documento: Prezzi di Multi-Factor Authentication.

 

Conclusioni

Azure Multi-Factor Authentication è una soluzione semplice da usare, scalabile e affidabile che offre la possibilità di introdurre un secondo metodo di validazione in modo che gli utenti siano in grado di accedere in modo più sicuro ai propri dati e alle applicazioni, sia esse presenti on-premises che in ambienti cloud. Per chi è interessato a provare il servizio può facilmente attivare una subscription Azure gratuitamente accedendo alla Free Trial di Azure.

Windows Server 2016: Configurazione del Cloud Witness in ambito Failover Cluster

Nell’articolo Windows Server 2016: What’s New in Failover Clustering sono state approfondite tutte le principali novità introdotte con Windows Server 2016 in ambito failover clustering. In questo articolo entreremo del dettaglio della configurazione del witness del cluster nel cloud Microsoft Azure, analizzando i possibili scenari supportati e i benefici di questa nuova funzionalità.

 

Possibili scenari supportati dal Cloud Witness

Tra gli scenari supportati che si prestano maggiormente per questo tipo di configurazione troviamo:

  • Multi-site stretched cluster.
  • Failover Cluster che non necessitano di storage condiviso (SQL Always On, Exchange DAGs, etc).
  • Failover Cluster composti da nodi ospitati su Microsoft Azure, altri cloud pubblici oppure in private cloud.
  • Cluster di tipologia Scale-out File Server.
  • Cluster realizzati in realtà small branch-office.

 

Configurazione del Cloud Witness

Iniziamo con il specificare che un requisito necessario per poter configurare il cluster per l’utilizzo del Cloud Witness è che tutti i nodi che compongono il cluster abbiano un accesso internet verso Azure. Il Cloud Witness infatti utilizza il protocollo HTTPS (porta 443) per stabilire una connessione con il servizio blob dell’Azure Storage Account.

 

La configurazione del Cloud Witness richiede la presenza di una subscription Azure all’interno della quale configurare uno Storage Account che sarà utilizzato come Cloud Witness e sul quale saranno scritti i blob file utilizzati per l’arbitration del cluster.

 

Dal portale Azure è necessario creare uno storage account di tipologia Genaral Purpose. Per questo scopo è corretto crearlo con un livello di performance standard in quanto non sono necessarie elevate prestazioni che vengono fornite con l’utilizzo di dischi SSD. Dopo aver selezionato la policy di replica e la location più opportuna si può procedere con il processo di creazione.

 

Figura 1 – Creazione dello Storage Account

 

Dopo aver creato lo storage account è necessario recuperare la relativa chiave di accesso necessaria per l’autenticazione, che verrà richiesta negli step successivi di configurazione.

 

Figura 2 – Chiavi di accesso dello Storage Account

 

Giunti a questo punto è possibile modificare le impostazioni del Quorum del cluster da Failover Cluster Manager seguendo i passaggi sotto riportati:

 

Figura 3 – Configurazione delle impostazioni Quorum da Failover Cluster Manager

 

Figura 4 – Selezione del Quorum Witness

 

Figura 5 – Selezione del Cloud Witness

 

Figura 6 – Nome e chiave di accesso dello Storage Account

 

Al termine della configurazione sarà presente tra le varie risorse del cluster anche il Cloud Witness:

 

Figura 7 – Risorsa Cloud Witness

 

Sullo Storage Account di Azure viene creato un container denominato msft-cloud-witness, all’interno del quale sarà presente un unico blob file che ha come nome l’ID univo del cluster. Questo comporta che è possibile utilizzare lo stesso Microsoft Azure Storage Account per configurare il Cloud Witness su cluster differenti, dove sarà presente un blob file per ogni cluster.

 

Figura 8 – Container presente all’interno dello Storage Account e relativo contenuto

 

Vantaggi nell’utilizzo del Cloud Witness

L’utilizzo del Cloud Witness consente di ottenere i seguenti vantaggi:

  • Viene eliminata la necessità di disporre di un ulteriore data center separato per determinate configurazioni cluster utilizzando invece Microsoft Azure.
  • Viene annullato l’effort amministrativo necessario per mantenere una macchina virtuale aggiuntiva con il ruolo di witness del cluster.
  • Considerata la quantità ridotta di dati scritti sullo Storage Account il costo del servizio è irrisorio.
  • Lo stesso Microsoft Azure Storage Account può essere utilizzato come witness per cluster differenti.

 

Conclusioni

Anche in ambito failover cluster Windows Server 2016 si dimostra pronto per l’integrazione con il cloud. Grazie all’introduzione del cloud Witness è possibile realizzare più facilmente sistemi cluster riducendo sensibilmente i costi complessivi per l’implementazione, l’effort di gestione e aumentando la flessibilità dell’architettura cluster.