Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Во время выполнения каждое задание в конвейере может получить доступ к другим ресурсам в Azure DevOps. Например, задание может:
- Ознакомьтесь с исходным кодом из репозитория Git
- Добавление тега в репозиторий
- Доступ к веб-каналу в Артефактах Azure
- Отправка журналов из агента в службу
- Отправка результатов теста и других артефактов из агента в службу
- Обновление рабочего элемента
Azure Pipelines использует маркеры доступа к заданиям для выполнения этих задач. Маркер доступа к заданию — это маркер безопасности, динамически создаваемый Azure Pipelines для каждого задания во время выполнения. Агент, на котором выполняется задание, использует маркер доступа к заданию для доступа к этим ресурсам в Azure DevOps. Вы можете управлять доступом к ресурсам конвейера, управляя тем, как разрешения предоставляются маркерам доступа к заданию.
Разрешения маркера являются производными от области авторизации задания (a) и (b) разрешений, заданных в учетной записи службы сборки проекта или коллекции.
Область авторизации задания
Область авторизации задания можно задать для коллекции или проекта. Задав область сбора, вы можете разрешить конвейерам доступ ко всем репозиториям в коллекции или организации. Задав область проекта, вы решили ограничить доступ только к этим репозиториям, которые находятся в том же проекте, что и конвейер.
Область авторизации задания можно задать для всей организации Azure DevOps или для определенного проекта.
Замечание
В Azure DevOps Server 2020 ограничение области авторизации задания до текущего проекта применяется только к конвейерам YAML и классическим конвейерам сборки. Он не применяется к классическим конвейерам выпуска. Классические конвейеры выпуска всегда выполняются с областью сбора проектов.
Чтобы задать область авторизации задания для организации, выполните следующие действия.
- Перейдите на страницу параметров организации в пользовательском интерфейсе Azure DevOps.
- Выберите "Параметры" в разделе "Конвейеры".
- Включите область авторизации задания в текущий проект , чтобы ограничить область проекта. Это рекомендуемый параметр, так как он повышает безопасность конвейеров.
Чтобы задать область авторизации задания для определенного проекта, выполните указанные действия.
- Перейдите на страницу параметров проекта в пользовательском интерфейсе Azure DevOps.
- Выберите "Параметры" в разделе "Конвейеры".
- Включите область авторизации задания в текущий проект , чтобы ограничить область проекта. Это рекомендуемый параметр, так как он повышает безопасность конвейеров.
- Чтобы задать область авторизации заданий на уровне организации для всех проектов, выберите параметры>конвейеров> организации.
- Чтобы задать область авторизации задания для определенного проекта, выберите параметры параметров>конвейеров> проекта.
Включите один или несколько следующих параметров. Рекомендуется включить эти параметры, так как он повышает безопасность конвейеров.
- Ограничить область авторизации задания текущим проектом для конвейеров, отличных от выпуска . Этот параметр применяется к конвейерам YAML и классическим конвейерам сборки и не применяется к классическим конвейерам выпуска.
- Ограничить область авторизации задания текущим проектом для конвейеров выпуска . Этот параметр применяется только к классическим конвейерам выпуска .
Замечание
Если для области задан проект на уровне организации, невозможно изменить область в каждом проекте.
Это важно
Если область не ограничена на уровне организации или на уровне проекта, то каждое задание в конвейере YAML получает маркер доступа к заданию с областью сбора. Другими словами, конвейер имеет доступ к любому репозиторию в любом проекте вашей организации. Если злоумышленник может получить доступ к одному конвейеру в одном проекте, он сможет получить доступ к любому репозиторию в вашей организации. Поэтому рекомендуется ограничить область на самом высоком уровне (параметры организации) для хранения атаки на один проект.
Замечание
Если конвейер находится в общедоступном проекте, область авторизации задания автоматически ограничивается проектом независимо от того, что вы настраиваете в любом параметре. Задания в общедоступном проекте могут получить доступ к ресурсам, таким как артефакты сборки или результаты тестирования только в проекте, а не из других проектов организации.
Ограничение области авторизации задания на репозитории Azure DevOps
Помимо параметров области авторизации задания, описанных в предыдущем разделе, Azure Pipelines предоставляет область авторизации задания с указанием параметра репозиториев Azure DevOps .
Конвейеры могут получить доступ к любым репозиториям Azure DevOps в авторизованных проектах, если не включена область авторизации заданий для ссылок на репозитории Azure DevOps . С помощью этого параметра можно уменьшить область доступа для всех конвейеров до только репозиториев Azure DevOps, на которые явно ссылается checkout шаг или uses инструкция в задании конвейера, использующем этот репозиторий.
Дополнительные сведения см. в репозиториях Azure Repos Git. Ограничение области авторизации задания на репозитории Azure DevOps.
Защита доступа к репозиториям в конвейерах YAML
Помимо параметров области авторизации задания, описанных в предыдущем разделе, Azure Pipelines предоставляет защищенный доступ к репозиториям в параметрах конвейеров YAML .
Конвейеры могут получить доступ к любым репозиториям Azure DevOps в авторизованных проектах, если только не включен доступ к репозиториям в конвейерах YAML . С помощью этого параметра можно уменьшить область доступа для всех конвейеров до только репозиториев Azure DevOps, на которые явно ссылается checkout шаг или uses инструкция в задании конвейера, использующем этот репозиторий.
Дополнительные сведения см. в репозиториях Azure Repos Git. Защита доступа к репозиториям в конвейерах YAML.
Это важно
Защита доступа к репозиториям в конвейерах YAML включена по умолчанию для новых организаций и проектов, созданных после мая 2020 г.
Удостоверения сборки с областью действия
Azure DevOps использует два встроенных удостоверения для выполнения конвейеров.
- Удостоверение с областью сбора, которое имеет доступ ко всем проектам в коллекции (или организации для Azure DevOps Services)
- Удостоверение с областью проекта, которое имеет доступ к одному проекту
Эти удостоверения являются разрешениями, необходимыми для выполнения действий во время выполнения сборки и выпуска при обратном вызове в систему Azure DevOps. Есть встроенные разрешения по умолчанию, и вы также можете управлять собственными разрешениями по мере необходимости.
Имя удостоверения в области коллекции имеет следующий формат:
Project Collection Build Service ({OrgName})- Например, если имя организации имеет
fabrikam-tailspinимя, у этой учетной записи есть имяProject Collection Build Service (fabrikam-tailspin).
Имя удостоверения в области проекта имеет следующий формат:
{Project Name} Build Service ({Org Name})- Например, если имя
fabrikam-tailspinорганизации и имяSpaceGameWebпроекта имеет имя, эта учетная запись имеет имяSpaceGameWeb Build Service (fabrikam-tailspin).
По умолчанию используется удостоверение области сбора, если не настроено в противном случае, как описано в предыдущем разделе области авторизации задания .
Управление разрешениями учетной записи службы сборки
Одним из результатов настройки доступа к области проекта может быть то, что удостоверение области проекта может не иметь разрешений на ресурс, который был задан в области коллекции.
Возможно, потребуется изменить разрешения маркера доступа к заданию в следующих сценариях:
- Вы хотите, чтобы конвейер был доступ к веб-каналу, который находится в другом проекте.
- Вы хотите, чтобы конвейер был ограничен изменением кода в репозитории.
- Вы хотите, чтобы конвейер был ограничен созданием рабочих элементов.
Чтобы обновить разрешения маркера доступа к заданию, выполните следующие действия.
Сначала определите область авторизации задания для конвейера. Ознакомьтесь с приведенным выше разделом, чтобы понять область авторизации задания. Если область авторизации задания является коллекцией, соответствующая учетная запись службы сборки сборки для управления разрешениями является Служба сборки project (имя коллекции). Если область авторизации задания является проектом, то учетная запись службы сборки для управления разрешениями для управления разрешениями является Служба сборки вашего проекта (имя коллекции).
Чтобы ограничить или предоставить дополнительный доступ к службе сборки коллекции Project (имя коллекции):
- Выберите "Управление безопасностью " в меню переполнения на странице "Конвейеры ".
- В разделе "Пользователи" выберите "Служба сборки коллекции проектов" (имя коллекции).
- Внесите изменения в разрешения, связанные с конвейерами, для этой учетной записи.
- Перейдите к параметрам организации Azure DevOps (или параметрам коллекции для коллекции проектов).
- Выберите разрешения в разделе "Безопасность".
- На вкладке "Пользователи" найдите службу сборки коллекции проектов (имя коллекции).
- Внесите изменения в разрешения, не связанные с конвейерами, для этой учетной записи.
- Так как служба сборки коллекции проектов (имя коллекции) является пользователем в вашей организации или коллекции, вы можете явно добавить эту учетную запись в любой ресурс ( например, в веб-канал в Azure Artifacts).
Чтобы ограничить или предоставить дополнительный доступ к службе сборки your-project-name (your-collection-name):
- Учетная запись службы сборки, в которой можно управлять разрешениями, будет создана только после запуска конвейера один раз. Убедитесь, что вы уже запустили конвейер один раз.
- Выберите "Управление безопасностью " в меню переполнения на странице "Конвейеры ".
- В разделе
"Пользователи" выберите"Служба сборки "Ваш проект" (имя коллекции).> - Внесите изменения в разрешения, связанные с конвейерами, для этой учетной записи.
- Перейдите к параметрам организации Azure DevOps (или параметрам коллекции для коллекции проектов).
- Выберите разрешения в разделе "Безопасность".
- На вкладке "Пользователи" найдите службу сборки your-project-name (your-collection-name).
- Внесите изменения в разрешения, не связанные с конвейерами, для этой учетной записи.
- Так как служба сборки your-project-name (имя коллекции) является пользователем в вашей организации или коллекции, вы можете добавить эту учетную запись явно в любой ресурс ( например, в веб-канал в Azure Artifacts).
Настройка разрешений для доступа к другому проекту в той же коллекции проектов
В этом примере fabrikam-tailspin/SpaceGameWeb удостоверение сборки с областью проекта предоставляется разрешения на доступ fabrikam-tailspin/FabrikamFiber к проекту.
В проекте FabrikamFiber перейдите к параметрам проекта, разрешениям.
Создайте группу с именем "Внешние проекты" и добавьте учетную запись службы сборки SpaceGameWeb .
Выберите "Пользователи", начните вводить имя SpaceGameWeb и выберите учетную запись службы сборки SpaceGameWeb . Если изначально не отображаются результаты поиска, выберите "Развернуть поиск".
Предоставьте пользователю разрешение на просмотр сведений на уровне проекта .
Пример. Настройка разрешений для доступа к другому репозиторию в той же коллекции проектов
В этом примере fabrikam-tailspin/SpaceGameWeb удостоверение сборки с областью проекта предоставляется разрешение на доступ к FabrikamFiber репозиторию в fabrikam-tailspin/FabrikamFiber проекте.
Выполните действия, чтобы предоставить разрешение удостоверения сборки в
SpaceGameWebобласти проекта для доступа кFabrikamFiberпроекту.В проекте FabrikamFiber перейдите к параметрам проекта, репозиториям, FabrikamFiber.
+ Выберите значок, начните вводить имя SpaceGameWeb и выберите учетную запись службы сборки SpaceGameWeb.
Начните вводить имя SpaceGameWeb и выберите учетную запись Службы сборки SpaceGameWeb .
Предоставьте разрешения на чтение для этого пользователя.
Пример. Настройка разрешений для доступа к другим ресурсам в той же коллекции проектов
В этом примере fabrikam-tailspin/SpaceGameWeb удостоверение сборки с областью проекта предоставляет разрешения на доступ к другим ресурсам в fabrikam-tailspin/FabrikamFiber проекте.
Выполните действия, чтобы предоставить разрешение удостоверения сборки в
SpaceGameWebобласти проекта для доступа кFabrikamFiberпроекту.Настройте необходимые разрешения для этого пользователя.
Часто задаваемые вопросы
Как определить область авторизации задания конвейера YAML?
- Если проект является общедоступным проектом, область авторизации задания всегда является проектом независимо от других параметров.
- Проверьте параметры конвейера в параметрах организации Azure DevOps:
- Если включена область авторизации задания до текущего проекта , область — это проект.
- Если не включена область авторизации задания до текущего проекта , проверьте параметры конвейера в параметрах проекта в Azure DevOps:
- Если включена область авторизации задания до текущего проекта , область — это проект.
- В противном случае область является коллекцией.
- Если конвейер находится в частном проекте, проверьте параметры конвейера в параметрах организации Azure DevOps:
- Если включена область авторизации задания до текущего проекта для конвейеров, отличных от выпуска , область — это проект.
- Если не включена область авторизации задания до текущего проекта для конвейеров, отличных от выпуска , проверьте параметры конвейера в параметрах проекта в Azure DevOps:
- Если включена область авторизации задания до текущего проекта для конвейеров, отличных от выпуска , область — это проект.
- В противном случае область является коллекцией.
Как определить область авторизации задания классического конвейера сборки?
- Если конвейер находится в общедоступном проекте, область авторизации задания является проектом независимо от других параметров.
- Проверьте параметры конвейера в параметрах организации Azure DevOps:
- Если включена область авторизации задания до текущего проекта , область — это проект.
- Если не включена область авторизации задания до текущего проекта , проверьте параметры конвейера в параметрах проекта в Azure DevOps:
- Если включена область авторизации задания до текущего проекта , область — это проект.
- Если область авторизации задания ограничена текущим проектом , откройте редактор конвейера и перейдите на вкладку "Параметры ".
- Если область авторизации задания сборки является текущим проектом, областью является проект.
- В противном случае область является коллекцией.
- Если конвейер находится в частном проекте, проверьте параметры конвейера в параметрах организации Azure DevOps:
- Если включена область авторизации задания до текущего проекта для конвейеров, отличных от выпуска , область — это проект.
- Если не включена область авторизации задания до текущего проекта для конвейеров, отличных от выпуска , проверьте параметры конвейера в параметрах проекта в Azure DevOps:
- Если включена область авторизации задания до текущего проекта для конвейеров, отличных от выпуска , область — это проект.
- Если область авторизации задания ограничена текущим проектом для конвейеров, отличных от выпуска , откройте редактор для конвейера и перейдите на вкладку "Параметры ".
- Если область авторизации задания сборки является текущим проектом, областью является проект.
- Кроме того, область является коллекцией.
При создании классического конвейера область авторизации задания устанавливается в текущий проект, а область авторизации задания сборки устанавливается по умолчанию.
Как определить область авторизации задания классического конвейера выпуска?
Классические конвейеры выпуска в Azure DevOps Server 2020 и ниже выполняются с областью сбора .
- Если конвейер находится в общедоступном проекте, область авторизации задания является проектом независимо от других параметров.
- Если конвейер находится в частном проекте, проверьте параметры конвейера в параметрах организации Azure DevOps:
- Если включена область авторизации задания до текущего проекта для конвейеров выпуска , область — это проект.
- Если не включена область авторизации задания для текущего проекта для конвейеров выпуска , проверьте параметры конвейера в параметрах проекта в Azure DevOps:
- Если включена область авторизации задания до текущего проекта для конвейеров выпуска , область — это проект.
- В противном случае область является коллекцией.