Bagaimana cara membatasi akses sistem file di Atlassian Bamboo builds?

12

Kami memiliki Atlassian Bamboo yang berjalan di Ubuntu. Saat pengembang menyiapkan bangunan, maka ia memiliki kemungkinan untuk menjalankan tugas skrip shell. Ini berguna untuk menjalankan perintah (khusus) pada basis kode yang Anda buat.

Namun, skrip yang menjalankan juga dapat mengakses sistem file di luar direktori pekerjaan mereka di direktori kerja Bamboo ( <Bamboo-home-dir>/xml-data/build-dir/JOB_KEY). Jadi JOB_A juga dapat mengakses file dari JOB_B: cd ../JOB_B.

Apakah ada kemungkinan untuk membatasi akses ini?

PS Saya mengetahui fakta bahwa build dijalankan oleh agen (lokal atau jauh) di Bamboo dan Anda dapat membangun proyek yang berbeda oleh agen yang berbeda. Namun, jika dua proyek dibangun oleh agen yang sama, proyek tersebut dapat mengakses file masing-masing.

7ochem
sumber

Jawaban:

9

Saat ini tidak ada kemampuan untuk membatasi pekerjaan yang dapat dijalankan pada agen yang sama agar tidak saling berinteraksi. Ada banyak permintaan fitur yang meminta granularity semacam ini, tetapi jika saya memahami pertanyaan Anda dengan benar, permintaan yang paling pas adalah Bira-2504 Jira Ticket yang satu ini

Ini adalah celah besar di lini produk, satu-satunya solusi yang saya temukan mirip dengan apa yang diusulkan oleh permintaan yang terkait di atas, pada dasarnya proses bambu Anda perlu dijalankan dengan hak istimewa yang cukup untuk menyamar sebagai set pengguna yang mewakili proyek-proyek yang Anda ingin tetap terpisah.

Setelah Anda memiliki mekanisme semacam ini, Anda hanya perlu mencoba untuk menegakkan bahwa semua rencana dijalankan sebagai salah satu akun yang tidak dapat ditiru, tergantung misalnya pada proyek atau pembuatnya, dll.

Secara problematis bagaimana kontrol akses saat ini ada, ini berarti bahwa beberapa admin inti perlu mengatur semua rencana sehingga mereka dapat yakin akan izin yang diperlukan terpecah daripada membiarkan pengguna non-administratif mengedit dan membuat rencana mereka sendiri.

Jika pendekatan semacam ini tidak layak, yang tidak begitu Anda masuk ke jenis "banyak pengguna", maka satu-satunya hal yang dapat Anda lakukan untuk mencoba dan berhenti membangun pekerjaan agar tidak saling berinteraksi adalah menerapkan kontrol yang sangat lemah yang diberikan bambu kepada Anda.

Saya sudah mencoba dua pendekatan untuk melakukan ini:

  1. Hapus atau pincang (hapus semua kemampuan dari) agen lokal Anda dan untuk setiap proyek / tim / apa pun yang ada di papan contoh bambu Anda, Anda perlu memaksa mereka untuk membangun server BYO. Dalam kebanyakan kasus saya telah terlibat dalam biaya agen yang benar-benar sepele dibandingkan dengan biaya kebocoran data potensial atau interaksi rencana jahat.
  2. Pastikan bahwa proyek yang memiliki, atau yang berpikir mereka miliki, data sensitif yang terlibat dalam rencana mereka selalu membersihkan lingkungan mereka setelah mereka membangun. Ini mengalihkan beban dari tim yang mengelola alat dan ke proyek menulis rencana mereka dan memaksa mereka untuk secara defensif membersihkan informasi yang mereka tidak inginkan tersedia bagi orang lain.

Tidak ada solusi yang mendekati sempurna tetapi yang terbaik dari pengetahuan saya tentang pemisahan sebanyak yang Anda bisa lakukan jika Anda memiliki contoh bambu bersama.

hvindin
sumber