Использование разрешений / других функций для ограничения развертывания в Azure DevOps

#azure-devops

#azure-devops

Вопрос:

Мне нужно настроить разрешения и использовать встроенные функции для ограничения развертывания в Azure DevOps, чтобы пользователи с ограниченным доступом могли выпускать версии только в средах разработки / тестирования, а пользователи с привилегированным доступом могли развертывать во всех средах, включая, например, staging / prod.

Я хотел бы достичь этого, не разделяя конвейеры выпуска — лучше всего просто использовать утверждения перед развертыванием или есть лучший способ вообще запретить развертывание в prod для пользователей с ограниченным доступом?

Можно ли это сделать, например, ограничив доступ к подключениям к службам? Таким образом, ограниченный пользователь будет иметь «Пользовательский» доступ к подключениям к службе разработки / тестирования, но не промежуточный / prod, в качестве системы безопасности?

Просто ищу несколько советов / рекомендаций по наилучшей практике.

Спасибо..

Ответ №1:

Вы могли бы использовать группы развертывания для решения этой проблемы.

Группа развертывания — это логический набор целевых машин развертывания, на каждой из которых установлены агенты. Группы развертывания представляют физические среды; например, «Dev», «Test», «UAT» и «Production». По сути, группа развертывания — это просто еще одна группа агентов, очень похожая на пул агентов.

При создании Azure Pipelines или конвейера выпуска TFS вы можете указать цели развертывания для задания, используя группу развертывания. Это упрощает определение параллельного выполнения задач развертывания.

Группы развертывания:

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

введите описание изображения здесь

Кроме того, предлагаю вам также ознакомиться с этим блогом: Настройка конвейеров выпуска для безопасных развертываний, которые включают несколько точек:

  1. Постепенное развертывание в нескольких средах
  2. Единый рабочий процесс развертывания для всех сред
  3. Утверждение развертывания вручную
  4. Разделение ролей
  5. Проверка работоспособности во время развертывания
  6. Фильтры ветвей для развертываний
  7. Защита конвейеров

Комментарии:

1. Спасибо, Патрик, хотя группы развертывания в этом сценарии не подходят. В последней предоставленной вами ссылке содержится несколько полезных советов, и я мог бы пойти по этому пути.

2. Патрик, как бы вы разрешили пользователю выполнять развертывание в группе развертывания A, но не в B? Я могу добиться этого, установив «Утверждения перед развертыванием» на каждом этапе конвейера выпуска, но я не хочу делать это на каждом конвейере выпуска, я бы хотел обрабатывать на уровне группы развертывания. Я перепробовал несколько ролей, но, похоже, у меня ничего не получается