保護 Azure Pipelines
Azure DevOps Services |Azure DevOps Server 2022 |Azure DevOps Server 2020
Azure Pipelines 提供不同的安全性挑戰。 雖然管線可讓您執行腳本或將程式代碼部署到生產環境,但請務必防止它們成為惡意代碼的管道。 平衡安全性與開發小組所需的彈性和能力至關重要。
注意
Azure Pipelines 是 Azure DevOps Services 套件的一部分,全都建置在 Azure 內的安全基礎結構上。 若要全面瞭解所有 Azure DevOps Services 的安全性概念,建議您檢視下列資源:
傳統上,組織會透過嚴格的鎖定強制執行安全性。 程式代碼、管線和生產環境面臨嚴重的存取限制。 雖然這種方法在具有有限使用者和專案的小型組織中運作良好,但大型組織面臨不同的現實。 由於許多參與者能夠存取程式代碼,「假設缺口」的原則就變得至關重要。 它牽涉到操作就像對手擁有存放庫的參與者存取權一樣,需要增強警惕。
若要達成安全性目標,請考慮下列幾點:
防止惡意代碼執行:
- 請確定您的管線已設定為防止未經授權的惡意代碼執行,其中包括下列工作:
- 限制敏感性秘密和認證的存取。
- 驗證輸入參數和自變數,以防止非預期的行為。
- 定期檢閱和稽核管線腳本是否有潛在的安全性風險。
- 實作安全性做法,例如:
- 在文稿中使用參數化查詢來防止 SQL 插入。
- 逸出自變數中的特殊字元,以避免殼層命令插入。
- 限制管線服務連線的許可權。
- 請考慮使用 YAML 管線,其可提供更精細的執行控制,而且較不容易發生安全性風險。
- 請確定您的管線已設定為防止未經授權的惡意代碼執行,其中包括下列工作:
減輕橫向曝光:
- 隔離管線,以防止組織專案和存放庫中橫向移動。
- 只限制每個管線的必要存放庫和資源存取。
- 監視管線活動,並設定可疑行為的警示。
- 檢閱和更新許可權,以定期將曝光量降到最低。
使用 YAML 管線:
- YAML 管線在安全性方面提供下列優點:
- 請考慮將現有的管線移轉至 YAML 格式,以改善安全性和可維護性。
安全性是一個持續的過程,定期的評量和更新至關重要。 YAML 管線為您的 Azure Pipelines 提供最佳安全性。
下列文章概述可協助您開發安全 YAML 型管線的建議: