共用方式為


Azure 登陸區域的測試方法

注意

本文僅適用于 Microsoft Azure,不適用於任何其他 Microsoft Cloud 供應專案,例如 Microsoft 365 或 Microsoft Dynamics 365。

某些組織可能會想要測試其 Azure 登陸區域平臺部署,以Azure 原則定義和指派、角色型存取控制 (RBAC) 自訂角色和指派等等。 您可以使用 Azure Resource Manager 範本、AzOps、 Terraform Bicep 或透過 Azure 入口網站 手動完成 測試。 本指南提供一種方法,可用來測試變更及其在 Azure 登陸區域平臺部署中的影響。

本文也可以與平臺自動化和 DevOps 重要設計區域 指引搭配 使用,因為它與 PlatformOps 和 Central 函式小組和工作有關。

本指南最適用于管理生產環境管理群組階層變更的強固變更管理程式的組織。 Canary 管理群組階層可以獨立用來撰寫和測試部署,再將它們部署到生產環境。

注意

Canary 一詞 可用來避免與開發環境或測試環境混淆。 此名稱僅供說明之用。 您可以定義任何適合 Canary Azure 登陸區域環境的名稱。

同樣地,在整個指引中使用生產環境 一詞 來參考組織可能已具備的管理群組階層,其中包含您工作負載的 Azure 訂用帳戶和資源。

平臺定義

重要

本指南不適用於將供應用程式或服務擁有者稱為登陸區域、工作負載、應用程式或服務的開發環境或測試環境使用。 這些會放在生產環境管理群組階層和相關聯的治理中並加以處理(RBAC 和Azure 原則)。

本指南僅適用于 Azure 登陸區域內容中的平台層級測試和變更。

企業級可協助您設計和部署必要的 Azure 平臺元件,讓您能夠大規模建構及運作登陸區域。

本文範圍中的平臺資源及此測試方法如下:

產品或服務 資源提供者和類型
管理群組 Microsoft.Management/managementGroups
管理群組訂用帳戶關聯 Microsoft.Management/managementGroups/subscriptions
原則定義 Microsoft.Authorization/policyDefinitions
原則計畫定義或原則集定義 Microsoft.Authorization/policySetDefinitions
原則指派 Microsoft.Authorization/policyAssignments
RBAC 角色定義 Microsoft.Authorization/roleDefinitions
RBAC 角色指派 Microsoft.Authorization/roleAssignments
訂用帳戶 Microsoft.Subscription/aliases

範例案例和結果

此案例的範例是一個組織,其想要根據 原則驅動的治理設計原則 ,測試新Azure 原則的影響和結果,以控管所有登陸區域中的資源和設定。 他們不想直接對生產環境進行這項變更,因為他們擔心它可能造成的影響。

使用 Canary 環境來測試此平臺變更,可讓組織實作及檢閱Azure 原則變更的影響和結果。 此程式可確保其符合組織的需求,再將其Azure 原則實作到生產環境。

類似的案例可能是 Azure RBAC 角色指派和 Microsoft Entra 群組成員資格的變更。 在生產環境中進行變更之前,可能需要一種測試形式。

重要

對於大多數客戶來說,這不是常見的部署方法或模式。 Azure 登陸區域部署並非必要專案。

Diagram of the management group hierarchy with the canary environment testing approach.

圖 1:Canary 管理群組階層。

如圖所示,整個 Azure 登陸區域生產環境管理群組階層會在 底下 Tenant Root Group 重複。 Canary 名稱會附加至管理群組顯示名稱和識別碼。 識別碼在單一 Microsoft Entra 租使用者內必須是唯一的。

注意

Canary 環境管理群組顯示名稱可以與生產環境管理群組顯示名稱相同。 這可能會導致使用者混淆。 因此,我們建議將名稱 「canary」 附加至顯示名稱,以及其識別碼。

然後,Canary 環境管理群組階層會用來簡化下列資源類型的測試:

  • 管理群組
    • 訂用帳戶放置
  • Rbac
    • 角色 (內建和自訂)
    • 作業
  • Azure 原則
    • 定義 (內建和自訂)
    • 計畫,也稱為集合定義
    • 作業

如果您不想部署整個 Canary 環境管理群組階層,該怎麼辦?

如果您不想部署整個 Canary 環境管理群組階層,您可以使用沙箱訂 帳戶來測試生產環境階層內的平臺資源,如下圖所示。

Diagram of the testing approach that uses sandboxes.

圖 2:企業級管理群組階層醒目提示沙箱。

若要在此案例中測試Azure 原則和 RBAC,您需要單一 Azure 訂用帳戶,並將擁有者 RBAC 角色指派給您想要完成測試的身分識別,例如使用者帳戶、服務主體或受控服務識別。 此設定可讓您在沙箱訂用帳戶的範圍內撰寫、指派和補救Azure 原則定義和指派。

