使用 ARM 服務連線連線至 Microsoft Azure

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

注意

在 Microsoft Team Foundation Server 2018 和舊版中,組建和發行 管線 稱為 定義 執行 稱為組建 、服務連線 稱為 服務端點 階段稱為 環境 ,而 作業 稱為 階段

您可以使用 Azure Resource Manager (ARM) 服務連線,使用服務主體驗證 (SPA) 或 Azure 受控服務識別來連線到 Azure 資源。 透過 Azure Resource Manager 服務連線,您可以使用管線來部署至 Azure 資源,例如 App Service 應用程式,而不需要每次重新驗證。

使用 Azure Resource Manager 服務連線連線到 Azure 有多個選項:

  • 具有工作負載身分識別同盟的服務主體或受控識別
  • 具有秘密的服務主體
  • 代理程式指派的受控識別

如需其他類型的連線,以及建立和使用連線的一般資訊,請參閱 組建和版本的 服務連線。

使用工作負載身分識別同盟建立 Azure Resource Manager 服務連線

重要

Azure Resource Manager 的工作負載身分識別同盟目前為公開預覽狀態。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

這項功能處於公開預覽狀態,貴組織可能無法使用。 若要要求早期存取,請移至 https://aka.ms/azdo-rm-workload-identity-preview

工作負載身分識別同盟 會使用 OpenID 連線向 Microsoft Entra 保護的資源進行驗證,而不需要管理秘密。

如果:

  • 您有 Azure 訂用帳戶的擁有者角色。
  • 您未連線到 Azure Stack Azure Government 雲端
  • 您不是從 Azure DevOps Server 2019 或舊版 TFS 進行連線。
  • 使用的任何 Marketplace 擴充功能工作都已更新,以支援工作負載身分識別同盟。

建立新的工作負載身分識別同盟服務連線

  1. 在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面

  2. 選擇 [+ 新增服務連線],然後選取 Azure Resource Manager

    Screenshot of choosing a workload identity service connection type.

  3. 選取 [工作負載身分識別同盟][自動]。

    Screenshot of selecting a workload identity service connection type.

  4. 指定下列參數。

    參數 描述
    訂用帳戶 選取現有的 Azure 訂閱。 如果您沒有看到任何 Azure 訂用帳戶或實例,請參閱 針對 Azure Resource Manager 服務連線 進行疑難排解。
    資源群組 保留空白以允許使用者存取訂用帳戶內定義的所有資源,或選取您想要限制使用者存取的資源群組(使用者只能存取該群組內定義的資源)。
    服務連線名稱 必要。 您將用來在工作屬性中參考此服務連線的名稱。 這不是 Azure 訂用帳戶的名稱。
  5. 建立新的服務連線之後,請將連線名稱複製到您的程式碼中做為 azureSubscription 值。

  6. 若要部署至特定的 Azure 資源,工作將需要該資源的其他資料。 移至Azure 入口網站中的資源,然後將資料複製到您的程式碼中。 例如,若要部署 Web 應用程式,您會將 App Service WebAppName 的名稱複製到 值。

將現有的 ARM 服務連線轉換為使用工作負載身分識別同盟

  1. 在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面

  2. 移至 [管線 > 服務連線 ],然後開啟現有的服務連線。

  3. 選取您想要轉換成使用工作負載身分識別的服務連線。

  4. 選取轉換

    Screenshot of selecting convert for federated credential.

  5. 再次選取 [轉換 ] 以確認您想要建立新的服務連線。 您將有七天的時間可還原連線。 轉換可能需要幾分鐘的時間才能處理。 程式完成之後,您將能夠使用新的服務連線。

還原現有的 ARM 服務連線以使用服務主體秘密

您可以使用其秘密還原已轉換的服務連線七天。 七天后,您必須手動建立新的秘密。

若要還原連線:

  1. 在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面

  2. 移至 [管線 > 服務連線 ],然後開啟現有的服務連線。

  3. 選取您想要還原的服務連線。

  4. 選取 [ 還原轉換至原始配置 ]。

    Screenshot of selecting revert for federated credential.

  5. 再次選取 [ 還原 ] 以確認您的選擇。

