Partilhar via


Protegendo o Azure Pipelines

Serviços de DevOps do Azure | Azure DevOps Server 2022 | Azure DevOps Server 2020

O Azure Pipelines coloca desafios de segurança exclusivos. Você pode usar um pipeline para executar scripts ou implantar código em ambientes de produção. Mas você quer garantir que seus pipelines de CI/CD não se tornem vias para executar códigos mal-intencionados. Você também deseja garantir que apenas o código que você pretende implantar seja implantado. A segurança deve ser equilibrada com dar às equipas a flexibilidade e o poder de que necessitam para gerir os seus próprios pipelines.

Nota

O Azure Pipelines é um entre uma coleção de Serviços de DevOps do Azure, todos criados na mesma infraestrutura segura no Azure. Para entender os principais conceitos de segurança para todos os Serviços de DevOps do Azure, consulte Visão geral da proteção de dados do Azure DevOps e Segurança e identidade do Azure DevOps.

Tradicionalmente, as organizações implementavam a segurança através de bloqueios draconianos. Código, pipelines e ambientes de produção tinham severas restrições de acesso e uso. Em pequenas organizações com poucos usuários e projetos, essa postura era relativamente fácil de gerenciar. No entanto, esse não é o caso em organizações maiores. Onde muitos usuários têm acesso de contribuinte ao código, deve-se "assumir a violação". Assumir a violação significa comportar-se como se um adversário tivesse acesso a alguns (se não a todos) dos repositórios.

O objetivo, neste caso, é evitar que esse adversário execute código malicioso no pipeline. Código malicioso pode roubar segredos ou corromper ambientes de produção. Outro objetivo é evitar a exposição lateral a outros projetos, pipelines e repositórios do pipeline comprometido.

Os pipelines YAML oferecem a melhor segurança para seus Pipelines do Azure. Em contraste com os pipelines clássicos de construção e liberação, os pipelines YAML:

  • Pode ser revisto o código. Os pipelines YAML não são diferentes de qualquer outra parte do código. Você pode impedir que agentes mal-intencionados introduzam etapas maliciosas em seus pipelines impondo o uso de Pull Requests para mesclar alterações. As políticas de filiais facilitam a configuração disso.
  • Fornecer gerenciamento de acesso a recursos. Os proprietários de recursos decidem se um pipeline YAML pode acessar um recurso ou não. Este recurso de segurança controla ataques como roubar outro repositório. Aprovações e verificações fornecem controle de acesso para cada execução de pipeline.
  • Suporta parâmetros de tempo de execução. Os parâmetros de tempo de execução ajudam a evitar uma série de problemas de segurança relacionados a variáveis, como a injeção de argumentos.

Esta série de artigos descreve recomendações para ajudá-lo a montar um pipeline de CI/CD seguro baseado em YAML. Ele também cobre os lugares onde você pode fazer compensações entre segurança e flexibilidade. A série também pressupõe familiaridade com o Azure Pipelines, as principais construções de segurança do Azure DevOps e o Git.

Tópicos abordados: