識別及限制參數和變數不安全的使用
在 Azure Pipelines 中,參數和變數可用來將執行階段值傳遞至管線工作和指令碼,以及定義可在不同管線階段中使用的變數。 不過,如果未正確保護,參數和變數可能會變成安全性弱點,因為它們可以儲存敏感性資訊,例如連接字串、API 金鑰和其他認證。
在此單元中,識別並限制在 Azure Pipelines 中不安全的參數和變數使用。
為什麼參數和變數的安全使用很重要?
安全使用參數和變數,是確保管線及其支援專案安全性的必要條件。 不安全的參數和變數可能會導致資料外泄、未經授權的存取和其他安全性風險。 它們也可能導致可能影響管線可靠性和穩定性的非預期行為或錯誤。
識別參數和變數不安全的使用
以下是在 Azure Pipelines 中識別不安全使用參數和變數的一些步驟:
- 檢查管線 YAML 檔案中是否有任何儲存敏感性資訊的參數或變數,例如連接字串或認證。
- 檢查這些參數或變數的值不會硬式編碼在您的工作所使用的管線工作或指令碼中,例如 bash、PowerShell 等。相反地,它們應該定義為安全管線輸入,例如安全檔案或變數群組。
- 使用 Azure DevOps Pipeline 稽核記錄來監視管線中參數和變數的使用狀況,並識別任何潛在的安全性風險或弱點。
- 檢查範本檔案中是否有任何儲存敏感性資訊的參數或變數。
- 檢查存放庫是否有儲存敏感性資訊的任何參數或變數,例如
appconfig.json
、appsettings.json
、secrets.json
等。
限制參數和變數不安全的使用
以下是在 Azure Pipelines 中限制參數和變數不安全使用的一些步驟:
- 將您的參數和變數定義為安全的管線輸入,例如安全檔案、秘密變數或變數群組。
- 使用 Azure Key Vault 來儲存敏感性資料,例如連接字串、API 金鑰或憑證,然後在您的管線指令碼中加以參考。
- 將 Azure Key Vault 連結至您的 Azure DevOps 組織,然後使用 Azure Key Vault 工作從您的 Azure Key Vault 擷取秘密,並在您的管線中使用。
- 在服務主體驗證使用服務連線。
- 設定適當的權限和存取控制原則,以限制敏感性資料的存取。 例如,限制對特定使用者或群組的管線變數和參數的存取。
挑戰自己
建立 YAML 管線,將 Web 應用程式部署至 Azure App Service。 將參數和變數新增至管線,以定義目標環境、資料庫連接字串和其他敏感性資料。 使用本單元中所述的步驟,以確保參數和變數使用方式安全,而且敏感性資料會安全地儲存和管理。 測試管線,確定管線如預期般執行,同時維護記錄檔中敏感性資料的安全性,並驗證稽核記錄。
如需有關變數的詳細資訊,請參閱: