管線資源
Azure DevOps Services |Azure DevOps Server 2022 |Azure DevOps Server 2020
Azure Pipelines 提供的安全性,不只是保護 YAML 檔案和原始程式碼。 當 YAML 管線執行時,資源存取會通過稱為 檢查的系統。 檢查可能會暫停或甚至失敗管線執行,以確保資源安全。 管線可以存取兩種類型的資源,並加以保護並開啟。
受保護的資源
您的管線通常可以存取秘密。
例如,若要簽署您的組建,您需要簽署憑證。
若要部署到生產環境,您需要該環境的認證。
Azure Pipelines 需要 系統管理員 角色,才能將資源存取權開啟至所有受保護資源的管線,但環境除外。 針對環境,您將需要 建立者 角色。 深入瞭解 資源保護。
在 Azure Pipelines 中,下列所有專案都會被視為 YAML 管線中的 受保護 資源:
「Protected」 表示:
- 您可以存取專案內的特定使用者和特定管線。 使用者和專案外部的管線無法存取它們。
- 每次 YAML 管線使用其中一個資源時,您可以執行其他手動或自動化檢查。 若要深入瞭解受保護的資源,請參閱 關於管線資源。
保護存放庫資源
您可以選擇性地保護存放庫。 在組織或專案層級,您可以選擇將 Azure Pipelines 存取權杖的範圍限制為提及的存放庫。 當您這樣做時,Azure Pipelines 會新增兩個其他保護:
- 提供給代理程式執行作業的存取權杖,只能存取管線區段中明確提及
resources
的存放庫。 - 第一次使用存放庫時,新增至管線的存放庫必須由具有參與存放庫存取權的人員授權。
此設定預設為 2020 年 5 月之後建立的所有組織開啟。 在之前建立的組織應該在 [組織設定] 中啟用它。
開啟資源
專案中所有其他資源都會被視為 開啟 資源。 開啟的資源包括:
- Artifacts
- Pipelines
- 測試計劃
- 工作項目
您將深入瞭解哪些管線可以存取 專案一節中的哪些資源。
使用者權限
受保護資源的第一個防禦線是使用者權限。 一般而言,請確定您只授與需要許可權的使用者。 所有受保護的資源都有類似的安全性模型。 資源的使用者角色成員可以:
- 移除核准者,並檢查該資源上設定的檢查
- 將存取權授與其他使用者或管線,以使用該資源
管線權限
當您使用 YAML 管線時,使用者許可權不足以保護您的受保護資源。 例如,您可以輕易地複製受保護資源的名稱 (生產環境的服務連線) ,並將其包含在不同的管線中。 管線許可權可防止這類複製。 針對每個受保護的資源,請確定您已停用將存取權授與「所有管線」的選項。 相反地,明確授與您信任之特定管線的存取權。
檢查
在 YAML 中,使用者和管線許可權的組合不足以完全保護您的受保護資源。 資源的管線許可權會授與整個管線。 不可防止敵人在您的存放庫中建立另一個分支、插入惡意程式碼,以及使用相同的管線來存取該資源。 即使沒有惡意意圖,大部分管線都需要第二組眼睛來查看變更, (特別是管線本身) ,再部署到生產環境。 檢查 可讓您暫停管線執行,直到符合特定條件為止:
- 手動核准檢查。 每次使用受專案保護資源的執行都會遭到封鎖,以便進行手動核准,再繼續進行。 手動保護可讓您檢閱程式碼,並確保其來自正確的分支。
- 受保護的分支檢查。 如果您有部分分支的手動程式碼檢閱程式,您可以將此保護延伸至管線。 在每個資源上設定受保護的分支檢查。 這會自動阻止管線在任何使用者分支上執行。
- 受保護的資源檢查 您可以將檢查新增至環境、服務連線、存放庫、變數群組、代理程式組件區、變數群組及安全檔案,以指定在任何管線中的階段可以取用資源之前必須滿足的條件。 深入瞭解 檢查和核准。
後續步驟
接下來,請考慮如何將資源分組至 專案結構。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應