其他安全注意事项

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

保护管道时,还应考虑一些其他事项。

依赖 PATH

依赖代理 PATH 的设置是危险的。 它可能不会指出你认为它的位置,因为以前的脚本或工具可能更改了它。 对于安全关键型脚本和二进制文件,请始终使用程序的完全限定路径。

机密日志记录

Azure Pipelines 会尽可能尝试从日志中清理机密。 此筛选是尽最大努力进行的,无法捕获机密可能泄露的一切方式。 避免将机密回显到控制台、在命令行参数中使用机密或将其记录到文件。

锁定容器

容器在与主机代理通信所需的任务、工作区和外部组件中具有一些系统提供的卷装载映射。 可以将其中任何卷或所有这些卷标记为只读。

resources:
  containers:
  - container: example
    image: ubuntu:22.04
    mountReadOnly:
      externals: true
      tasks: true
      tools: true
      work: false  # the default; shown here for completeness

大多数人应将前三个标记为只读,并保留 work 为读写。 如果知道不会在给定作业或步骤中写入到工作目录,请继续并将设置为 work 只读。 如果管道中有可自行修改的任务,则可能需要保留 tasks 读写操作。

控制可用任务

可以禁用从市场安装和运行任务的功能。 这样可以更好地控制在管道中执行的代码。 还可以禁用除“签出”之外的所有现成任务 (,这是对代理) 的特殊操作。 建议在大多数情况下不要禁用现成任务。

直接安装的任务 tfx 始终可用。 启用这两项功能后, 只有 这些任务可用。

使用审核服务

审核服务中记录了许多管道事件。 定期查看审核日志,确保不会遗漏恶意更改。 访问 https://dev.azure.com/ORG-NAME/_settings/audit 以开始操作。

后续步骤

返回到 概述 ,确保已介绍每篇文章。