Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Idee per soluzioni
In questo articolo viene descritta un'idea di soluzione. Il cloud architect può usare queste linee guida per visualizzare i componenti principali di un'implementazione tipica di questa architettura. Usare questo articolo come punto di partenza per il design di una soluzione ben progettata che sia in linea con i requisiti specifici del carico di lavoro.
Questa idea di soluzione illustra una pipeline DevSecOps che usa GitHub per gestire l'infrastruttura come codice (IaC). Considerando le definizioni dell'infrastruttura come origine della verità, i carichi di lavoro possono automatizzare la convalida, l'analisi della sicurezza, la governance e la conformità durante tutto il ciclo di vita della distribuzione.
I modelli di distribuzione standardizzati, lo sviluppo assistito dall'intelligenza artificiale, l'analisi della sicurezza e della configurazione del codice, la governance guidata dai criteri e la gestione del ciclo di vita consentono di migliorare la sicurezza, aumentare l'efficienza operativa, ridurre la deriva della configurazione e offrire ambienti cloud affidabili.
Architettura
Scaricare un file di Visio di questa architettura.
Flusso di dati
Il flusso di dati seguente corrisponde al diagramma precedente:
Gli sviluppatori usano lo sviluppo basato su intelligenza artificiale e basato su test per creare e gestire il codice dell'infrastruttura, moduli riutilizzabili, test e flussi di lavoro di distribuzione. Sviluppano test unitari, test di integrazione e controlli delle policy come codice (PaC) insieme alle definizioni dell'infrastruttura.
Gli sviluppatori archiviano l'IaC, i test e i controlli nei repository GitHub per verificare la qualità, la sicurezza e la conformità prima di inviare pull request.
Le richieste pull attivano test automatizzati in GitHub Actions. Questo flusso di lavoro genera e convalida le anteprime della distribuzione prima della distribuzione.
GitHub Sicurezza avanzata fornisce controlli di sicurezza a livello di repository. I controlli includono, ove appropriato, flussi di lavoro per l'analisi del codice o la revisione delle dipendenze e abilitano la scansione dei segreti e la protezione dei push sul repository per rilevare eventuali segreti esposti.
Un'azione di sicurezza DevOps configurata analizza le definizioni dell'infrastruttura per individuare errori di configurazione e segnala i risultati della sicurezza DevOps in Microsoft Defender per il cloud. Defender per il cloud correla tali risultati con informazioni dettagliate sul comportamento di sicurezza cloud per dare priorità alla correzione prima della distribuzione.
La pipeline di distribuzione effettua il provisioning o aggiorna le risorse Azure usando artefatti IaC riutilizzabili da definizioni di infrastruttura approvate, ad esempio Azure moduli verificati (AVM). Azure stack di distribuzione consentono di mantenere l'allineamento tra le risorse distribuite e le definizioni controllate dal codice sorgente e le impostazioni di negazione della distribuzione consentono di ridurre la deriva della configurazione limitando le modifiche fuori banda. Le modifiche manuali approvate vengono documentate e riconciliate tramite il controllo del codice sorgente per mantenere Git come fonte autorevole di verità.
DevSecOps monitora e difende continuamente dalle minacce e dalle vulnerabilità della sicurezza. Criteri di Azure impone la governance cloud.
L'automazione configurata crea un problema GitHub quando il monitoraggio o i servizi di sicurezza rilevano un'anomalia. Ad esempio, Defender per il cloud potrebbe identificare una risorsa esposta pubblicamente che viola i requisiti di sicurezza. Un gruppo di azioni di Monitoraggio di Azure o una regola di automazione di Microsoft Sentinel può richiamare un flusso di lavoro di App per la logica di Azure che crea un'Issue di GitHub per la revisione e la correzione.
Componenti
GitHub è una piattaforma di hosting del codice per il controllo della versione e la collaborazione. In questa architettura GitHub archivia i modelli IaC nei repository centrali per lo sviluppo, il test, i flussi di lavoro di governance e lo sviluppo assistito dall'intelligenza artificiale con GitHub Copilot.
GitHub Actions è uno strumento di automazione di integrazione continua e distribuzione continua (CI/CD) che consente ai flussi di lavoro di compilare, testare e distribuire codice direttamente dai repository GitHub. In questa architettura GitHub Actions automatizza unit test, analisi della sicurezza e provisioning dell'infrastruttura per le pipeline IaC.
GitHub Sicurezza avanzata offre funzionalità di sicurezza a livello di repository, tra cui l'analisi dei segreti e il rilevamento delle vulnerabilità delle dipendenze. In questa architettura, GitHub Sicurezza avanzata consente di identificare le credenziali esposte, le dipendenze open source vulnerabili e altri rischi per la sicurezza del repository prima che il codice venga unito e distribuito.
La sicurezza DevOps in Defender per il cloud centralizza le segnalazioni di sicurezza DevOps e le correla con il contesto cloud. In questa architettura, un'azione configurata Microsoft Security DevOps GitHub analizza gli artefatti IaC per individuare errori di configurazione e segnala i risultati a Defender per il cloud per la definizione delle priorità e la correzione.
Azure Verified Modules (AVM) sono moduli IaC predefiniti mantenuti da Microsoft. In questa architettura, i carichi di lavoro usano AVM per distribuire moduli di modelli e risorse riutilizzabili allineati alle linee guida di Azure Well-Architected Framework.
Stack di distribuzione di Azure consentono ai carichi di lavoro di gestire le risorse distribuite come singole unità con ciclo di vita gestito. Azure stack di distribuzione consentono di mantenere l'allineamento tra le risorse distribuite e le definizioni dell'infrastruttura controllata dal codice sorgente, supportare la gestione del ciclo di vita e ridurre la deriva della configurazione applicando controlli di governance e impostazioni di negazione.
Defender per il cloud è una piattaforma di gestione della sicurezza che fornisce protezione dalle minacce nei carichi di lavoro cloud ibridi. In questa architettura monitora continuamente l'infrastruttura distribuita per individuare vulnerabilità e minacce e integra i risultati della sicurezza devOps con informazioni dettagliate sulla sicurezza del runtime.
Microsoft Sentinel è una soluzione SIEM (Security Information and Event Management) nativa del cloud che usa l'intelligenza artificiale e l'analisi per rilevare e rispondere alle minacce. In questa architettura, Microsoft Sentinel monitora l'attività dell'infrastruttura e genera avvisi o problemi di GitHub quando rileva anomalie.
Criteri di Azure valuta le risorse Azure rispetto agli standard dell'organizzazione e del carico di lavoro. A seconda dell'effetto dei criteri assegnato, Criteri di Azure può controllare, modificare, correggere o negare le configurazioni non conformi. Ad esempio, una definizione di criteri con l'effetto
denypuò bloccare la distribuzione di una macchina virtuale il cui SKU non è consentito.Monitoraggio di Azure è una piattaforma di telemetria e osservabilità che raccoglie metriche delle prestazioni e log delle attività dalle risorse di Azure. In questa architettura, Monitoraggio di Azure rileva condizioni dell'infrastruttura irregolari e attiva gli avvisi in modo da poter avviare la valutazione e la correzione.
Dettagli dello scenario
Quando si adotta IaC, creare test automatizzati durante lo sviluppo del codice. Generare piani di distribuzione e stati di configurazione dell'infrastruttura per emulare le distribuzioni effettive. Lo sviluppo basato su test riduce la complessità dei test IaC quando il carico di lavoro viene ridimensionato.
Eseguire test di integrazione sulle risorse distribuite Azure usando Azure SDK e API, Azure Resource Graph, strumenti di convalida specifici del carico di lavoro o framework di test automatizzati. Questi test consentono di verificare la configurazione delle risorse, la connettività, i controlli di sicurezza e l'idoneità operativa.
PaC è un altro metodo importante per offrire un'infrastruttura conforme alle normative e alla governance aziendale. È possibile aggiungere flussi di lavoro PaC nelle pipeline per automatizzare la governance del cloud.
La protezione dell'infrastruttura all'inizio del ciclo di vita dello sviluppo riduce il rischio di problemi di sicurezza e conformità dopo la distribuzione. Integra GitHub Advanced Security e Defender per il cloud DevOps security nei flussi di lavoro DevSecOps per identificare vulnerabilità, problemi di qualità del codice, violazioni dei criteri, esposizione di segreti e rischi di configurazione nel codice IaC. Questo approccio è simile al test di sicurezza delle applicazioni statico (SAST) per il codice dell'applicazione.
La deviazione della configurazione può essere difficile da risolvere quando l'infrastruttura viene distribuita e operativa, in particolare negli ambienti di produzione. Usare GitHub Actions con OpenID Connect (OIDC) e Microsoft Entra Workload Identity Federation per effettuare il provisioning e gestire le risorse Azure senza archiviare le credenziali. Limitare le autorizzazioni di distribuzione tramite assegnazioni di controllo degli accessi basato sui ruoli di Azure (Azure RBAC) improntate al principio del privilegio minimo e controlli di protezione dell'ambiente. Per apportare modifiche manuali eccezionali, usare l'accesso con privilegi JIT, registrare la modifica e creare automaticamente un problema di GitHub per riconciliare la definizione dell'infrastruttura tramite il controllo del codice sorgente. Evitare la configurazione manuale quando possibile e considerare Git come origine autorevole dello stato dell'infrastruttura.
Per evitare la deriva all'origine, usare gli stack di distribuzione Azure quando un gruppo di risorse Azure definite in un modello condivide un ciclo di vita. Tenere conto delle limitazioni dello stack di distribuzione e applicare le impostazioni di negazione appropriate per limitare le modifiche del piano di controllo fuori banda. Mantieni la definizione IaC sotto controllo delle versioni nel sistema di controllo del codice sorgente.
Per evitare eventi imprevisti di sicurezza, monitorare continuamente l'ambiente cloud per individuare minacce e vulnerabilità. Usare Defender per il cloud, Microsoft Sentinel, Monitoraggio di Azure e altri strumenti di protezione dalle minacce e SIEM per rilevare attività anomale. Questi strumenti possono avvisare automaticamente gli amministratori della sicurezza e generare GitHub problemi per l'analisi e la correzione.
Potenziali casi d'uso
I team di ingegneria della piattaforma centrale possono fornire workflow riutilizzabili di GitHub Actions, controlli PaC e stack di distribuzione di Azure ai team applicativi, dei dati e dell’IA come percorsi di riferimento approvati. GitHub Copilot consente agli sviluppatori di creare definizioni, test e flussi di lavoro di distribuzione dell'infrastruttura. Un'azione configurata Microsoft Security DevOps convalida la sicurezza e la configurazione dell'infrastruttura prima della distribuzione e segnala i risultati alla sicurezza devOps in Defender per il cloud. L'organizzazione può accelerare il recapito dell'infrastruttura mantenendo al tempo stesso la governance, la coerenza e gli standard di sicurezza.
I servizi finanziari, il settore sanitario, il settore pubblico o le aziende regolamentate possono usare DevSecOps per IaC per automatizzare la distribuzione dell'infrastruttura, l'applicazione dei criteri, la convalida della sicurezza e la creazione di report sulla conformità. Criteri di Azure, Defender per il cloud, Microsoft Sentinel e Azure stack di distribuzione consentono di gestire le modifiche dell'infrastruttura controllabili, ridurre la deriva della configurazione e supportare la conformità durante il ciclo di vita dell'infrastruttura. GitHub è l'origine autorevole della verità per tutte le modifiche dell'infrastruttura e i controlli di governance.
Collaboratori
Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.
Autori principali:
- Vito Chin | Architetto senior di soluzioni cloud
- Yee Shian Lee | Senior Cloud Solution Architect
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.
Passaggi successivi
- Prendere in considerazione il linguaggio O il modello IaC da usare. Bicep o Terraform in Azure sono opzioni.
- Configurare Microsoft Security DevOps per analizzare il repository di GitHub connesso.