Protezione del repository

Il codice sorgente, il file YAML della pipeline e gli strumenti script necessari & vengono tutti archiviati in un repository del controllo della versione. È necessario utilizzare le autorizzazioni e i criteri dei rami per garantire che le modifiche al codice e alla pipeline siano sicure. È anche possibile aggiungere autorizzazioni e controlli della pipeline ai repository.

È anche consigliabile esaminare il controllo di accesso predefinito per i repository.

A causa della progettazione di Git, la protezione a livello di ramo sarà disponibile solo fino a questo momento. Gli utenti con accesso push a un repo possono in genere creare nuovi rami. Se si usano GitHub progetti open source, chiunque abbia un account GitHub può creare una fork del repository e proporre contributi. Poiché le pipeline sono associate a un repository e non a rami specifici, è necessario presupporre che il codice e i file YAML non siano attendibili.

Forks

Se si compilano repository pubblici da GitHub, è necessario prendere in considerazione la posizione sulle compilazioni con fork. I fork sono particolarmente pericolosi perché provengono dall'esterno dell'organizzazione. Per proteggere i prodotti dal codice con contributi, prendere in considerazione le raccomandazioni seguenti.

Nota

Le raccomandazioni seguenti si applicano principalmente alla creazione di repository pubblici da GitHub.

Non fornire segreti per creare una fork delle compilazioni

Per impostazione predefinita, le pipeline non compilano fork. Se si decide di compilare fork, i segreti e le risorse protette non vengono resi disponibili per i processi in tali pipeline per impostazione predefinita. Non disattivare questa seconda protezione.

Screenshot of fork build protection UI

Nota

Anche se si abilitano le compilazioni con fork per accedere ai segreti, Azure Pipelines limita il token di accesso usato per le compilazioni con fork. Ha un accesso più limitato alle risorse aperte rispetto a un normale token di accesso. Non è possibile disabilitare questa protezione.

Prendere in considerazione l'attivazione manuale delle compilazioni fork

È possibile disattivare le compilazioni con fork automatico e usare invece i commenti delle richieste pull per creare manualmente questi contributi. Questa impostazione consente di esaminare il codice prima di attivare una compilazione.

Usare agenti ospitati da Microsoft per le compilazioni con fork

Non eseguire compilazioni da fork su agenti self-hosted. In questo modo, si fornisce in modo efficace un percorso alle organizzazioni esterne per l'esecuzione di codice esterno nei computer all'interno della rete aziendale. Usare agenti ospitati da Microsoft o una qualche forma di isolamento della rete per gli agenti self-hosted.

Rami utente

Gli utenti dell'organizzazione con le autorizzazioni appropriate possono creare nuovi rami contenenti codice nuovo o aggiornato. Tale codice può essere eseguito attraverso la stessa pipeline dei rami protetti. Inoltre, se il file YAML nel nuovo ramo viene modificato, il file YAML aggiornato verrà usato per eseguire la pipeline. Sebbene questa progettazione consenta una notevole flessibilità e self-service, non tutte le modifiche sono sicure (indipendentemente dal fatto che siano state apportate in modo dannoso o meno).

Se la pipeline usa codice sorgente o è definita in Azure Repos, è necessario comprendere completamente il modello Azure Repos autorizzazioni. In particolare, un utente con l'autorizzazione Crea ramo a livello di repository può introdurre codice nel repository anche se tale utente non dispone dell'autorizzazione di collaborazione.

Passaggi successivi

Informazioni sulla maggiore protezione offerta dai controlli sulle risorse protette.