Защита Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Azure Pipelines создает уникальные проблемы безопасности. Конвейер можно использовать для запуска скриптов или развертывания кода в рабочих средах. Но вы хотите убедиться, что конвейеры CI/CD не становятся способами запуска вредоносного кода. Вы также хотите убедиться, что развертывается только код, который планируется развернуть. Безопасность должна быть сбалансирована с предоставлением командам гибкости и мощности, необходимой для запуска собственных конвейеров.

Примечание.

Azure Pipelines — это одна из коллекций Azure DevOps Services, построенных на одной и той же безопасной инфраструктуре в Azure. Основные понятия безопасности для всех служб Azure DevOps Services см. в обзоре Azure DevOps Data Protection и Azure DevOps Security и Identity.

Традиционно организации реализовали безопасность с помощью драконовских блокировок. Код, конвейеры и рабочие среды имели серьезные ограничения на доступ и использование. В небольших организациях с несколькими пользователями и проектами эта позиция была относительно легкой для управления. Однако это не так в крупных организациях. Где многие пользователи имеют участник доступ к коду, необходимо "предположить нарушение". Предполагая, что нарушение означает поведение, как если бы злоумышленник участник доступ к некоторым (если не всем) репозиториев.

Цель в этом случае — запретить злоумышленнику запускать вредоносный код в конвейере. Вредоносный код может украсть секреты или поврежденные рабочие среды. Другая цель — предотвратить боковое воздействие на другие проекты, конвейеры и репозитории из скомпрометированного конвейера.

Конвейеры YAML обеспечивают оптимальную безопасность для azure Pipelines. В отличие от классических конвейеров сборки и выпуска, конвейеры YAML:

  • Можно проверить код. Конвейеры YAML не отличаются от любого другого фрагмента кода. Злоумышленники могут запретить злоумышленникам вводить вредоносные действия в конвейерах, применяя использование запросов на вытягивание для слияния изменений. Политики ветвей упрощают настройку этой политики.
  • Укажите управление доступом к ресурсам. Владельцы ресурсов решают, может ли конвейер YAML получить доступ к ресурсу или нет. Эти атаки функции безопасности, такие как кража другого репозитория. Утверждения и проверка обеспечивают управление доступом для каждого запуска конвейера.
  • Поддержка параметров среды выполнения. Параметры среды выполнения помогают избежать возникновения проблем безопасности, связанных с переменными, такими как внедрение аргументов.

В этой серии статей описываются рекомендации, помогающие объединить безопасный конвейер CI/CD на основе YAML. В нем также рассматриваются места, в которых можно сделать компромиссы между безопасностью и гибкостью. В серии также предполагается знакомство с Azure Pipelines, основными конструкциями безопасности Azure DevOps и Git.

Рассматриваются следующие темы: