Wie kann der Dateisystemzugriff in Atlassian Bamboo-Builds eingeschränkt werden?

12

Wir haben Atlassian Bamboo unter Ubuntu. Wenn ein Entwickler einen Build einrichtet, hat er die Möglichkeit, Shell-Skriptaufgaben auszuführen. Dies ist nützlich, um (benutzerdefinierte) Befehle auf der Codebasis auszuführen, die Sie erstellen.

Die ausgeführten Skripte können jedoch auch außerhalb ihres Jobverzeichnisses im Bamboo-Arbeitsverzeichnis ( <Bamboo-home-dir>/xml-data/build-dir/JOB_KEY) auf das Dateisystem zugreifen . So kann JOB_A auch auf Dateien von JOB_B zugreifen : cd ../JOB_B.

Gibt es eine Möglichkeit, diesen Zugriff einzuschränken?

PS Ich bin mir der Tatsache bewusst, dass Builds von (lokalen oder Remote-) Agenten in Bamboo ausgeführt werden und Sie verschiedene Projekte von verschiedenen Agenten erstellen können. Wenn jedoch zwei Projekte von demselben Agenten erstellt werden, können die Projekte auf die Dateien des anderen zugreifen.

7ochem
quelle

Antworten:

9

Derzeit ist es nicht möglich, Jobs, die auf demselben Agenten ausgeführt werden können, daran zu hindern, möglicherweise miteinander zu interagieren. Es gibt eine Reihe von Funktionsanfragen, die nach dieser Art von Granularität fragen. Wenn ich Ihre Frage jedoch richtig verstehe, ist dieses BAM-2504 Jira-Ticket die am besten geeignete Anfrage

Es ist eine große Lücke in der Produktlinie. Die einzige Lösung, die ich gefunden habe, ähnelt der in der oben verlinkten Anfrage vorgeschlagenen. Im Wesentlichen müsste Ihr Bambusprozess mit ausreichenden Berechtigungen ausgeführt werden, um sich als eine Gruppe von Benutzern auszugeben, die die Projekte repräsentieren, die Sie möchten getrennt bleiben.

Sobald Sie diese Art von Mechanismus eingerichtet haben, müssen Sie nur noch versuchen, durchzusetzen, dass alle Pläne als eines der unpersönlichen Konten ausgeführt werden, abhängig beispielsweise vom Projekt oder vom Ersteller usw.

Die Art und Weise, wie Zugriffskontrollen derzeit existieren, würde problematisch bedeuten, dass nur wenige Kernadministratoren alle Pläne einrichten müssten, damit sie sicher sein können, dass die erforderlichen Berechtigungen aufgeteilt werden, anstatt nicht-administrative Benutzer ihre eigenen Pläne bearbeiten und erstellen zu lassen.

Wenn diese Art von Ansatz nicht durchführbar ist, was nicht der Fall ist, wenn Sie erst einmal in den Bereich "viele hundert Benutzer" gelangt sind, können Sie nur versuchen, die Interaktion von Build-Jobs zu verhindern, indem Sie die implementieren sehr schwache Kontrollen, die Bambus Ihnen gibt.

Ich habe zwei Ansätze versucht, um dies zu tun:

  1. Löschen oder lähmen Sie (entfernen Sie alle Funktionen von) Ihren lokalen Agenten und für jedes andere Projekt / Team / was auch immer das auf den Boards Ihrer Bambusinstanz ist, müssen Sie sie zum BYO-Build-Server zwingen. In den meisten Fällen, in denen ich an den Kosten eines Agenten beteiligt war, ist dies im Vergleich zu den Kosten für potenzielle Datenlecks oder böswillige Planinteraktionen äußerst trivial.
  2. Stellen Sie sicher, dass Projekte, die vertrauliche Daten in ihren Plänen haben oder zu haben glauben, ihre Umgebungen nach dem Erstellen immer bereinigen. Dies entlastet das Team, das die Tools verwaltet, von den Projekten, die ihre Pläne schreiben, und zwingt sie, alle Informationen, die sie möglicherweise nicht anderen zur Verfügung stellen möchten, defensiv zu bereinigen.

Keine der beiden Lösungen ist nahezu perfekt, aber nach meinem besten Wissen ist dies ungefähr so ​​viel Trennung, wie Sie erzwingen können, wenn Sie eine gemeinsame Bambusinstanz haben.

hvindin
quelle