关于 Azure Pipelines 的资源
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
资源是管道外部的管道使用的任何内容。
资源具有以下优势:
- 跨管道 共享 安全文件或密码等内容的方法。
- 使用资源进行共享的示例包括变量组、安全文件和服务连接。 在所有情况下,都是通过资源来使管道能够访问和使用某些内容。
- 一种通过访问检查和其他限制增强 安全性 的工具。
- 例如,可以将服务连接限制为仅在一个管道上运行。 还可以确保在手动审批检查后只能从管道访问存储库。
- 提高管道 的可跟踪性 并使其更易于对 环境进行故障排除的方法。
- 例如,可以看到部署到 环境的最后一次运行数。
跨管道共享资源
通过在管道 UI 中配置资源,跨管道共享资源。 然后,引用任务中的这些资源。 还可以使用 resources
YAML 管道语法访问一些共享资源。
使用管道 UI 共享资源的示例包括 安全文件、 变量组和服务 连接。 resources
使用语法时,示例包括访问管道本身、存储库和包。
在管道中使用资源的方式取决于管道的类型和资源类型。
对于 YAML 管道:
- 服务连接和安全文件直接用作任务的输入,无需预声明。
- 变量组使用
group
语法。 - 管道和存储库使用
resources
语法。
例如,若要在管道中使用变量组,请在 管道>库中添加变量。 然后,可以在 YAML 管道中使用 variables
语法引用变量组。
variables:
- group: my-variable-group
若要使用 resources
语法从你的管道调用另一个管道,请引用 pipelines
。
resources:
pipelines:
- pipeline: SmartHotel-resource # identifier for the resource (used in pipeline resource variables)
source: SmartHotel-CI # name of the pipeline that produces an artifact
使用资源增强安全性
可以通过识别资源的使用方式以及如何防止未经授权的访问来增强管道的安全性。
仅适用于 YAML 管道,将资源设置为 受保护或打开。 当资源受到保护时,可以应用审批和检查来限制对特定用户和 YAML 管道的访问。 受保护的资源包括服务连接、代理池、环境、存储库、变量组和安全文件。
资源 | 它是如何消耗的? | 如何防止非预期的管道使用此资源? |
---|---|---|
服务连接 | 由 YAML 文件中使用服务连接作为输入的任务使用。 | 使用检查和管道权限进行保护。 检查和管道权限由服务连接用户控制。 资源所有者可以控制哪些管道可以访问服务连接。 还可以使用管道权限来限制对特定 YAML 管道和所有经典管道的访问。 |
变量组中的机密变量 | 存在用于在管道或作业中使用变量组的特殊语法。 变量组会被添加,就像服务连接一样。 | 使用检查和管道权限进行保护。 检查和管道权限由变量组用户控制。 资源所有者可以控制哪些管道可以访问变量组。 还可以使用管道权限来限制对特定 YAML 管道和所有经典管道的访问。 |
安全文件 | 安全文件由任务(例如“下载安全文件”任务)使用。 | 使用检查和管道权限进行保护。 检查和管道权限由安全文件用户控制。 资源所有者可以控制哪些管道可以访问安全文件。 还可以使用管道权限来限制对特定 YAML 管道和所有经典管道的访问。 |
代理池 | 有一种特定的语法,可以使用代理池来运行任务。 | 使用检查和管道权限进行保护。 检查和管道权限由代理池用户控制。 资源所有者可以控制哪些管道可以访问代理池。 还可以使用管道权限来限制对特定 YAML 管道和所有经典管道的访问。 |
环境 | 在 YAML 中使用环境需要遵循特殊的语法。 | 使用由环境用户控制的检查和管道权限进行保护。 还可以使用管道权限来限制对特定环境的访问。 |
存储 库 | 如果作业访问令牌有权访问存储库,脚本可以克隆存储库。 | 使用存储库参与者控制的检查和管道权限进行保护。 存储库所有者可以限制所有权。 |
构件、工作项、流水线 | 管道工件 是资源,但 Azure Artifacts 不是。 如果作业访问令牌有权访问源,则脚本可以下载工件。 管道制品可以在资源部分声明为一种资源,主要目的是在有新制品可用时触发管道,或在管道中使用该制品。 | 工件和工作项具有自己的权限控制。 不支持为源设置检查和管道权限。 |
容器、 包、 Webhook | 这些资源位于 Azure DevOps 生态系统之外,使用服务连接控制访问权限。 在 YAML 管道中使用所有三种类型时,有一种特殊的语法。 | 使用由服务连接用户控制的检查和管道权限进行保护。 |
使用资源实现可跟踪性
环境支持以下资源类型: