Як обмежити доступ до файлової системи в побудовах Atlassian Bamboo?


12

У нас є Atlassian Bamboo на Ubuntu. Коли розробник встановлює збірку, він або вона має можливість запускати завдання скрипту оболонки. Це корисно запускати (власні) команди на базі коду, який ви будуєте.

Однак запущені сценарії також можуть отримати доступ до файлової системи за межами своєї роботи в робочому каталозі Bamboo ( <Bamboo-home-dir>/xml-data/build-dir/JOB_KEY). Так JOB_A можна також отримати доступ до файлів на JOB_B: cd ../JOB_B.

Чи є можливість обмежити цей доступ?

PS Мені відомо про те, що в Bamboo працюють збірки (локальні або віддалені) агенти, і ви можете створювати різні проекти різними агентами. Однак якщо два проекти будуються одним і тим же агентом, проекти можуть мати доступ до файлів один одного.

Відповіді:


9

В даний час немає можливості обмежувати завдання, які можуть працювати на одному агенті від потенційно взаємодіючих один з одним. Існує купа запитів на функції, які просять про подібну деталізацію, але якщо я правильно розумію ваше запитання, найбільш підходящим запитом буде цей билет на BAM-2504 Jira

Це величезна прогалина в продуктовій лінійці, єдине знайдене нами рішення схоже на те, що пропонується вищезгаданим запитом. По суті, ваш бамбуковий процес повинен працювати з достатніми привілеями, щоб представити набір користувачів, які представляють проекти, які представляють ти хотів би тримати окремо.

Коли у вас є такий механізм, вам просто потрібно спробувати домогтися того, щоб усі плани працювали як один із несанкціонованих облікових записів, залежно, наприклад, від проекту чи творця тощо.

Проблематично те, що зараз існує контроль доступу, це означатиме, що мало основних адміністраторів потрібно буде створити всі плани, щоб вони могли бути впевнені в необхідних дозволах розділення, а не дозволяти користувачам, які не є адміністративними, редагувати та створювати свої власні плани.

Якщо такий підхід неможливо здійснити, що це не один раз, коли ви потрапляєте в діапазон типів «багато сотень користувачів», то єдине, що ви дійсно можете зробити, щоб спробувати зупинити побудову завдань від взаємодії один з одним - це реалізувати дуже слабке управління, яке дає вам бамбук.

Я спробував два підходи до цього:

  1. Видаліть або покалічіть (видаліть усі можливості) ваших локальних агентів і для кожного іншого проекту / команди / будь-чого, що на дошках вашого бамбукового екземпляра потрібно примусити їх до сервера збірки BYO. У більшості випадків я брав участь у вартості агента вкрай банально у порівнянні з вартістю можливого витоку даних або зловмисних взаємодій із планом.
  2. Переконайтесь, що проекти, які є, або які, на їхню думку, мають, чутливі дані, що беруть участь у їхніх планах, завжди санірують їхнє середовище після їх створення. Це перекладає тягар з команди, що адмініструє інструменти, і на проекти, які пишуть свої плани, і змушує їх захисно очищати будь-яку інформацію, яку вони не хочуть, щоб вона була доступною для інших.

Жодне рішення не є близьким до ідеального, але, наскільки мені відомо, це приблизно стільки розлуки, скільки ви можете застосувати, якщо у вас є спільний екземпляр бамбука.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.