Skip to content
Latchkey

O Que É Isolamento de Runner? Impedindo que Jobs Afetem Uns aos Outros

Isolamento de runner é o grau em que cada job de CI é mantido separado dos outros, de modo que um job não possa ler os secrets de outro, ver seus arquivos ou corromper seu ambiente.

Jobs de CI lidam com secrets e código não confiável, então isolamento é uma propriedade de segurança, não um luxo. Isolamento fraco significa que um job (ou um PR malicioso) pode alcançar outro. Isolamento forte significa que cada job fica selado.

Por que o isolamento importa

Jobs rodam com acesso a secrets, código-fonte e credenciais. Sem isolamento, um job comprometido ou malicioso em um runner compartilhado poderia roubar os secrets do próximo job, adulterar suas saídas ou deixar um backdoor persistente para depois.

Níveis de isolamento

  • Processo: fraco - jobs compartilham o mesmo SO e podem ver uns aos outros.
  • Container: melhor - namespaces separam os jobs, mas compartilham um kernel.
  • VM / máquina nova: forte - cada job recebe sua própria máquina, destruída depois.

Isolamento e efemeridade

Runners efêmeros são o isolamento prático mais forte: uma máquina nova por job, destruída em seguida, significa que nada de um job sobrevive para alcançar o próximo. Runners compartilhados persistentes são os mais fracos porque estado e acesso são carregados adiante.

Isolamento em runners gerenciados

O Latchkey roda cada job em seu próprio runner efêmero que é destruído em seguida, então os jobs ficam isolados por padrão e os secrets nunca permanecem para o próximo job encontrar.

Isolamento e pull requests não confiáveis

A carga de CI mais arriscada é um pull request de um fork rodando com acesso a secrets. Isolamento forte - uma máquina nova, de uso único, que é derrubada após o job - limita o que um PR malicioso pode alcançar e garante que nada do que ele faz persista até a próxima execução.

Principais conclusões

  • Isolamento de runner mantém cada job separado de todos os outros.
  • Sem ele, um job pode roubar secrets ou corromper outro.
  • O isolamento varia de fraco, em nível de processo, a forte, com uma máquina por job.
  • Runners efêmeros de uso único dão o isolamento prático mais forte.

Guias relacionados