使用安全文件
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
安全文件提供了一种存储文件的方法,你可以跨管道共享这些文件。 使用安全文件库存储文件,例如:
- 签名证书
- Apple 预置描述文件
- Android 密钥存储文件
- SSH 密钥
这些文件可以存储在服务器上,而无需将其提交到存储库。
安全文件的内容已加密,只能在从任务中使用它们时进行使用。 安全文件是一种受保护的资源。 可以向其添加审批和检查,并设置管道权限。 安全文件还可以使用库安全模型。
每个安全文件的大小限制为 10 MB。
添加安全文件
转到“管道”>“库”>“安全文件”。
选择“安全文件”以上传新的安全文件。 浏览以上传或拖放文件。 可以删除此文件,但无法替换它。
向文件添加权限。
- 从“管道”>“库”的“安全性”选项卡中对所有文件应用安全角色限制。
- 若要为单个文件添加权限,请在文件的编辑视图中,选择“管道权限”以设置每个管道的权限。 或者选择“安全性”以设置安全角色。
- 还可以为文件设置“审批和检查”。 有关详细信息,请参阅审批和检查。
在管道中使用安全文件
使用下载安全文件实用工具任务在管道中使用安全文件。
以下 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:
- 在“Azure Pipelines”中,选择“库”选项卡。
- 选择顶部的“安全文件”选项卡。
- 选择要授权的安全文件。
- 选择“管道权限”按钮。
- 查看并修改每个可用管道的访问权限。
问:为什么我在使用 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,可以将其与变量组配合使用。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