Come limitare l'accesso al filesystem nelle build di Atlassian Bamboo?


12

Abbiamo Atlassian Bamboo in esecuzione su Ubuntu. Quando uno sviluppatore sta configurando una build, allora ha la possibilità di eseguire attività di script di shell. Ciò è utile per eseguire comandi (personalizzati) sulla base di codice che si sta creando.

Tuttavia, gli script eseguiti possono anche accedere al filesystem al di fuori della loro directory di lavoro nella directory di lavoro di Bamboo ( <Bamboo-home-dir>/xml-data/build-dir/JOB_KEY). Così JOB_A può anche accedere ai file di JOB_B: cd ../JOB_B.

Esiste la possibilità di limitare questo accesso?

PS Sono consapevole del fatto che le build sono gestite da agenti (locali o remoti) in Bamboo e puoi creare progetti diversi da agenti diversi. Tuttavia, se due progetti vengono creati dallo stesso agente, i progetti potrebbero accedere ai file degli altri.

Risposte:


9

Al momento non è possibile limitare i lavori che possono essere eseguiti sullo stesso agente dall'interazione potenzialmente reciproca. Esistono molte richieste di funzionalità che richiedono questo tipo di granularità, ma se capisco correttamente la tua domanda, la richiesta più adatta sarebbe questa BAM-2504 Jira Ticket

È un enorme divario nella linea di prodotti, l'unica soluzione che ho trovato è simile a quella proposta dalla richiesta collegata sopra, essenzialmente il tuo processo di bambù dovrebbe essere eseguito con privilegi sufficienti per impersonare un insieme di utenti che rappresentano i progetti che ti piacerebbe rimanere separato.

Una volta che hai messo in atto questo tipo di meccanismo, devi solo provare a far rispettare tutti i piani come uno degli account impersonabili, a seconda del progetto o del creatore, ecc.

Il modo in cui esiste attualmente il controllo degli accessi significherebbe che pochi amministratori di base dovrebbero impostare tutti i piani in modo che possano essere sicuri della divisione delle autorizzazioni necessarie piuttosto che consentire agli utenti non amministrativi di modificare e creare i propri piani.

Se questo tipo di approccio non è fattibile, cosa che non accade una volta che si entra nel tipo di intervallo "molte centinaia di utenti", l'unica cosa che si può davvero fare per cercare di impedire ai lavori di costruzione di interagire tra loro è implementare il controlli molto deboli che il bambù ti dà.

Ho provato due approcci per farlo:

  1. Elimina o paralizza (rimuovi tutte le funzionalità da) i tuoi agenti locali e per ogni diverso progetto / team / qualunque cosa si trovi sulle schede della tua istanza di bambù, devi forzarli sul server di compilazione BYO. Nella maggior parte dei casi sono stato coinvolto nel costo di un agente assolutamente banale rispetto al costo di una potenziale perdita di dati o interazioni di piani dannosi.
  2. Assicurati che i progetti che hanno, o che pensano di avere, i dati sensibili coinvolti nei loro piani igienizzino sempre i loro ambienti dopo la loro creazione. Ciò sposta l'onere della squadra che gestisce gli strumenti e sui progetti scrivendo i loro piani e li costringe a ripulire in modo difensivo qualsiasi informazione che non desiderano essere potenzialmente disponibile per gli altri.

Nessuna delle due soluzioni è neppure vicina alla perfezione, ma per quanto ne so, si tratta della massima separazione che è possibile applicare se si dispone di un'istanza di bambù condivisa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.