管線資源

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 中,使用者和管線許可權的組合不足以完全保護您的受保護資源。 資源的管線許可權會授與整個管線。 不可防止敵人在您的存放庫中建立另一個分支、插入惡意程式碼,以及使用相同的管線來存取該資源。 即使沒有惡意意圖,大部分管線都需要第二組眼睛來查看變更, (特別是管線本身) ,再部署到生產環境。 檢查 可讓您暫停管線執行,直到符合特定條件為止:

  • 手動核准檢查。 每次使用受專案保護資源的執行都會遭到封鎖,以便進行手動核准,再繼續進行。 手動保護可讓您檢閱程式碼,並確保其來自正確的分支。
  • 受保護的分支檢查。 如果您有部分分支的手動程式碼檢閱程式,您可以將此保護延伸至管線。 在每個資源上設定受保護的分支檢查。 這會自動阻止管線在任何使用者分支上執行。
  • 受保護的資源檢查 您可以將檢查新增至環境、服務連線、存放庫、變數群組、代理程式組件區、變數群組及安全檔案,以指定在任何管線中的階段可以取用資源之前必須滿足的條件。 深入瞭解 檢查和核准

設定檢查的螢幕擷取畫面

後續步驟

接下來,請考慮如何將資源分組至 專案結構