使用 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 擴充功能工作都已更新,以支援工作負載身分識別同盟。
建立新的工作負載身分識別同盟服務連線
在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。
選擇 [+ 新增服務連線],然後選取 Azure Resource Manager。
選取 [工作負載身分識別同盟][自動]。
指定下列參數。
參數 描述 訂用帳戶 選取現有的 Azure 訂閱。 如果您沒有看到任何 Azure 訂用帳戶或實例,請參閱 針對 Azure Resource Manager 服務連線 進行疑難排解。 資源群組 保留空白以允許使用者存取訂用帳戶內定義的所有資源,或選取您想要限制使用者存取的資源群組(使用者只能存取該群組內定義的資源)。 服務連線名稱 必要。 您將用來在工作屬性中參考此服務連線的名稱。 這不是 Azure 訂用帳戶的名稱。 建立新的服務連線之後,請將連線名稱複製到您的程式碼中做為
azureSubscription
值。若要部署至特定的 Azure 資源,工作將需要該資源的其他資料。 移至Azure 入口網站中的資源,然後將資料複製到您的程式碼中。 例如,若要部署 Web 應用程式,您會將 App Service
WebAppName
的名稱複製到 值。
將現有的 ARM 服務連線轉換為使用工作負載身分識別同盟
在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。
移至 [管線 > 服務連線 ],然後開啟現有的服務連線。
選取您想要轉換成使用工作負載身分識別的服務連線。
選取轉換。
再次選取 [轉換 ] 以確認您想要建立新的服務連線。 您將有七天的時間可還原連線。 轉換可能需要幾分鐘的時間才能處理。 程式完成之後,您將能夠使用新的服務連線。
還原現有的 ARM 服務連線以使用服務主體秘密
您可以使用其秘密還原已轉換的服務連線七天。 七天后,您必須手動建立新的秘密。
若要還原連線:
在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。
移至 [管線 > 服務連線 ],然後開啟現有的服務連線。
選取您想要還原的服務連線。
選取 [ 還原轉換至原始配置 ]。
再次選取 [ 還原 ] 以確認您的選擇。
使用服務主體秘密建立 Azure Resource Manager 服務連線
如果:
- 您已以 Azure Pipelines 組織和 Azure 訂用帳戶的擁有者身分登入。
- 您不需要進一步限制透過服務連線存取的 Azure 資源許可權。
- 您未連線到 Azure Stack 或 Azure Government 雲端 。
- 您未從 Azure DevOps Server 2019 或舊版 TFS 進行連線
在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。 在 TFS 中,從頂端功能表列中的 [設定] 圖示開啟 [服務 ] 頁面。
選擇 [+ 新增服務連線],然後選取 Azure Resource Manager。
指定下列參數。
參數 描述 連線名稱 必要。 您將用來在工作屬性中參考此服務連線的名稱。 這不是 Azure 訂用帳戶的名稱。 範圍層級 選取 [訂用帳戶] 或 [管理群組]。 管理群組 是可協助您跨多個訂用帳戶管理存取、原則和合規性的容器。 訂用帳戶 如果您為範圍選取 [訂用帳戶],請選取現有的 Azure 訂用帳戶。 如果您沒有看到任何 Azure 訂用帳戶或實例,請參閱 針對 Azure Resource Manager 服務連線 進行疑難排解。 管理群組 如果您為範圍選取 [管理群組],請選取現有的 Azure 管理群組。 請參閱 建立管理群組 。 資源群組 保留空白以允許使用者存取訂用帳戶內定義的所有資源,或選取您想要限制使用者存取的資源群組(使用者只能存取該群組內定義的資源)。 建立新的服務連線之後:
- 如果您使用傳統編輯器,請選取您在管線的 Azure 訂 用帳戶設定中指派的連線名稱。
- 如果您使用 YAML,請將連線名稱複製到程式碼中做為
azureSubscription
值。
若要部署至特定的 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 服務連線
如果您想要使用預先定義的一組存取權限,且尚未定義適當的服務主體,請遵循下列其中一個教學課程來建立新的服務主體:
在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。 在 TFS 中,從頂端功能表列中的 [設定] 圖示開啟 [服務 ] 頁面。
選擇 [+ 新增服務連線],然後選取 Azure Resource Manager。
選擇 [服務主體(手動)] 選項,然後輸入服務主體詳細資料。
輸入在參考此服務連線時要使用的使用者易 記連線名稱 。
選取 [ 環境 名稱] (例如 Azure 雲端、Azure Stack 或 Azure Government Cloud)。
如果您 未 選取 [Azure 雲端 ],請輸入 [環境 URL]。 針對 Azure Stack,這會類似
https://management.local.azurestack.external
選取您需要的範圍 層級 :
- 如果您選擇 [ 訂用帳戶 ],請選取現有的 Azure 訂用帳戶。 如果您沒有看到任何 Azure 訂用帳戶或實例,請參閱 針對 Azure Resource Manager 服務連線 進行疑難排解。 |
- 如果您選擇 [ 管理群組 ],請選取現有的 Azure 管理群組。 請參閱 建立管理群組 。 |
在 [Azure 訂用帳戶] 對話方塊文字方塊中,輸入您的服務主體相關資訊:
- 訂用帳戶識別碼
- 訂閱名稱
- 服務主體識別碼
- 服務主體用戶端金鑰,或者,如果您已選取 [憑證 ],請輸入 *.pem 檔案之憑證和私密金鑰區段的內容。
- 租使用者識別碼
如果您不需要在 Azure PowerShell 視窗中下載並執行 此 PowerShell 腳本 ,即可取得此資訊。 出現提示時,請輸入您的訂用帳戶名稱、密碼、角色 (選擇性),以及雲端類型,例如 Azure 雲端 (預設值)、Azure Stack 或 Azure Government 雲端。
選擇 [ 驗證連線 ] 以驗證您輸入的設定。
建立新的服務連線之後:
- 如果您在 UI 中使用,請選取您在管線的 Azure 訂 用帳戶設定中指派的連線名稱。
- 如果您在 YAML 中使用,請將連線名稱複製到您的程式碼中 作為 azureSubscription 值。
如有需要,請修改服務主體以公開適當的許可權。 如需詳細資訊,請參閱使用角色型存取控制來管理 Azure 訂閱資源的存取。 此部落格文章 也包含有關使用服務主體驗證的詳細資訊。
另請參閱: 針對 Azure Resource Manager 服務連線 進行疑難排解。
使用受控服務識別建立 VM 的 Azure Resource Manager 服務連線
注意
您必須在 Azure VM 上使用自我裝載代理程式,才能使用受控服務識別
您可以使用 Microsoft Entra ID 中的 Azure 受控服務識別 來設定以 Azure 虛擬機器 (VM) 為基礎的代理程式 。 這可讓您使用系統指派的身分識別(服務主體)將 Azure VM 型代理程式存取權授與任何支援 Microsoft Entra ID 的 Azure 資源,例如金鑰保存庫,而不是將認證保存在 Azure DevOps 中以進行連線。
在 Azure DevOps 中,從 專案設定頁面開啟 [服務連線 ] 頁面 。 在 TFS 中,從頂端功能表列中的 [設定] 圖示開啟 [服務 ] 頁面。
選擇 [+ 新增服務連線],然後選取 Azure Resource Manager。
選取 [ 受控識別驗證 ] 選項。
輸入在參考此服務連線時要使用的使用者易 記連線名稱 。
選取 [ 環境 名稱] (例如 Azure 雲端、Azure Stack 或 Azure Government Cloud)。
在 [連線] 對話方塊的下欄欄位中輸入訂用帳戶的值:
- 訂用帳戶識別碼
- 訂閱名稱
- 租使用者識別碼
建立新的服務連線之後:
- 如果您在 UI 中使用,請選取您在管線的 Azure 訂 用帳戶設定中指派的連線名稱。
- 如果您在 YAML 中使用,請將連線名稱複製到您的程式碼中 作為 azureSubscription 值。
請確定 VM(代理程式)具有適當的許可權。 例如,如果您的程式碼需要呼叫 Azure Resource Manager,請在 Microsoft Entra ID 中使用角色型存取控制 (RBAC) 指派適當的角色。 如需詳細資訊,請參閱 如何使用 Azure 資源的受控識別? 和使用 角色型存取控制來管理 Azure 訂用帳戶資源的 存取權。
另請參閱: 針對 Azure Resource Manager 服務連線 進行疑難排解。
連線至 Azure Government 雲端
如需連線到 Azure Government 雲端的相關資訊,請參閱:
連線到 Azure Stack
如需連線到 Azure Stack 的相關資訊,請參閱:
說明與支援
- 請參閱我們的 疑難排解 頁面
- 取得 Stack Overflow 的建議 ,並隨意張貼您的問題、搜尋解答,或建議 Azure DevOps 開發人員社群 上的功能。 支援 頁面。