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 "sicurezza a sinistra dei turni": sposta la sicurezza a monte da un problema di sola produzione per includere le prime fasi di pianificazione e sviluppo. Ogni team e persona che lavora su un'applicazione è necessario per prendere in considerazione la sicurezza.
Microsoft e GitHub offrono soluzioni per garantire la sicurezza del codice eseguito nell'ambiente di produzione. Queste soluzioni esaminano il codice e consentono la tracciabilità degli elementi di lavoro e le informazioni dettagliate sui componenti di terze parti in uso.
Proteggere il codice con GitHub
Gli sviluppatori possono usare strumenti di analisi del codice che analizzano rapidamente e automaticamente il codice in un repository GitHub per individuare le vulnerabilità di sicurezza e gli 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 analisi per giorni e ore specifiche oppure attivare 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.
- Analizzare il codice con CodeQL e analisi dei token
- Gestire gli avvisi di sicurezza per i progetti
- Proteggere le dipendenze del codice con Dependabot
Tenere traccia del lavoro con Azure Boards
Teams può usare Azure Boards servizio Web per gestire i progetti software. Azure Boards offre un set completo 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 creare pipeline a 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 emissione da Azure Boards, in modo da poter esaminare le applicazioni in modo sicuro.
La possibilità di creare pipeline di distribuzione con file YAML e di archiviarle nel controllo del codice sorgente consente di guidare un ciclo di feedback più stretto tra i team operativi e di sviluppo che si basano su documenti leggibili e chiari.
- Archiviare immagini Docker in Registro Azure Container
- Creare un'immagine Docker con Azure Pipelines
- Eseguire la distribuzione in Kubernetes con tracciabilità completa
- Proteggere Azure Pipelines
Eseguire ed eseguire 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.
- Panoramica di Microsoft Defender per contenitori
- Informazioni su Criteri di Azure per i cluster Kubernetes
- Servizio Azure Kubernetes
Gestire le identità e l'accesso con il 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 offre 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 chi può accedere alle risorse di Azure, le operazioni che possono eseguire con tali risorse e quali aree possono accedere.
È possibile usare il 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 servizio Azure Kubernetes (servizio Azure 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 specificare uno o il servizio Azure Kubernetes ne crea uno 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à servizio deve essere rinnovata alla fine 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 per le entità servizio che per le 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 e controllare in modo sicuro l'accesso a token, password, certificati, chiavi API e altri segreti. La centralizzazione dell'archiviazione dei segreti dell'applicazione in Key Vault consente di controllare la distribuzione. 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 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 con il codice e le potenziali attività sospette e anomalie. 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 applicazione Azure Insights e Monitoraggio di Azure.
- Gestione delle prestazioni delle applicazioni con Application Insights
- Monitorare le applicazioni in contenitori con 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 dei dati e dei sistemi preziosi. La perdita di queste garanzie può influire negativamente sulle operazioni e sui ricavi aziendali, oltre che sulla reputazione dell'organizzazione nel mercato.