Игнорирует ли функция «Может инициировать выпуск из сборки» шаблона выпуска параметры безопасности?

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

Мне удалось настроить Release Manager таким образом, чтобы я мог разделить эти роли. Пользователь A может управлять серверами, создавать среды, пути выпуска, а также шаблоны выпусков и устанавливать безопасность. Пользователь B может определить этапы выпуска в шаблоне выпуска, используя объекты, созданные пользователем A. Поскольку пользователь B не имеет права управлять безопасностью таким образом, можно гарантировать, что выпуск будет выполнен только пользователем C.

Однако проблема возникает, когда в шаблоне выпуска включена функция «Может инициировать выпуск из сборки». Когда он включен и для параметра «Release Build» установлено значение «Истина» в разделе «Процесс» шаблона сборки, тогда параметры безопасности шаблона выпуска игнорируются, и любой, у кого есть пользователь в управлении выпуском, даже без каких-либо разрешений, может запустить выпуск. из сборки.

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

Я ищу способ гарантировать, что выпуск может быть запущен ТОЛЬКО выделенным пользователем, в то время как другой пользователь имеет разрешение определять этапы выпуска одного и того же шаблона выпуска. Возможно, я что-то пропустил, но на данный момент кажется невозможным настроить это таким образом в управлении релизами. Буду признателен за любую помощь, если кому-то уже удалось его установить.


person zlogo    schedule 31.07.2015    source источник


Ответы (1)


Да, конечно. Если у вас есть сборка, привязанная к шаблону выпуска с включенной этой опцией, вы, по сути, говорите: «Я хочу, чтобы эта сборка выпускалась каждый раз после завершения сборки». Было бы бессмысленно выпускать сборку иногда, а иногда нет, потому что это нарушает золотое правило «согласованности» devops.

Я бы сказал, что это странное требование, так как у вас уже есть возможность блокировать выпуски после одобрения.

Некоторые варианты:

  • Добавьте в свой релиз «фиктивный» первый этап, чтобы ваш путь к релизу выглядел примерно так: PreApproval -> Dev -> QA -> Staging -> Prod. Установите для всех шагов PreApproval значение «Автоматизировано», затем добавьте утверждающего, который может утвердить сборку для развертывания в dev.
  • Выпустите сборку вручную.
person Daniel Mann    schedule 02.08.2015
comment
Спасибо за ваш ответ, он помог мне лучше понять, как работает менеджер релизов и особенно как блокировать релизы. - person zlogo; 04.08.2015
comment
Тем не менее, я все еще нахожу немного странным, что разрешения, установленные для шаблона выпуска, не проверяются, когда включена функция «Может инициировать выпуск из сборки». Таким образом, любой, кто запускает сборку в Visual Studio, также может начать выпуск. Учитывая тот факт, что выпуски могут быть ограничены, это не является большой проблемой, но все же я ожидал, что разрешение Can Release, установленное в шаблоне выпуска, проверяется, когда выпуск запускается из сборки. - person zlogo; 04.08.2015
comment
@zlogo Это не странно. Подумайте о сборке CI. Эта сборка будет запущена любым, кто зарегистрирует код. Если вы настроили ее выпуск, она всегда должна выпускаться. было бы странно, если бы он не срабатывал в одних ситуациях, но срабатывал в других. - person Daniel Mann; 04.08.2015