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.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Quando si gestiscono informazioni e dati, in particolare in una soluzione basata sul cloud come Azure DevOps Services, la sicurezza deve essere la priorità principale. Anche se Microsoft garantisce la sicurezza dell'infrastruttura cloud sottostante, è responsabilità dell'utente configurare la sicurezza all'interno di Azure DevOps. Questo articolo offre una panoramica delle configurazioni necessarie relative alla sicurezza per proteggere l'ambiente Azure DevOps da minacce e vulnerabilità.
Proteggere la rete e i dati
La protezione della rete è fondamentale quando si lavora con Azure DevOps per proteggere i dati e le risorse da accessi non autorizzati e potenziali minacce. Implementare misure di sicurezza di rete e protezione dei dati per garantire che solo le origini attendibili possano accedere all'ambiente Azure DevOps. Per proteggere la rete quando si usa Azure DevOps, eseguire le azioni seguenti:
- Configurare l'elenco di indirizzi IP consentiti: limitare l'accesso a indirizzi IP specifici per consentire il traffico solo da origini attendibili, riducendo la superficie di attacco. Se l'organizzazione è protetta con un firewall o un server proxy, aggiungere indirizzi IP e URL all'elenco di indirizzi consentiti.
- Usare la crittografia dei dati: Proteggere i dati usando strategie di crittografia, backup e ripristino. Crittografa sempre i dati in transito e a riposo. Proteggere i canali di comunicazione usando protocolli come HTTPS. Altre informazioni su Crittografia di Azure.
- Convalidare i certificati: Assicurarsi che i certificati siano validi e rilasciati da autorità attendibili quando si stabiliscono connessioni.
- Implementare i Firewall per Applicazioni Web (WAF): Filtrare, monitorare e bloccare il traffico dannoso basato sul web con i WAF per un livello aggiuntivo di protezione contro attacchi comuni.
- Panoramica dei gruppi di sicurezza di rete: Usare i gruppi di sicurezza di rete per controllare il traffico in ingresso e in uscita verso le risorse di Azure, assicurando che sia consentito solo il traffico autorizzato.
- Usare Firewall di Azure: Distribuire Firewall di Azure per fornire criteri di sicurezza di rete centralizzati tra più sottoscrizioni e reti virtuali di Azure.
- Monitorare il traffico di rete con Azure Network Watcher: Usare Azure Network Watcher per monitorare e diagnosticare i problemi di rete, assicurando la sicurezza e le prestazioni della rete.
- Implementare la protezione DDoS con Protezione DDoS di Azure: Abilitare Protezione DDoS di Azure per proteggere le applicazioni da attacchi DDoS (Distributed Denial of Service).
- [Proteggere i dati]: Proteggere i dati usando strategie di crittografia, backup e ripristino.
Per altre informazioni, vedere Procedure consigliate per la gestione delle applicazioni.
Implementare il modello Zero Trust
Adottare i principi Zero Trust nei processi DevOps per assicurarsi che ogni richiesta di accesso venga verificata accuratamente, indipendentemente dall'origine. Zero Trust opera sul principio di "mai considerare attendibile, verificare sempre", ovvero che nessuna entità, all'interno o all'esterno della rete, sia considerata attendibile per impostazione predefinita. Implementando Zero Trust, è possibile ridurre significativamente il rischio di violazioni della sicurezza e assicurarsi che solo gli utenti e i dispositivi autorizzati possano accedere alle risorse.
- Rafforzare la piattaforma DevOps,
- Proteggere l'ambiente di sviluppo,
- Integrare Zero Trust senza problemi nei flussi di lavoro per sviluppatori.
Zero Trust aiuta a proteggersi dal movimento laterale all'interno della rete, assicurandosi che anche se c'è una parte compromessa della rete, la minaccia è contenuta e non può essere distribuita. Per altre informazioni, vedere la Guida alla valutazione Zero Trust.
Conformità agli standard del settore
Assicurarsi che l'ambiente Azure DevOps sia conforme agli standard e alle normative del settore che proteggono l'ambiente e mantengono la fiducia con gli utenti.
- Garantire la conformità agli standard del settore: Azure DevOps è conforme ai vari standard e normative del settore, ad esempio ISO/IEC 27001, SOC 1/2/3 e GDPR. Assicurarsi che l'ambiente sia conforme a questi standard.
- Applicare i criteri di conformità: Implementare criteri di ramo e criteri di conformità per le pipeline.
-
Unirsi a 'Component Governance' per CI/CD, che offre i seguenti vantaggi:
- Rilevamento delle vulnerabilità di sicurezza: avvisa le vulnerabilità note nei componenti open source.
- Conformità delle licenze: garantisce che i componenti siano conformi ai criteri di licenza dell'organizzazione.
- Applicazione dei criteri: garantisce che vengano usate solo le versioni approvate.
- Visibilità con rilevamento: offre visibilità sui componenti tra i repository per semplificare la gestione.
Controllare e limitare l'accesso
Esaminare tutti i criteri di sicurezza disponibili per gli amministratori per limitare e controllare chi può accedere all'organizzazione. Mantenere il controllo dell'organizzazione impedendo la creazione di progetti non necessari.
- Disabilitare "Consenti progetti pubblici": disabilitare l'opzione per creare progetti pubblici. Cambiare la visibilità del progetto dal pubblico al privato in base alle esigenze. Gli utenti che non hanno mai eseguito l'accesso hanno accesso in sola lettura ai progetti pubblici, mentre gli utenti connessi possono accedere a progetti privati e apportare modifiche consentite.
- Limitare i meccanismi di autenticazione non necessari e limitare chi può accedere all'autenticazione consentita.
-
Limitare l'accesso con i criteri di accesso condizionale: proteggere l'organizzazione definendo i criteri di accesso condizionale (CAP) in Microsoft Entra che reagiscono agli eventi di accesso e richiedono azioni aggiuntive prima che a un utente venga concesso l'accesso.
- Attivare i criteri dell'organizzazione per abilitare la convalida IP CAP nei flussi non interattivi.
- Aggiungere un ulteriore livello di sicurezza abilitando l'autenticazione a più fattori di Microsoft Entra dopo l'accesso.
Gestire gli utenti guest esterni
L'accesso guest esterno può comportare potenziali rischi per la sicurezza, se non gestito correttamente. Ridurre al minimo questi rischi e assicurarsi che gli utenti guest esterni abbiano il livello di accesso appropriato senza compromettere la sicurezza dell'ambiente.
- Blocca l'accesso guest esterno: Disabilitare il criterio "Consenti l'invio di inviti a qualsiasi dominio" per impedire l'accesso guest esterno se non è necessario.
- Usare indirizzi di posta elettronica o UPN distinti: Usare indirizzi di posta elettronica diversi o nomi UPN (User Principal Names) per gli account personali e aziendali per eliminare l'ambiguità tra account personali e correlati al lavoro.
- Raggruppare utenti guest esterni: Inserire tutti gli utenti guest esterni in un singolo gruppo di Microsoft Entra e gestire le autorizzazioni per questo gruppo in modo appropriato. Rimuovere le assegnazioni dirette per assicurarsi che le regole di gruppo vengano applicate a questi utenti.
- Rivalutare regolarmente le regole: Esaminare regolarmente le regole nella scheda Regole di gruppo della pagina Utenti. Prendere in considerazione eventuali modifiche all'appartenenza a gruppi nell'ID Microsoft Entra che potrebbero influire sull'organizzazione. Microsoft Entra ID può richiedere fino a 24 ore per aggiornare l'appartenenza dinamica ai gruppi e le regole vengono rivalutate automaticamente ogni 24 ore e ogni volta che una regola di gruppo cambia.
Per ulteriori informazioni, vedere ospiti B2B in Microsoft Entra ID.
Rimuovere utenti non necessari
La rimozione di utenti inattivi o non autorizzati dall'organizzazione consente di mantenere un ambiente sicuro e riduce il rischio di potenziali violazioni della sicurezza.
- Rimuovere direttamente gli utenti inattivi dell'account Microsoft (MSA): Rimuovere direttamente gli utenti inattivi dall'organizzazione se utilizzano account Microsoft (MSA). Non è possibile creare query per gli elementi di lavoro assegnati agli account MSA rimossi.
- Disabilitare o eliminare gli account utente di Microsoft Entra: Se si è connessi all'ID Microsoft Entra, disabilitare o eliminare l'account utente di Microsoft Entra mantenendo attivo l'account utente di Azure DevOps. È possibile continuare a eseguire query sulla cronologia degli elementi di lavoro usando l'ID utente di Azure DevOps.
- Revocare i PT utente per gli amministratori: Garantire la gestione sicura di questi token di autenticazione critici rivedendo e revocando regolarmente i token di autenticazione utente esistenti.
- Revocare autorizzazioni speciali concesse ai singoli utenti: Controllare e revocare eventuali autorizzazioni speciali concesse ai singoli utenti per garantire l'allineamento con il principio dei privilegi minimi.
- Riassegnare il lavoro dagli utenti rimossi: Prima di rimuovere gli utenti, riassegnare gli elementi di lavoro ai membri del team correnti per distribuire il carico in modo efficace.
Autorizzazioni per l'ambito
Fornire le autorizzazioni e i livelli di accesso minimi necessari per garantire che solo utenti e servizi autorizzati possano accedere a informazioni riservate ed eseguire azioni critiche. Questa procedura consente di ridurre al minimo il rischio di accessi non autorizzati e potenziali violazioni dei dati.
Esaminare e aggiornare regolarmente queste impostazioni per adattarsi alle modifiche nell'organizzazione, ad esempio modifiche ai ruoli, nuove assunzioni o partenza. L'implementazione di un controllo periodico dei livelli di autorizzazione e di accesso consente di identificare e correggere eventuali discrepanze, assicurandosi che il comportamento di sicurezza rimanga affidabile e allineato alle procedure consigliate.
Altre informazioni sulle autorizzazioni:
Per garantire una gestione sicura ed efficiente delle autorizzazioni, definire correttamente l'ambito delle autorizzazioni all'interno dell'ambiente Azure DevOps. L'ambito delle autorizzazioni prevede la definizione e l'assegnazione del livello di accesso appropriato a utenti e gruppi in base ai ruoli e alle responsabilità. Questa procedura consente di ridurre al minimo il rischio di accessi non autorizzati e potenziali violazioni dei dati assicurando che solo le persone autorizzate abbiano accesso a informazioni riservate e azioni critiche.
Per definire l'ambito delle autorizzazioni in modo efficace, eseguire le azioni seguenti:
- Disabilitare l'ereditarietà: Evitare l'ereditarietà delle autorizzazioni e impedire l'accesso imprevisto. L'ereditarietà può concedere inavvertitamente autorizzazioni agli utenti che non devono avere tali autorizzazioni, a causa della sua natura di autorizzazione per impostazione predefinita. Gestire attentamente e impostare in modo esplicito le autorizzazioni per garantire che solo gli utenti desiderati abbiano accesso.
- Ambienti segmentare: Usare account Azure separati per ambienti diversi, ad esempio Sviluppo, Test e Produzione, per migliorare la sicurezza e prevenire i conflitti. Questo approccio riduce al minimo il rischio di conflitti di risorse e contaminazione dei dati tra ambienti e consente una migliore gestione e isolamento delle risorse. Per altre informazioni, vedere Zona di destinazione di Azure.
- Controllare l'accesso e garantire la conformità: Usare Criteri di Azure per limitare l'accesso alle aree e ai servizi di Azure inutilizzati, garantendo la conformità agli standard dell'organizzazione. Questa azione consente di applicare le procedure consigliate e mantenere un ambiente sicuro impedendo l'accesso e l'utilizzo non autorizzati.
- Implementare il controllo degli accessi in base al ruolo di Azure (ABAC): Usare ABAC con risorse correttamente etichettate per limitare l'accesso non autorizzato. Questa azione garantisce che le autorizzazioni di accesso vengano concesse in base a attributi specifici, migliorando la sicurezza impedendo la creazione e l'accesso di risorse non autorizzate.
-
Usare i gruppi di sicurezza: Usare i gruppi di sicurezza per gestire in modo efficiente le autorizzazioni per più utenti. Questo metodo semplifica la concessione e la revoca dell'accesso rispetto all'assegnazione delle autorizzazioni singolarmente e garantisce coerenza e gestione più semplice nell'organizzazione.
- Usare Microsoft Entra ID, Active Directory o gruppi di sicurezza di Windows quando si gestiscono molti utenti.
- Ridurre il rischio di perdita di informazioni riservate e distribuzione di codice non sicuro limitando l'accesso a progetti e repository a gruppi di sicurezza predefiniti o personalizzati.
- Sfrutta i ruoli integrati e imposta il ruolo predefinito su Collaboratore per gli sviluppatori. Gli amministratori vengono assegnati al gruppo di sicurezza Amministratore del progetto per ottenere permessi elevati, consentendo loro di configurare le autorizzazioni di sicurezza.
- Mantenere i gruppi il più piccolo possibile, limitando l'accesso.
- Implementare l'accesso JIT con un gruppo di Microsoft Entra Privileged Identity Management (PIM). Concedere autorizzazioni elevate solo quando necessario, riducendo il rischio associato all'accesso permanente.
Elimina gli account di servizio
In passato, gli account di servizio venivano usati insieme ai token di accesso personale per creare strumenti che eseguono processi e servizi automatizzati. Di conseguenza, spesso dispongono di autorizzazioni elevate. Prima di scegliere di continuare a sviluppare con un account di servizio, valuta se è ancora l'approccio di autenticazione appropriato per te.
- Rinunciare ai token PAT per Microsoft Entra token:i token Entra Di Microsoft sono token di breve durata (un'ora) che possono essere usati al posto della maggior parte dei token PAT. I PAT sono popolari a causa della loro facilità d'uso, ma sono anche un vettore popolare di attacco a causa della facilità con cui vengono divulgati.
- Leggere tutti i meccanismi di autenticazione disponibili prima di sceglierne uno.
-
Usare invece le entità servizio:le entità servizio rappresentano l'identità di un'applicazione Microsoft Entra e hanno le proprie autorizzazioni che definiscono le operazioni che l'applicazione può eseguire in un determinato tenant. I principali del servizio sono la scelta consigliata per gestire le autorizzazioni necessarie dall'applicazione. Sostituire i token PAT degli account di servizio con i token Microsoft Entra acquisiti per il principale del servizio.
- Vai oltre nella sicurezza autenticandoti con un'identità gestita se lavori sulle risorse di Azure. Le identità gestite si occupano di tutta la gestione delle credenziali.
-
Usare le connessioni al servizio: Le connessioni al servizio consentono di usare le entità servizio all'interno di una pipeline. Usare le connessioni al servizio quando possibile per connettersi in modo sicuro ai servizi senza passare direttamente le variabili segrete alle compilazioni. Limitare le connessioni a casi d'uso specifici. Per ulteriori informazioni, consultare la sezione Connessioni al servizio di ambito in questo articolo.
- Eseguire l'autenticazione con le risorse di Azure usando la federazione dell'identità del carico di lavoro con una registrazione dell'app o un'identità gestita anziché usare una registrazione dell'app con un segreto.
Mentre un account di servizio rimane in uso:
- Creare account di servizio per utilizzo singolo: Ogni servizio deve avere un account dedicato per ridurre al minimo i rischi. Evitare di usare gli account utente normali come account del servizio .
- Identificare e disabilitare gli account del servizio inutilizzati: Esaminare e identificare regolarmente gli account non più in uso. Disabilitare gli account inutilizzati prima di prendere in considerazione l'eliminazione.
- Limitare i privilegi: Limitare i privilegi dell'account del servizio al minimo necessario. Evitare diritti di accesso interattivi per gli account del servizio.
- Usare identità separate per i lettori di report: Se si usano account di dominio per gli account del servizio, usare un'identità diversa per i lettori di report per isolare le autorizzazioni e impedire l'accesso non necessario.
- Usare gli account locali per le installazioni del gruppo di lavoro: Quando si installano componenti in un gruppo di lavoro, usare gli account locali per gli account utente. Evitare account di dominio in questo scenario.
- Monitorare l'attività degli account di servizio: Implementare un sistema di auditing e creare flussi di audit per monitorare l'attività degli account di servizio.
Ambito delle connessioni al servizio
Per garantire l'accesso sicuro ed efficiente alle risorse di Azure, definire correttamente l'ambito delle connessioni al servizio. Le connessioni al servizio consentono ad Azure DevOps di connettersi a servizi e risorse esterni e, tramite l'ambito di queste connessioni, è possibile limitare l'accesso solo alle risorse necessarie e ridurre il rischio di accesso non autorizzato.
- Limitare l'accesso: Limitare l'accesso definendo l'ambito delle connessioni al servizio Azure Resource Manager a risorse e gruppi specifici. Non concedere autorizzazioni di collaboratore generiche nell'intera sottoscrizione di Azure.
- Usare Azure Resource Manager: Effettuare l'autenticazione con le risorse di Azure utilizzando la federazione dell'identità di workload con una registrazione dell'app o un'identità gestita anziché usare una registrazione dell'app con un segreto. Per altre informazioni, vedere Creare una connessione al servizio Azure Resource Manager che usa la federazione delle identità del carico di lavoro.
- Gruppi di risorse di ambito: Verificare che i gruppi di risorse contengano solo le macchine virtuali o le risorse necessarie per il processo di compilazione.
- Evitare connessioni di servizio classiche: Optare per le connessioni moderne del servizio Azure Resource Manager invece di quelle classiche, che non dispongono di opzioni di ambito.
- Usare account di servizio del team specifici per lo scopo: Autenticare le connessioni ai servizi usando account di servizio del team specifici per lo scopo per mantenere la sicurezza e il controllo.
Per altre informazioni, vedere Tipi di connessione di Common Service.
Esaminare gli eventi di controllo
Il controllo può essere usato per tenere traccia delle azioni utente, delle modifiche delle autorizzazioni e dei modelli di utilizzo all'interno dell'organizzazione. Usare questi strumenti per identificare e risolvere tempestivamente potenziali eventi imprevisti di sicurezza.
- Abilitare il controllo: Tenere traccia e visualizzare gli eventi correlati a azioni utente, autorizzazioni, modifiche e eventi imprevisti di sicurezza.
- Esaminare regolarmente i log di controllo e i flussi: Esaminare regolarmente i log di controllo per monitorare le attività degli utenti e rilevare eventuali comportamenti sospetti. Cercare modelli di utilizzo imprevisti, in particolare dagli amministratori e da altri utenti. Questa azione consente di identificare potenziali violazioni della sicurezza e di intraprendere azioni correttive. Altre informazioni sugli eventi di controllo monitorati.
- Configurare gli avvisi di sicurezza: Configurare gli avvisi per notificare eventuali eventi imprevisti o violazioni dei criteri di sicurezza. Questa azione garantisce una risposta tempestiva alle potenziali minacce.
Proteggere i servizi
Per garantire la sicurezza e l'integrità dei servizi in Azure DevOps, implementare misure di sicurezza per ogni servizio. Queste misure includono l'impostazione delle autorizzazioni, la gestione dell'accesso e l'uso di funzionalità di sicurezza specifiche per ogni servizio.
- Proteggere Azure Boards: Proteggere i dati di monitoraggio del lavoro impostando le autorizzazioni appropriate e gestendo i permessi di accesso.
- Proteggere Azure Repos: Verificare la sicurezza dei repository di codice configurando le impostazioni Git, le autorizzazioni di ramo e i criteri.
-
Proteggere Azure Pipelines: Proteggere i processi CI/CD impostando autorizzazioni, usando modelli di sicurezza e protezione di agenti e contenitori.
- Informazioni sulla sicurezza di Azure Pipelines
- Aggiungere utenti ad Azure Pipelines
- Usare i modelli per la sicurezza
- Proteggere agenti, progetti e contenitori
- Proteggere l'accesso ad Azure Repos dalle pipeline
- Proteggere le risorse delle pipeline
- Determinare l'approccio per la protezione delle pipeline YAML
- Proteggere i segreti in Azure Pipelines
- Proteggere i piani di test di Azure: Assicurarsi che il team disponga dell'accesso appropriato per gestire ed eseguire piani di test in modo efficiente.
- Proteggere Azure Artifacts: Gestire l'accesso ai pacchetti e controllare chi può interagire con loro.
Automatizzare l'analisi della sicurezza
Monitorare le vulnerabilità del codice e dei segreti con gli strumenti di sicurezza automatizzati seguenti creati dai team partner:
- Usare l'analisi e l'analisi del codice: Usare strumenti come Microsoft Defender per analizzare il codice per individuare vulnerabilità, segreti e configurazioni errate. Questa azione consente di identificare e correggere i problemi di sicurezza nelle prime fasi del processo di sviluppo.
- Usare Azure DevOps Credential Scanner (CredScan) per GitHub: Quando si usa un'identità gestita non è un'opzione, assicurarsi che le credenziali vengano archiviate in posizioni sicure, ad esempio Azure Key Vault, anziché incorporarle nei file di codice e configurazione. Implementare Lo scanner di credenziali di Azure DevOps per identificare le credenziali all'interno del codice. Per altre informazioni, vedere Introduzione a CredScan.
- Usare l'analisi dei segreti nativa per GitHub: Quando si usa un'identità gestita non è un'opzione, assicurarsi che i segreti vengano archiviati in posizioni sicure, ad esempio Azure Key Vault, anziché incorporarli nei file di codice e configurazione. Usare la funzionalità di analisi dei segreti nativa per identificare i segreti all'interno del codice. Per altre informazioni, vedere Informazioni sull'analisi dei segreti.
Per altre informazioni, vedere la panoramica della sicurezza avanzata di GitHub .