Atlassian Bambooビルドでファイルシステムアクセスを制限する方法


12

UbuntuでAtlassian Bambooを実行しています。開発者がビルドをセットアップするとき、開発者はシェルスクリプトタスクを実行する可能性があります。これは、ビルドしているコードベースで(カスタム)コマンドを実行するのに役立ちます。

ただし、実行するスクリプトは、Bamboo作業ディレクトリ(<Bamboo-home-dir>/xml-data/build-dir/JOB_KEY)のジョブディレクトリ外のファイルシステムにもアクセスできます。したがって、JOB_AはJOB_B:のファイルにもアクセスできますcd ../JOB_B

このアクセスを制限する可能性はありますか?

PS私はビルドがBambooの(ローカルまたはリモート)エージェントによって実行され、異なるエージェントによって異なるプロジェクトをビルドできるという事実を知っています。ただし、2つのプロジェクトが同じエージェントによってビルドされている場合、プロジェクトは互いのファイルにアクセスできます。

回答:


9

現在、同じエージェントで実行できるジョブが互いに相互作用する可能性を制限する機能はありません。この種の細かさを要求する多数の機能リクエストがありますが、私があなたの質問を正しく理解している場合、最も適切なリクエストはこれですBAM-2504 Jiraチケット

これは製品ラインの大きなギャップです。私が見つけた唯一の解決策は、上記のリンクで提案されているものと同様です。基本的に、bambooプロセスは、プロジェクトを表す一連のユーザーを偽装するのに十分な権限で実行する必要があります。あなたは別々に保ちたいです。

この種のメカニズムが整ったら、プロジェクトや作成者などに応じて、すべてのプランが偽装アカウントの1つとして実行されるように強制する必要があります。

問題は、現在アクセス制御が存在する方法です。つまり、管理者以外のユーザーが独自のプランを編集および作成するのではなく、必要な権限の分割を確認できるように、すべてのプランを設定する必要があるコア管理者はほとんどいません。

このようなアプローチが実現不可能であり、「何百人ものユーザー」タイプの範囲に入ることができない場合、ビルドジョブが相互に作用しないようにするために実際にできる唯一のことは、竹があなたに与える非常に弱いコントロール。

私はこれを行うために2つのアプローチを試しました:

  1. ローカルエージェントを削除するか、クリッピング(からすべての機能を削除)し、bambooインスタンスへのボード上のすべての異なるプロジェクト/チーム/何でも、BYOビルドサーバーに強制する必要があります。ほとんどの場合、私がエージェントのコストに関与してきたのは、潜在的なデータ漏えいや悪意のある計画の相互作用のコストと比較して、まったく取るに足らないことです。
  2. 計画に含まれる機密データを持っている、または持っていると思われるプロジェクトは、ビルド後の環境を常にサニタイズするようにしてください。これにより、ツールを管理するチームの負担を軽減し、計画を作成するプロジェクトに負担をかけ、他のユーザーが利用できないようにする必要のある情報を防御的にクリーンアップする必要があります。

どちらのソリューションも完璧に近いわけではありませんが、共有されている竹のインスタンスがある場合に実行できる分離とほぼ同じくらいの私の知識の範囲内です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.