发布模板的 "Can Trigger a Release from a Build" 功能是否会忽略安全设置?

Does the "Can Trigger a Release from a Build" feature of Release Template ignore security settings?

出于合规性原因,我必须确保只能由专门的用户启动来自特定发布模板的发布。在我的情况下,有权启动发布的用户是服务用户,是自动化变更管理流程的一部分,而可以准备和定义部署步骤的用户是不同的用户,是真实用户。

当我可以分离这些角色时,我能够以某种方式配置 Release Manager。用户A可以管理服务器、创建环境、发布路径以及发布模板和设置安全性。用户 B 可以使用用户 A 创建的对象在发布模板中定义发布步骤。由于用户 B 无权以这种方式管理安全性,因此可以确保发布仅由用户 C 执行。

但是,当"Can Trigger a Release from a Build" 功能在发布模板中打开时,问题就来了。当它被打开并且 "Release Build" 参数在构建模板的 Process 部分为 True 时,发布模板的安全设置将被忽略,任何在发布管理中拥有用户的人,即使没有任何权限,也可以启动一个从构建中发布。

对我来说,当构建代理从构建启动发布时,除了检查启动构建的用户是否也存在于发布管理中之外,似乎没有执行任何权限检查。

我正在寻找一种方法来确保发布只能由专门的用户启动,而其他用户有权定义同一发布模板的发布步骤。我可能错过了一些配置,但目前似乎不可能在发布管理中以这种方式设置它。如果有人已经设法设置它,我将不胜感激。

是的,当然可以。如果您将构建绑定到启用了该选项的发布模板,那么您实际上是在说 "I want this build released after it's done building, every time." 构建有时发布有时不发布是没有意义的,因为这违反了 devops 的黄金法则"consistency"。

我会说这是一个奇怪的要求,因为您已经能够在批准后控制您的发布。

部分选项:

  • 为您的发布添加 "dummy" 第一阶段,因此您的发布路径类似于 PreApproval -> Dev -> QA -> Staging -> Prod。 将 PreApproval 中的所有步骤设置为 "Automated",然后添加可以批准要部署到 dev 的构建的批准人。
  • 手动发布构建。