安全檔案 (Security File) 提供使用者上傳安全相關檔案(如:憑證、Androd Keystore 或 SSH 金鑰),以提供 多個 Pipeline 共同使用,而不用推送至儲存庫。安全檔案內容會經過加密,並且只能透過 Pipeline Task 使用,且無法再次下載或複製使用。每一個 Security File 的上限為 10 MB,且在初次使用時須要經過核准。
這次的範例使用憑證為例,雖然不一定是好的應用,僅作為實作範例參考
步驟 1. 在 Azure DevOps Portal,點選左邊選單 Pipeline > Library > Add Security,上船所需要的秘密檔案。
步驟 2. 若您要在 Azure Pipeline 中使用安全檔案,只需要在 YAML 內容加入 DownloadSecureFile@1 task,即可將秘密檔案下載至代理程式 (Agent) 內,提供 Task 使用。
請確定代理程式版本為 2.116.0 版(或更高),才得以使用秘密檔案
- task: DownloadSecureFile@1
name: caCertificate
displayName: 'Download CA certificate'
inputs:
secureFile: '001.crt'
- script: |
echo 安裝 $(caCertificate.secureFilePath) 至 trusted CA 目錄...
sudo chmod a+r $(caCertificate.secureFilePath)
sudo ln -s -t /etc/ssl/certs/ $(caCertificate.secureFilePath)
若您的使用傳統編輯器 (Classic Pipeline),可以使用 Download secure file task 下載安全檔案,後續使用 Command line task(如: bash) 進行操作
步驟 3. 如同前言所提到的,第一次使用安全檔案並執行 Pipeline 時,需要出現允許使用 (permit) 訊息,需要有權限的使用者允許才可以執行 Pipeline,否則會持續等待 (Pending) 至逾時。
如果你不知道那些 Pipeline 擁有安全檔案權限,可以在 Security File 畫面上點選上方 Pipeline Permissions 按鈕,檢視那些 pipeline 有存取此檔案權限。
與 YAML 編輯器不同,使用傳統編輯器的 Pipeline 可以存取所有 Security file