使用服務主體秘密建立 Azure Resource Manager 服務連線

如果:

  • 您已以 Azure Pipelines 組織和 Azure 訂用帳戶的擁有者身分登入。
  • 您不需要進一步限制透過服務連線存取的 Azure 資源許可權。
  • 您未連線到 Azure Stack Azure Government 雲端
  • 您未從 Azure DevOps Server 2019 或舊版 TFS 進行連線
  1. 在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。 在 TFS 中,從頂端功能表列中的 [設定] 圖示開啟 [服務 ] 頁面。

  2. 選擇 [+ 新增服務連線],然後選取 Azure Resource Manager

    Choosing a service connection type

  3. 指定下列參數。

    參數 描述
    連線名稱 必要。 您將用來在工作屬性中參考此服務連線的名稱。 這不是 Azure 訂用帳戶的名稱。
    範圍層級 選取 [訂用帳戶] 或 [管理群組]。 管理群組 是可協助您跨多個訂用帳戶管理存取、原則和合規性的容器。
    訂用帳戶 如果您為範圍選取 [訂用帳戶],請選取現有的 Azure 訂用帳戶。 如果您沒有看到任何 Azure 訂用帳戶或實例,請參閱 針對 Azure Resource Manager 服務連線 進行疑難排解。
    管理群組 如果您為範圍選取 [管理群組],請選取現有的 Azure 管理群組。 請參閱 建立管理群組
    資源群組 保留空白以允許使用者存取訂用帳戶內定義的所有資源,或選取您想要限制使用者存取的資源群組(使用者只能存取該群組內定義的資源)。
  4. 建立新的服務連線之後:

    • 如果您使用傳統編輯器,請選取您在管線的 Azure 訂 用帳戶設定中指派的連線名稱。
    • 如果您使用 YAML,請將連線名稱複製到程式碼中做為 azureSubscription 值。
  5. 若要部署至特定的 Azure 資源,工作將需要該資源的其他資料。

    • 如果您使用傳統編輯器,請選取您需要的資料。 例如,App Service 名稱。
    • 如果您使用 YAML,請移至Azure 入口網站中的資源,然後將資料複製到您的程式碼中。 例如,若要部署 Web 應用程式,您會將 App Service WebAppName 的名稱複製到 值。

注意

當您遵循此方法時,Azure DevOps 會使用 Microsoft Entra ID 連線,並使用兩年 有效的秘密建立應用程式註冊。 當服務連線接近兩歲時,Microsoft Entra ID 會顯示此提示: 憑證或密碼即將到期。建立新的 。 在此案例中,您必須重新整理服務連線。

若要重新整理服務連線,請在 Azure DevOps 入口網站中編輯連線,然後選取 [ 驗證 ]。 儲存編輯之後,服務連線會再有效兩年。

另請參閱: 針對 Azure Resource Manager 服務連線 進行疑難排解。

如果您有使用這種方法的問題(例如下拉式清單中未顯示任何訂用帳戶),或如果您想要進一步限制使用者的許可權,您可以改為使用 服務主體 具有受控服務識別 的 VM。

