使用安全文件

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

安全文件提供了一种存储文件的方法,你可以跨管道共享这些文件。 使用安全文件库存储文件,例如:

  • 签名证书
  • Apple 预置描述文件
  • Android 密钥存储文件
  • SSH 密钥

这些文件可以存储在服务器上,而无需将其提交到存储库。

安全文件的内容已加密,只能在从任务中使用它们时进行使用。 安全文件是一种受保护的资源。 可以向其添加审批和检查,并设置管道权限。 安全文件还可以使用库安全模型

每个安全文件的大小限制为 10 MB。

添加安全文件

  1. 转到“管道”>“库”>“安全文件”。

    选择“安全文件”选项卡。

  2. 选择“安全文件”以上传新的安全文件。 浏览以上传或拖放文件。 可以删除此文件,但无法替换它。

    上传文件。

  3. 向文件添加权限。

    1. 从“管道”>“库”的“安全性”选项卡中对所有文件应用安全角色限制。
    2. 若要为单个文件添加权限,请在文件的编辑视图中,选择“管道权限”以设置每个管道的权限。 或者选择“安全性”以设置安全角色。
      • 还可以为文件设置“审批和检查”。 有关详细信息,请参阅审批和检查

    为安全文件设置管道安全性。

在管道中使用安全文件

使用下载安全文件实用工具任务在管道中使用安全文件。

以下 YAML 管道示例下载安全证书文件并将其安装在 Linux 环境中。

- task: DownloadSecureFile@1
  name: caCertificate
  displayName: 'Download CA certificate'
  inputs:
    secureFile: 'myCACertificate.pem'

- script: |
    echo Installing $(caCertificate.secureFilePath) to the trusted CA directory...
    sudo chown root:root $(caCertificate.secureFilePath)
    sudo chmod a+r $(caCertificate.secureFilePath)
    sudo ln -s -t /etc/ssl/certs/ $(caCertificate.secureFilePath)

常见问题解答

问:如何使用安全文件创建自定义任务?

答:通过在 task.json 中使用类型为 secureFile 的输入来生成自己的使用安全文件的任务。 了解如何生成自定义任务

“安装 Apple 预配配置文件”任务是一个使用安全文件的任务的简单示例。 请参阅参考文档源代码

若要在生成或发布期间处理安全文件,可以参考此处提供的通用模块。

问:我的任务无法访问安全文件。 我该怎么办?

答:确保代理运行的是 2.116.0 或更高版本。 请参阅代理版本和升级

问:如何为在特定管道中使用的安全文件授权?

A:

  1. 在“Azure Pipelines”中,选择“库”选项卡。
  2. 选择顶部的“安全文件”选项卡。
  3. 选择要授权的安全文件。
  4. 选择“管道权限”按钮。
  5. 查看并修改每个可用管道的访问权限。

问:为什么我在使用 Azure DevOps Server/本地 TFS 下载安全文件时看到“Invalid Resource”错误?

答:确保在 TFS 或 Azure DevOps Server 上禁用 IIS 基本身份验证

问:如何保护安全文件?

答:在 Azure DevOps 中,以相同的方式保护安全文件、变量组和服务连接。 它们也全都是受保护的资源

机密已加密并存储在数据库中。 用于解密机密的密钥存储在 Azure Key Vault 中。 密钥特定于每个缩放单元。 因此,两个区域不共享相同的密钥。 密钥还会随 Azure DevOps 的每次部署进行轮换。

检索安全密钥的权限仅授予 Azure DevOps 服务主体,在特殊情况下会按需授予来诊断问题。 安全存储没有任何认证。

Azure Key Vault 是另一个更安全的选项,用于保护敏感信息。 如果决定使用 Azure Key Vault,可以将其与变量组配合使用