共用方式為


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 進行 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 都會封存

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

  2. Ubuntu 映像

    • 除了最新的模組以外,所有 Az 模組(目前為 5.5.0)都會從映像中完全封存或移除,並視需要由工作安裝。

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

注意

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

Azure Repos

停用存放庫

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

  • 您在存放庫中找到了秘密。
  • 第三方掃描工具發現存放庫不符合規範。

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

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

採取必要的緩和步驟之後,具有 刪除存放庫 許可權的使用者可以重新啟用存放庫。 若要停用或啟用存放庫,請移至 [項目設定],選取 [存放庫],然後選取特定的存放庫。

停用存放庫

下一步

注意

這些功能將在未來兩到三周內推出。

前往 Azure DevOps 並查看。

如何提供意見反應

我們很樂意聽到您對於這些功能的看法。 使用說明功能表來回報問題或提供建議。

提供建議

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

感謝您!

Vijay Machiraju