Abilitare DevSecOps con Azure e GitHub

DevSecOps, talvolta denominato Secure DevOps, si basa sui principi di DevOps, ma pone la sicurezza al centro dell'intero ciclo di vita dell'applicazione. Questo concetto è denominato "shift-left security": sposta la sicurezza a monte rispetto alla sola produzione per comprendere le fasi iniziali della pianificazione e dello sviluppo. Ogni team e persona che lavora su un'applicazione deve prendere in considerazione la sicurezza.

Microsoft e GitHub offrono soluzioni per l'attendibilità del codice eseguito nell'ambiente di produzione. Queste soluzioni esaminano il codice e ne consentono la tracciabilità fino agli elementi di lavoro e alle informazioni dettagliate sui componenti di terze parti in uso.

Proteggere il codice con GitHub

Gli sviluppatori possono usare strumenti di analisi del codice che esaminano rapidamente e automaticamente il codice in un repository GitHub per trovare vulnerabilità di sicurezza ed errori di codifica.

È possibile analizzare il codice per trovare, valutare e classificare in ordine di priorità le correzioni per i problemi esistenti. L'analisi del codice impedisce inoltre agli sviluppatori di introdurre nuovi problemi. È possibile pianificare le analisi per determinati giorni e orari o attivare l'analisi quando si verifica un evento specifico nel repository, ad esempio un push. È anche possibile tenere traccia delle dipendenze del repository e ricevere avvisi di sicurezza quando GitHub rileva dipendenze vulnerabili.

Tenere traccia del lavoro con Azure Boards

Teams può usare il servizio Web Azure Boards per gestire i progetti software. Azure Boards offre un'ampia gamma di funzionalità, tra cui il supporto nativo per Scrum e Kanban, i dashboard personalizzabili e la creazione di report integrati.

Creare e distribuire contenitori con Azure Pipelines

Integrare facilmente i cluster Azure Pipelines e Kubernetes. È possibile usare gli stessi documenti YAML per compilare pipeline in più fasi come codice sia per l'integrazione continua che per il recapito continuo.

Azure Pipelines integra la traccia dei metadati nelle immagini del contenitore, inclusi hash di commit e numeri di problema da Azure Boards, per esaminare le applicazioni in modo affidabile.

La possibilità di creare pipeline di distribuzione con file YAML e archiviarle nel controllo del codice sorgente consente di creare un ciclo di feedback più stretto tra i team di sviluppo e operazioni che fanno affidamento su documenti chiari e leggibili.

Eseguire ed effettuare il debug di contenitori con Bridge to Kubernetes

Lo sviluppo di un'applicazione Kubernetes può risultare complesso. Sono necessari file di configurazione Docker e Kubernetes. È necessario capire come testare l'applicazione in locale e interagire con altri servizi dipendenti. Potrebbe essere necessario sviluppare e testare più servizi contemporaneamente e con un team di sviluppatori.

Bridge to Kubernetes consente di eseguire ed eseguire il debug del codice nel computer di sviluppo rimanendo connessi al cluster Kubernetes con il resto delle applicazioni o dei servizi. È possibile testare il codice end-to-end, raggiungere i punti di interruzione nel codice in esecuzione nel cluster e condividere un cluster di sviluppo tra i membri del team senza interferenze.

Applicare la sicurezza dei contenitori con Microsoft Defender per contenitori e Criteri di Azure

Microsoft Defender per contenitori è la soluzione nativa del cloud per la protezione dei contenitori.

Gestire le identità e l'accesso con Microsoft Identity Platform

Microsoft Identity Platform è un'evoluzione della piattaforma Azure Active Directory (Azure AD) per sviluppatori. Permette agli sviluppatori di compilare applicazioni che supportano l'accesso per tutte le identità Microsoft e il recupero di token per chiamare API Microsoft, come Microsoft Graph o API create dagli sviluppatori.

Azure AD B2C fornisce un'identità business-to-customer come servizio. I clienti usano le identità di account di social network, aziendali o locali che preferiscono per ottenere l'accesso Single Sign-On alle applicazioni e alle API.

La gestione degli accessi per le risorse cloud è una funzione fondamentale per qualsiasi organizzazione che usa il cloud. Il controllo degli accessi in base al ruolo di Azure consente di gestire gli utenti autorizzati ad accedere alle risorse di Azure, le operazioni che possono eseguire su tali risorse e le aree a cui hanno accesso.

È possibile usare Microsoft Identity Platform per eseguire l'autenticazione con gli altri strumenti DevOps, incluso il supporto nativo in Azure DevOps e le integrazioni con GitHub Enterprise.

Attualmente, un cluster del servizio Azure Kubernetes (in particolare il provider di servizi cloud Kubernetes) richiede un'identità per creare risorse aggiuntive, ad esempio servizi di bilanciamento del carico e dischi gestiti in Azure. Questa identità può essere un'identità gestita o un'entità servizio. Se si usa un'entità servizio, è necessario specificarne una oppure il servizio Azure Kubernetes la creerà per conto dell'utente. Se si usa l'identità gestita, ne verrà creata automaticamente una dal servizio Azure Kubernetes. Per i cluster che usano entità servizio, l'entità dovrà essere prima o poi rinnovata per mantenere il cluster funzionante. La gestione delle entità servizio aggiunge complessità, motivo per cui è più facile usare le identità gestite. Gli stessi requisiti di autorizzazione si applicano sia alle entità servizio che alle identità gestite.

Le identità gestite sono essenzialmente un wrapper per le entità servizio e semplificano la gestione.

Gestire chiavi e segreti con Azure Key Vault

Azure Key Vault può essere usato per archiviare in modo sicuro e controllare l'accesso a token, password, certificati, chiavi API e altri segreti. Centralizzando l'archiviazione dei segreti delle applicazioni in Key Vault è possibile controllare la distribuzione dei segreti. Key Vault riduce notevolmente le probabilità di divulgazione accidentale dei segreti. Quando si usa Key Vault, gli sviluppatori di applicazioni non devono più archiviare le informazioni di sicurezza nell'applicazione, eliminando così la necessità di rendere queste informazioni parte del codice. Ad esempio, per un'applicazione potrebbe essere necessario connettersi a un database. Invece di archiviare la stringa di connessione nel codice dell'app, è possibile archiviarla in modo sicuro in Key Vault.

Monitorare le applicazioni

Con Monitoraggio di Azure è possibile monitorare sia l'applicazione che l'infrastruttura in tempo reale, identificando i problemi relativi al codice e alle potenziali attività sospette e anomale. Monitoraggio di Azure si integra con le pipeline di versione in Azure Pipelines per abilitare l'approvazione automatica dei controlli di qualità o il rollback delle versioni in base ai dati di monitoraggio.

Informazioni su come monitorare le applicazioni e l'infrastruttura usando app Azure lication Insights e Monitoraggio di Azure.

Creare l'architettura corretta

La sicurezza è uno degli aspetti essenziali di qualsiasi architettura. La sicurezza offre garanzie di riservatezza, integrità e disponibilità contro attacchi intenzionali e abusi di dati e sistemi preziosi. La perdita di queste garanzie può influire negativamente sulle operazioni e sui ricavi aziendali, oltre che sulla reputazione dell'organizzazione nel mercato.