使用現有的服務主體建立 Azure Resource Manager 服務連線

  1. 如果您想要使用預先定義的一組存取權限,且尚未定義適當的服務主體,請遵循下列其中一個教學課程來建立新的服務主體:

  2. 在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。 在 TFS 中,從頂端功能表列中的 [設定] 圖示開啟 [服務 ] 頁面。

  3. 選擇 [+ 新增服務連線],然後選取 Azure Resource Manager

    Choosing a service connection type

  4. 選擇 [服務主體(手動)] 選項,然後輸入服務主體詳細資料。

    Opening the full version of the service dialog

  5. 輸入在參考此服務連線時要使用的使用者易 記連線名稱

  6. 選取 [ 環境 名稱] (例如 Azure 雲端、Azure Stack 或 Azure Government Cloud)。

  7. 如果您 選取 [Azure 雲端 ],請輸入 [環境 URL]。 針對 Azure Stack,這會類似 https://management.local.azurestack.external

  8. 選取您需要的範圍 層級

    • 如果您選擇 [ 訂用帳戶 ],請選取現有的 Azure 訂用帳戶。 如果您沒有看到任何 Azure 訂用帳戶或實例,請參閱 針對 Azure Resource Manager 服務連線 進行疑難排解。 |
    • 如果您選擇 [ 管理群組 ],請選取現有的 Azure 管理群組。 請參閱 建立管理群組 。 |
  9. 在 [Azure 訂用帳戶] 對話方塊文字方塊中,輸入您的服務主體相關資訊:

    • 訂用帳戶識別碼
    • 訂閱名稱
    • 服務主體識別碼
    • 服務主體用戶端金鑰,或者,如果您已選取 [憑證 ],請輸入 *.pem 檔案之憑證和私密金鑰區段的內容。
    • 租使用者識別碼

    如果您不需要在 Azure PowerShell 視窗中下載並執行 此 PowerShell 腳本 ,即可取得此資訊。 出現提示時,請輸入您的訂用帳戶名稱、密碼、角色 (選擇性),以及雲端類型,例如 Azure 雲端 (預設值)、Azure Stack 或 Azure Government 雲端。

  10. 選擇 [ 驗證連線 ] 以驗證您輸入的設定。

  11. 建立新的服務連線之後:

    • 如果您在 UI 中使用,請選取您在管線的 Azure 訂 用帳戶設定中指派的連線名稱。
    • 如果您在 YAML 中使用,請將連線名稱複製到您的程式碼中 作為 azureSubscription 值。
  12. 如有需要,請修改服務主體以公開適當的許可權。 如需詳細資訊,請參閱使用角色型存取控制來管理 Azure 訂閱資源的存取此部落格文章 也包含有關使用服務主體驗證的詳細資訊。

另請參閱: 針對 Azure Resource Manager 服務連線 進行疑難排解。

使用受控服務識別建立 VM 的 Azure Resource Manager 服務連線

注意

您必須在 Azure VM 上使用自我裝載代理程式,才能使用受控服務識別

您可以使用 Microsoft Entra ID 中的 Azure 受控服務識別 來設定以 Azure 虛擬機器 (VM) 為基礎的代理程式 。 這可讓您使用系統指派的身分識別(服務主體)將 Azure VM 型代理程式存取權授與任何支援 Microsoft Entra ID 的 Azure 資源,例如金鑰保存庫,而不是將認證保存在 Azure DevOps 中以進行連線。

  1. 在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。 在 TFS 中,從頂端功能表列中的 [設定] 圖示開啟 [服務 ] 頁面。

  2. 選擇 [+ 新增服務連線],然後選取 Azure Resource Manager

    Choosing a service connection type

  3. 選取 [ 受控識別驗證 ] 選項。

    Opening the managed service identity settings

  4. 輸入在參考此服務連線時要使用的使用者易 記連線名稱

  5. 選取 [ 環境 名稱] (例如 Azure 雲端、Azure Stack 或 Azure Government Cloud)。

  6. 在 [連線] 對話方塊的下欄欄位中輸入訂用帳戶的值:

    • 訂用帳戶識別碼
    • 訂閱名稱
    • 租使用者識別碼

  7. 建立新的服務連線之後:

    • 如果您在 UI 中使用,請選取您在管線的 Azure 訂 用帳戶設定中指派的連線名稱。
    • 如果您在 YAML 中使用,請將連線名稱複製到您的程式碼中 作為 azureSubscription 值。
  8. 請確定 VM(代理程式)具有適當的許可權。 例如,如果您的程式碼需要呼叫 Azure Resource Manager,請在 Microsoft Entra ID 中使用角色型存取控制 (RBAC) 指派適當的角色。 如需詳細資訊,請參閱 如何使用 Azure 資源的受控識別? 和使用 角色型存取控制來管理 Azure 訂用帳戶資源的 存取權。

另請參閱: 針對 Azure Resource Manager 服務連線 進行疑難排解。

連線至 Azure Government 雲端

如需連線到 Azure Government 雲端的相關資訊,請參閱:

連線到 Azure Stack

如需連線到 Azure Stack 的相關資訊,請參閱:

說明與支援