Como restringir o acesso ao sistema de arquivos nas versões do Atlassian Bamboo?

12

Temos o Atlassian Bamboo em execução no Ubuntu. Quando um desenvolvedor está configurando uma compilação, ele ou ela tem a possibilidade de executar tarefas de script de shell. Isso é útil para executar comandos (personalizados) na base de código que você está construindo.

No entanto, os scripts executados também podem acessar o sistema de arquivos fora do diretório de tarefas no diretório de trabalho Bamboo ( <Bamboo-home-dir>/xml-data/build-dir/JOB_KEY). Então JOB_A também pode acessar arquivos de JOB_B: cd ../JOB_B.

Existe a possibilidade de restringir esse acesso?

PS Estou ciente do fato de que as compilações são executadas por agentes (locais ou remotos) no Bamboo e você pode criar projetos diferentes por diferentes agentes. No entanto, se dois projetos forem criados pelo mesmo agente, os projetos poderão acessar os arquivos um do outro.

7ochem
fonte

Respostas:

9

Atualmente, não há capacidade de restringir os trabalhos que podem ser executados no mesmo agente a interagir potencialmente entre si. Há um monte de pedidos de recurso pedindo esse tipo de granularidade, mas se eu entendi sua pergunta corretamente a solicitação mais adequado seria este BAM-2504 Ticket Jira

É uma enorme lacuna na linha de produtos, a única solução que encontrei é semelhante à proposta pela solicitação acima, essencialmente seu processo de bambu precisaria ser executado com privilégios suficientes para representar um conjunto de usuários que representam os projetos que você gostaria de se manter separado.

Depois de ter esse tipo de mecanismo, basta tentar fazer cumprir todos os planos como uma das contas personificáveis, dependendo, por exemplo, do projeto ou do criador, etc.

Problematicamente, da maneira que os controles de acesso existem atualmente, isso significa que poucos administradores principais precisariam configurar todos os planos para garantir a divisão das permissões necessárias, em vez de permitir que usuários não administrativos editem e criem seus próprios planos.

Se esse tipo de abordagem não for viável, o que não ocorre quando você entra no tipo de intervalo "muitas centenas de usuários", a única coisa que você pode realmente fazer para tentar impedir a criação de trabalhos de interagir um com o outro é implementar o controles muito fracos que o bambu lhe dá.

Eu tentei duas abordagens para fazer isso:

  1. Exclua ou aleije (remova todos os recursos) seus agentes locais e, para cada projeto / equipe / o que quer que seja necessário nos quadros da sua instância de bambu, você precisa forçá-los ao BYO build server. Na maioria dos casos, eu estive envolvido no custo de um agente é absolutamente trivial em comparação com o custo de vazamento de dados em potencial ou interações de planos maliciosos.
  2. Verifique se os projetos que possuem, ou pensam que possuem, dados confidenciais envolvidos em seus planos sempre limpam seus ambientes depois de construídos. Isso transfere o ônus da equipe que administra as ferramentas para os projetos que escrevem seus planos e os obriga a limpar defensivamente qualquer informação que eles não desejem potencialmente disponível para os outros.

Nenhuma das soluções é quase perfeita, mas, até onde eu sei, é o máximo de separação possível, se você tiver uma instância de bambu compartilhada.

hvindin
fonte