Share via


Azure Pipelines 免費授與的變更

我們暫時變更了取得 Azure Pipelines 免費授與的程式,以解決託管代理程式增加的濫用情形。 根據預設,在 Azure DevOps 中建立的新組織可能不會再獲得並行管線的免費授與。 新使用者必須傳送電子郵件,並提供額外的資訊以取得免費的 CI/CD。

如需詳細資訊,請參閱下面的功能清單。

Azure Pipelines

Azure Repos

Azure Pipelines

Azure Pipelines 免費授與的變更

Azure Pipelines 已提供免費的 CI/CD 給公用和私人專案數年。 由於這相當於釋出免費計算,因此它一律是濫用的目標,特別是密碼編譯採礦。 將此濫用降至最低一律會從小組中耗用精力。 在過去幾個月內,情況已大幅變差,Azure DevOps 中的新專案百分比偏高,用於密碼編譯採礦和其他我們分類為濫用的活動。 過去一個月有數個服務事件是因為此濫用所造成,導致現有客戶的等候時間很長。

為了解決這種情況,我們已為 Azure DevOps 中的新組織新增額外的步驟,以取得免費授與。 下列變更會立即生效:

  • 根據預設,在 Azure DevOps 中建立的新組織將不再獲得並行管線的免費授與。 這適用于新組織中的公用和私人專案。
  • 若要要求免費授與, 請提交要求 ,並清楚提供下列詳細資料:
    • 您的名字
    • 您要求免費授與的 Azure DevOps 組織
    • 您是否需要公用專案或私人專案的免費授與
    • 您計畫建置 (公用專案之存放庫的連結)
    • 僅) 公用專案 (專案的簡短描述

我們將在幾天內檢閱您的要求並回應。

注意

這項變更只會影響新的組織。 它不適用於現有的專案或組織。 這不會變更您可以取得的免費授與數量。 它只會新增額外的步驟,以取得該免費授與。

我們抱歉造成任何不便,這可能會導致新客戶想要使用 Azure Pipelines for CI/CD。 我們相信這是繼續為所有客戶提供高階服務的必要條件。 我們會繼續探索防止濫用的自動化方式,並在我們有可靠的機制來防止濫用之後還原先前的模型。

移除傳統組建中的個別管線保留原則

您現在可以在 Azure DevOps 專案設定中設定傳統組建和 YAML 管線的保留原則。 雖然這是設定 YAML 管線保留的唯一方式,但您也可以根據每個管線設定傳統組建管線的保留期。 我們將在即將推出的版本中,移除傳統組建管線的所有每個管線保留規則。

這代表您:任何仍具有每個管線保留規則的傳統組建管線,很快就會受到專案層級保留規則所控管。

為了協助您識別這些管線,我們會在此版本中推出變更,以顯示執行清單頁面頂端的橫幅。

組建保留改善

建議您藉由移除每個管線保留規則來更新管線。 如果您的管線特別需要自訂規則,您可以在管線中使用自訂工作。 如需透過工作新增保留租用的資訊,請參閱 組建、發行和測試檔案的設定保留原則

管線中環境變數的新控制項

Azure Pipelines 代理程式會掃描標準輸出中的特殊 記錄命令 並加以執行。 setVariable命令可用來設定變數或修改先前定義的變數。 這可能會被系統外部的動作專案惡意探索。 例如,如果您的管線有一個步驟可列印 ftp 伺服器中的檔案清單,則具有 ftp 伺服器存取權的人員可以新增檔案,其名稱包含 setVariable 命令,並導致管線變更其行為。

我們有許多使用者依賴在其管線中使用記錄命令來設定變數。 在此版本中,我們會進行下列變更,以降低命令不必要使用 setVariable 的風險。

  • 我們已新增工作作者的新建構。 藉由在 中包含 task.json 如下的程式碼片段,工作作者可以控制其工作是否設定任何變數。
{
    "restrictions": {
        "commands": {
            "mode": "restricted"
        },
        "settableVariables": {
            "allowed": [
                "myVar",
                "otherVar"
            ]
        }
    },
}​ 
  • 此外,我們會更新一些內建工作,例如 ssh,使其無法遭到惡意探索。

  • 最後,您現在可以使用 YAML 建構來控制步驟是否可以設定變數。

steps:
- script: echo hello
  target:
    settableVariables: none
steps:
- script: echo hello
  target:
    settableVariables:
    - things
    - stuff

為分支組建產生不受限制的權杖

GitHub 使用者通常會使用分叉來參與上游存放庫。 當 Azure Pipelines 從 GitHub 存放庫的分支建置貢獻時,它會限制授與作業存取權杖的許可權,而且不允許這類作業存取管線秘密。 您可以在我們的 檔中找到建置分支安全性的詳細資訊。

建置 GitHub Enterprise Server 存放庫的分支時,預設會套用相同的限制。 這可能比這類封閉式環境中更嚴格,使用者可能仍可從內部來源共同作業模型獲益。 雖然您可以在管線中設定設定,讓秘密可供分叉使用,但沒有任何設定可控制作業存取權杖範圍。 在此版本中,我們可讓您控制產生一般作業存取權杖,即使是分支的組建也一般。

您可以從管線編輯器中的 觸發程式 變更此設定。 變更此設定之前,請確定您完全瞭解啟用此設定的安全性影響。

為分支組建產生不受限制的權杖

Az、Azure 和 Azure RM 預先安裝模組中的變更

我們正在將預先安裝 Az、Azure 和 AzureRM 模組的程式更新為 Ubuntu 和 Windows 裝載映射,以取得更有效率的支援和映射空間使用量。

在 3 月 29 日當周,除了最新版和最熱門的版本之外,所有版本都會儲存為封存,並依需求Azure PowerShell工作擷取。 變更的詳細清單如下:

  1. Windows 映像

    • 目前除了最新一個 (以外的所有 Az 模組版本,將會封存 5.5.0)

    • 除了目前 (最新的 Azure 模組以外,5.3.0) 和 2.1.0 以外的所有 Azure 模組都會封存

    • 除了目前最新的 (AzureRM 模組以外,6.13.1) 和 2.1.0 以外的所有 AzureRM 模組都會封存

  2. Ubuntu 映射

    • 除了目前最新的 Az 模組以外, (5.5.0) 除了最新的模組之外,也會從映射中完全封存或移除,並依需求由工作安裝。

任何在託管代理程式上使用內建 Azure 工作的管線都會如預期般運作,而且不需要更新。 如果您未使用這些工作,請將管線切換為使用 Azure PowerShell 工作,以避免變更預先安裝的模組。

注意

這些更新不會影響在自我裝載代理程式上執行的管線。

Azure Repos

停用存放庫

客戶經常要求停用存放庫,並防止使用者存取其內容。 例如,您可能會想要在下列情況下執行此動作:

  • 您已在存放庫中找到秘密。
  • 協力廠商掃描工具發現存放庫不符合規範。

在這種情況下,您可能會想要在解決問題時暫時停用存放庫。 透過此更新,如果您有刪除存放庫許可權,您可以停用存放 。 藉由停用存放庫,您可以:

  • 可以在存放庫清單中列出存放庫
  • 無法讀取存放庫的內容
  • 無法更新存放庫的內容
  • 查看當存放庫嘗試在 Azure Repos UI 中存取存放庫時已停用的訊息

採取必要的風險降低步驟之後,具有 Delete 存放庫 許可權的使用者可以重新啟用存放庫。 若要停用或啟用存放庫,請移至 [專案設定],選取 [存放庫],然後選取特定存放庫。

停用存放庫

後續步驟

注意

這些功能將在接下來兩到三周推出。

請前往 Azure DevOps 並查看。

如何提供意見反應

我們希望聽到您對這些功能的想法。 使用說明功能表來回報問題或提供建議。

提供建議

您也可以在 Stack Overflow上取得社群所回答的建議和問題。

感謝您!

Vijay Machiraju