【问题标题】:Does the "Can Trigger a Release from a Build" feature of Release Template ignore security settings?发布模板的“可以从构建中触发发布”功能是否忽略安全设置?
【发布时间】:2015-08-03 11:06:59
【问题描述】:

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

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

但是,在发布模板中打开“可以从构建中触发发布”功能时会出现问题。当它打开并且构建模板的 Process 部分中的“发布构建”参数为 True 时,发布模板的安全设置将被忽略,任何在发布管理中拥有用户的人,即使没有任何权限,也可以启动发布来自构建。

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

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

【问题讨论】:

    标签: ms-release-management


    【解决方案1】:

    是的,当然可以。如果您的构建与启用该选项的发布模板相关联,那么您实际上是在说“我希望每次构建完成后发布此构建”。有时发布有时不发布构建是没有意义的,因为这违反了“一致性”的 devops 黄金法则。

    我会说这是一个奇怪的要求,因为您已经有能力在批准之后关闭您的发布。

    一些选项:

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

    【讨论】:

    • 感谢您的回答,它帮助我更好地了解了 Release Manager 的工作原理,尤其是如何控制发布。
    • 但是,当“Can Trigger a Release from a Build”功能开启时,没有验证为Release Template设置的权限,我还是觉得有点奇怪。这样,任何在 Visual Studio 中开始构建的人也可以开始发布。考虑到发布可以被门控这一事实,这不是一个大问题,但我仍然期待在从构建触发发布时检查发布模板中设置的“可以发布”权限。
    • @zlogo 这并不奇怪。想想 CI 构建。该构建将由签入代码的任何人触发。如果您将其设置为发布,它应该始终发布。如果它在某些情况下没有发布,但在其他情况下确实发布,那很奇怪。
    猜你喜欢
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多