例如,如果您正在開發新的自訂 RBAC 角色來授與特定使用案例的許可權,此沙箱方法也可用於訂用帳戶內的 RBAC 測試。 此測試全都可以在沙箱訂用帳戶中完成,並在階層中建立和指派較高角色之前進行測試。

這種方法的優點是沙箱訂用帳戶可在需要的時間使用,然後從環境中刪除。

不過,此方法不允許您測試從管理群組階層繼承 RBAC 和 Azure 原則。

使用單一 Microsoft Entra 租使用者

當您使用單一 Microsoft Entra 租使用者時要考慮的考慮如下:

  • 遵循 Microsoft Entra 租使用者的企業級設計建議
  • 根據 雲端採用架構 Azure 最佳做法,標準化單一目錄和身 分識別指引,單一 Microsoft Entra 租使用者是大部分的最佳做法。
    • 在單一 Microsoft Entra 租使用者中,您可以針對生產環境和 Canary Azure 登陸區域環境使用不同的 Microsoft Entra 群組,並使用相同的使用者,指派給相同 Microsoft Entra 租使用者內的相關管理群組階層。
  • 由於不同 Microsoft Entra 租使用者有多個身分識別,因此增加了或重複的 Microsoft Entra 識別碼授權成本。
    • 這一點特別與使用 Microsoft Entra ID P1 或 P2 功能的客戶有關。
  • 在 Canary 環境和生產環境中,RBAC 變更會更加複雜,因為兩個 Microsoft Entra 租使用者的使用者和群組可能不相同。
    • 此外,使用者和群組識別碼在 Microsoft Entra 租使用者之間不會相同,因為它們是全域唯一的。
  • 減少管理多個 Microsoft Entra 租使用者所造成的複雜度和管理額外負荷。
    • 必須維護存取權並登入個別租使用者以執行測試的特殊許可權使用者,可能會不小心對生產環境進行變更,而不是對 Canary 環境進行變更,反之亦然。
  • 降低設定漂移和部署失敗的可能性。
  • 不需要建立額外的安全性和中斷或緊急存取程式。
  • 減少摩擦,以及實作 Azure 登陸區域部署變更所需的時間。

實作指南

以下是如何針對 Azure 登陸區域以及生產環境管理群組階層實作和使用 Canary 管理群組階層的指引。

警告

如果您目前使用入口網站來部署及管理 Azure 登陸區域環境,可能會因為生產環境與 Canary 環境的高風險而難以有效率地採用和使用 Canary 方法,因此通常不會提供類似複本的階層和生產環境。

如果您在此案例中,請考慮移至 Azure 登陸區域的基礎結構即程式碼部署方法,如上所列。 或者請注意 Canary 與生產之間設定漂移的潛在風險,並小心處理。

  1. 使用個別的 Microsoft Entra 服務主體 (SPN) 或受控服務識別 (MSIS),這些主體會授與相關生產環境或 Canary 環境管理群組階層的許可權。
    • 本指南遵循最低許可權原則 (PoLP)
  2. 使用 Git 存放庫、分支或存放庫內的個別資料夾來保存生產環境和 Canary 環境 Azure 登陸區域部署的基礎結構即程式碼。
    • 根據要部署的階層,使用相關的 Microsoft Entra 服務主體 (SPN) 或受控服務識別 (MSIS) 作為 CI/CD 管線的一部分。
  3. 實作 Canary 環境的 Git 分支原則或安全性,因為您已就地用於生產環境。
    • 請考慮減少核准者和檢查 Canary 環境失敗的速度。
  4. 使用相同的 Azure Pipelines 或 GitHub 動作,以使用環境變數來變更要部署的階層。 另一個選項是複製管線,並修改硬式編碼設定,以定義要部署的階層。
  5. 在個別的 EA 部門和帳戶下,有一組 Canary 訂用帳戶,可視需要在 Canary 管理群組階層中移動。
    • 讓一組資源一律部署到 Canary 環境訂用帳戶可能很有説明。
    • 讓 ARM 範本、Bicep 或 Terraform 等基礎結構即程式碼範本建立一組資源,以在 Canary 環境中驗證變更可能很有説明。
  6. 根據 Azure 登陸區域設計建議 ,將所有 Azure 訂用帳戶的所有 Azure 活動記錄,包括任何 Canary 環境訂用帳戶傳送至生產環境 Azure Log Analytics 工作區。

提示

如果您已在生產環境中部署 Azure 登陸區域,且現在想要新增 Canary 環境。 請考慮複製您目前的生產環境階層部署,並修改資源名稱,以使用 Canary 命名配置作為前置詞。

這是為了確保您要部署以啟用 Canary 環境從一開始就與生產環境同步。 使用基礎結構即程式碼工具與 Git 存放庫時,可以輕鬆地達成此目的。

下一步

瞭解如何實作登陸區域沙箱環境。