1
3
存储的变量与运行生成的代理以及生成定义的完整性一样安全。 正如您所说,如果用户可以修改生成定义并有权访问机密,他们可以将其传递给PowerShell或Curl任务等。或者如果用户可以控制生成任务的脚本,他们可以迭代所有可用机密(生成系统认为生成任务是可信的)。
考虑到在代理的工作目录上有写访问权限的每个人都可以访问在构建代理上执行的构建定义可用的所有秘密。他们可以更改构建任务使用的脚本,从而获得相同级别的信任。在这种情况下,在此更改之后以及在将任务的新版本推送到代理之前运行的任何构建都将受到损害。从理论上讲,每一个构建定义都会“感染”整个系统吗
使用变量库可以减少可以将秘密变量添加到构建定义中的人数。
请记住,Git存储库中构建定义、变量库和脚本的所有更改都会被跟踪。 访问这些机密的其他方法不适用于Azure DevOps,因为没有人可以访问Azure中的应用层,并且访问受到Microsoft的严格监控。 |