Ресурсы конвейера

Azure DevOps Services | Azure DevOps Server 2022 г. | Azure DevOps Server 2020 г.

Azure Pipelines обеспечивает безопасность не только для защиты файла YAML и исходного кода. При запуске конвейеров YAML доступ к ресурсам проходит через систему, называемую проверками. Проверки могут приостанавливать или даже завершать выполнение конвейера, чтобы обеспечить безопасность ресурсов. Конвейер может обращаться к двум типам ресурсов: защищенным и открытым.

Защищенные ресурсы

Конвейеры часто имеют доступ к секретам. Например, чтобы подписать сборку, требуется сертификат подписи. Для развертывания в рабочей среде требуются учетные данные для этой среды. Azure Pipelines требует роль администратора при открытии доступа ко всем конвейерам для всех защищенных ресурсов, за исключением сред. Для сред вам потребуется роль Создатель . Дополнительные сведения о защите ресурсов.
В Azure Pipelines все перечисленные ниже ресурсы считаются защищенными в конвейерах YAML:

"Защищенный" означает:

  • Они могут быть доступны для определенных пользователей и определенных конвейеров в проекте. Пользователи и конвейеры не могут получить к ней доступ за пределами проекта.
  • Вы можете выполнять другие ручные или автоматические проверки каждый раз, когда конвейер YAML использует один из этих ресурсов. Дополнительные сведения о защищенных ресурсах см. в разделе Сведения о ресурсах конвейера.

Защита ресурсов репозитория

При необходимости можно защитить репозитории. На уровне организации или проекта можно ограничить область маркера доступа Azure Pipelines указанными репозиториями. При этом Azure Pipelines добавит еще две защиты:

  • Маркер доступа, предоставленный агенту для выполнения заданий, будет иметь доступ только к репозиториям, явно упомянутым в resources разделе конвейера.
  • Репозитории, добавленные в конвейер, должны быть авторизованы пользователем с доступом к репозиторию, когда конвейер впервые использует репозиторий.

Этот параметр включен по умолчанию для всех организаций, созданных после мая 2020 г. Организации, созданные до этого, должны включить его в параметрах организации.

Открытие ресурсов

Все остальные ресурсы в проекте считаются открытыми . Открытые ресурсы включают:

  • Artifacts
  • Pipelines
  • Планы тестирования
  • Рабочие элементы

Дополнительные сведения о том, какие конвейеры могут обращаться к каким ресурсам, см. в разделе о проектах.

Разрешения пользователя

Первой линией защиты защищенных ресурсов являются разрешения пользователя. Как правило, убедитесь, что разрешения предоставляются только пользователям, которым они требуются. Все защищенные ресурсы имеют аналогичную модель безопасности. Член роли пользователя для ресурса может:

  • Удаление утверждающих и проверок, настроенных для этого ресурса
  • Предоставление доступа другим пользователям или конвейерам для использования этого ресурса

Снимок экрана: разрешения пользователя в конвейерах

Разрешения конвейера

При использовании конвейеров YAML разрешения пользователя недостаточно для защиты защищенных ресурсов. Вы можете легко скопировать имя защищенного ресурса (например, подключение службы для рабочей среды) и включить его в другой конвейер. Разрешения конвейера защищают от такого копирования. Для каждого защищенного ресурса убедитесь, что вы отключили параметр предоставления доступа ко всем конвейерам. Вместо этого явно предоставляется доступ к определенным конвейерам, которым вы доверяете.

Снимок экрана: разрешения конвейера

Проверки

В YAML сочетание разрешений пользователя и конвейера недостаточно для полной защиты защищенных ресурсов. Разрешения конвейера для ресурсов предоставляются всему конвейеру. Ничто не мешает злоумышленнику создать другую ветвь в репозитории, внедрить вредоносный код и использовать тот же конвейер для доступа к этому ресурсу. Даже без злонамеренного намерения большинству конвейеров требуется второй набор взгляда на изменения (особенно на сам конвейер) перед развертыванием в рабочей среде. Проверки позволяют приостановить выполнение конвейера до тех пор, пока не будут выполнены определенные условия:

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

Снимок экрана: настройка проверок

Дальнейшие действия

Далее подумайте, как сгруппировать ресурсы в структуру проекта.