什麼是 Azure 管理群組?

如果貴組織有多個 Azure 訂閱,您可能需要一個方法來有效率地管理這些訂閱的存取、原則和相容性。 管理群組可以提供訂閱之上的治理範圍。 您可以將訂閱組織成管理群組;這些管理條件會依繼承套用到所有相關聯的訂閱。

無論具有何種類型的訂閱,管理群組都可為您提供企業級的大規模管理功能。 不過,單一管理群組中的所有訂閱都必須信任相同的 Azure Active Directory (Azure AD) 租用戶。

例如,您可以將原則套用至管理群組,以限制可建立虛擬機器 (VM) 的區域。 此原則會套用至全部巢狀管理群組、訂閱和資源,並只允許在授權區域中建立 VM。

管理群組和訂用帳戶的階層

您可以建置管理群組和訂用帳戶的彈性結構,以將您的資源組織到階層內,從而獲得統一的原則和存取管理。 下圖顯示使用管理群組建立治理階層的範例。

Diagram of a sample management group hierarchy.

根管理群組的圖表,此群組同時包含管理群組和訂用帳戶。 一些子管理群組保存管理群組、一些保留訂用帳戶,一些則保留這兩者。 範例階層的其中一個範例是四個層級的管理群組,其中的子等級為所有訂用帳戶。

您可以建立套用原則的階層,例如將名為 "Corp" 的管理群組中的 VM 位置限制為美國西部區域。 此原則將會繼承管理群組底下的所有 Enterprise 合約 (EA) 訂用帳戶,並套用至那些訂用帳戶底下的所有 VM。 此安全性原則無法由資源或訂用帳戶擁有者改變,進而可以提升治理功能。

注意

Microsoft 客戶合約 (MCA) 訂用帳戶的成本管理功能目前不支援管理群組。

另一個您會使用管理群組的情況是要讓使用者能夠存取多個訂用帳戶。 透過將多個訂用帳戶移至該管理群組底下,您可以在管理群組上建立一個 Azure 角色指派,這會將該存取權繼承至所有的訂用帳戶。 只需對管理群組進行一個指派,便能夠讓使用者存取其所需的一切項目,而無須為不同訂用帳戶撰寫 Azure RBAC 指令碼。

關於管理群組的重要資訊

  • 單一目錄中可支援 10,000 個管理群組。
  • 管理群組樹狀結構最多可支援六個層級的深度。
    • 此限制不包含根層級或訂用帳戶層級。
  • 每個管理群組和訂用帳戶只能支援一個父系。
  • 每個管理群組都可以有許多子系。
  • 在每個目錄中,所有訂用帳戶和管理群組都位於單一的階層內。 請參閱關於根管理群組的重要事實

每個目錄的根管理群組

每個目錄會都會有一個最上層管理群組,名為「根」管理群組。 這個根管理群組會建置於階層內,讓所有的管理群組和訂閱摺疊於其中。 這個根管理群組可讓全域原則和 Azure 角色指派在目錄層級套用。 Azure AD 全域管理員必須提高本身的權限,以成為此根群組最初的使用者存取管理員角色。 提高存取權限後,管理員即可將任何 Azure 角色指派給其他目錄使用者或群組,以管理階層。 身為管理員,您可以將您的帳戶指派為根管理群組的擁有者。

關於根管理群組的重要事實

  • 根據預設,根管理群組的顯示名稱是租用戶根群組,並自行以管理群組的形式運作。 識別碼與Azure Active Directory (Azure AD) 租用戶識別碼的值相同。
  • 若要變更顯示名稱,必須在根管理群組中指派帳戶擁有者參與者角色。 請參閱變更管理群組的名稱,以更新管理群組的名稱。
  • 根管理群組不同於其他管理群組,無法移動或刪除。
  • 所有的訂用帳戶和管理群組都可摺疊到目錄內的一個根管理群組中。
    • 目錄中的所有資源可摺疊到根管理群組,以便進行全域管理。
    • 建立新的訂用帳戶時,會自動預設為根管理群組。
  • 所有 Azure 客戶都可以看到根管理群組,但並非所有的客戶都有權管理該根管理群組。
    • 有訂用帳戶存取權的所有人,都可以查看訂用帳戶在階層中的上下內容。
    • 根管理群組的預設存取權不會授予任何人。 Azure AD 全域管理員是唯一可以提升自己以取得存取權的使用者。 一旦全域管理員擁有根管理群組存取權之後,就可以將任何 Azure 角色指派給其他使用者進行管理。

重要

根管理群組上的任何使用者存取權指派或原則,都會套用至目錄中的所有資源。 因此,所有客戶都應評估是否需要在此範圍內定義項目。 在這個範圍內,只應指派「必要」的使用者存取權和原則。

管理群組的初始設定

當任何使用者開始使用管理群組時,會發生初始的設定程序。 第一個步驟是在目錄中建立根管理群組。 建立此群組後,所有存在於目錄中的現有訂用帳戶都將成為根管理群組的子系。 此程序的原因是要確定目錄中只有一個管理群組階層。 目錄內的單一階層可讓系統管理客戶得以套用全域存取權和原則,讓目錄內的其他客戶無法略過。 在根目錄上指派的任何項目都將套用至整個階層當中,其中包括 Azure AD 租用戶中所有的管理群組、訂閱、資源群組和資源。

管理群組存取

Azure 管理群組支援對所有的資源存取和角色定義使用 Azure 角色型存取控制 (Azure RBAC)。 這些權限會被存在於階層中的子資源繼承。 可以將任何 Azure 角色指派至繼承階層直到資源的管理群組。 例如,可以將 Azure 角色 VM 參與者指派至管理群組。 此角色對管理群組沒有任何作用,但會繼承該管理群組下的所有 VM。

下圖顯示了角色清單與管理群組上支援的動作。

Azure 角色名稱 建立​​ 重新命名 移動** 刪除 指派存取權 指派原則 參閱
負責人 X X X X X X X
參與者 X X X X X
MG 參與者* X X X X X
讀取者 X
MG 讀取者* X
資源原則參與者 X
使用者存取系統管理員 X X

*:管理群組參與者管理群組讀者角色可讓使用者只在管理群組範圍上執行這些動作。

**:在根管理群組上的角色指派不需要將訂閱或管理群組來回移動。

如需在階層中移動項目的詳細資訊,請參閱使用管理群組管理您的資源

Azure 自訂角色定義和指派

您可以將管理群組定義為 Azure 自訂角色定義中的可指派範圍。 該 Azure 自訂角色接著即可在該管理群組,以及任何管理群組、訂用帳戶、資源群組或其下的資源上指派。 此自訂角色會像任何內建角色一樣沿著階層向下繼承。 如需自訂角色和管理群組限制的相關資訊,請參閱限制

範例定義

定義和建立自訂角色並不會隨著管理群組的納入而變更。 使用完整路徑來定義管理群組 /providers/Microsoft.Management/managementgroups/{groupId}

使用管理群組的識別碼,而不是管理群組的顯示名稱。 這個常見錯誤的發生原因是,在建立管理群組時兩者都是自訂定義的欄位。

...
{
  "Name": "MG Test Custom Role",
  "Id": "id",
  "IsCustom": true,
  "Description": "This role provides members understand custom roles.",
  "Actions": [
    "Microsoft.Management/managementgroups/delete",
    "Microsoft.Management/managementgroups/read",
    "Microsoft.Management/managementgroup/write",
    "Microsoft.Management/managementgroup/subscriptions/delete",
    "Microsoft.Management/managementgroup/subscriptions/write",
    "Microsoft.resources/subscriptions/read",
    "Microsoft.Authorization/policyAssignments/*",
    "Microsoft.Authorization/policyDefinitions/*",
    "Microsoft.Authorization/policySetDefinitions/*",
    "Microsoft.PolicyInsights/*",
    "Microsoft.Authorization/roleAssignments/*",
    "Microsoft.Authorization/roledefinitions/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
        "/providers/microsoft.management/managementGroups/ContosoCorporate"
  ]
}
...

中斷角色定義和指派階層路徑時發生的問題

角色定義是管理群組階層內的可指派範圍。 角色定義可定義於父管理群組上,而實際的角色指派存在於子訂用帳戶上。 因為這兩個項目之間有關聯性,所以當您嘗試分隔指派與其定義時,將會收到錯誤。

例如,讓我們查看一小部分的視覺效果階層。

Diagram of a subset of the sample management group hierarchy.

此圖著重於具有子登陸區域的根管理群組和 Sandbox 管理群組。 Landing zone 管理群組有兩個子管理群組 (分別名為 Corp 和 Online),而 Sandbox 管理群組有兩個子訂用帳戶。

假設 Sandbox 管理群組上定義了一個自訂角色。 接著,該自訂角色會在這兩個 Sandbox 訂用帳戶上指派。

如果我們嘗試將其中一個訂用帳戶移至成為 Corp 管理群組的子項目,則此移動會破壞從訂用帳戶角色指派到 Sandbox 管理群組角色定義的路徑。 在此種情況中,您會收到錯誤,指出因為移動會中斷此關聯性而不允許移動。

有幾個不同的選項可修正這種情況:

  • 將訂用帳戶移至新的父系 MG 之前,請先從訂用帳戶中移除角色指派。
  • 將訂閱新增至角色定義的可指派範圍。
  • 變更角色定義內的可指派範圍。 在上述範例中,您可以將可指派的範圍從 Sandbox 更新到根管理群組,讓階層的兩個分支都可以觸達該定義。
  • 建立在其他分支中定義的另一個自訂角色。 這個新角色會要求您也要在訂閱上變更角色指派。

限制

在管理群組上使用自訂角色時,有一些限制存在。

  • 您只能在新角色的可指派範圍中定義一個管理群組。 這項限制是為了減少角色定義和角色指派中斷連線的情況。 當具有角色指派的訂用帳戶或管理群組移至沒有角色定義的不同父系時,就會發生這種情況。
  • 無法在管理群組自訂角色中定義資源提供者資料平面動作。 有這項限制是因為更新資料平面資源提供者時會發生延遲問題。 此延遲問題正在處理中,而且將從角色定義停用這些動作,以降低任何風險。
  • Azure Resource Manager 不會驗證角色定義的可指派範圍中是否存在管理群組。 如果有錯字或列出了不正確的管理群組識別碼,則仍會建立角色定義。

移動管理群組和訂用帳戶

若要將管理群組或訂用帳戶移為另一個管理群組的子系,則有三個規則必須評估為 true。

如果您要執行移動動作,您需要:

  • 子訂用帳戶或管理群組上的管理群組寫入和角色指派的寫入權限。
    • 內建角色範例:擁有者
  • 目標父管理群組上的管理群組寫入權限。
    • 內建角色範例:擁有者參與者管理群組參與者
  • 現有父管理群組上的管理群組寫入權限。
    • 內建角色範例:擁有者參與者管理群組參與者

例外狀況:如果目標或現有父管理群組是根管理群組,則不適用權限需求。 因為根管理群組是所有新管理群組和訂閱的預設登陸點,所以您不需要其權限即可移動項目。

如果訂閱上的擁有者角色繼承自目前的管理群組,則您的移動目標會受到限制。 您只能將訂閱移至具有擁有者角色的另一個管理群組。 因為您會失去訂閱的擁有權,所以無法將其移至您是參與者的管理群組。 如果直接將您指派給訂用帳戶的擁有者角色 (而不是繼承自管理群組),您可以將其移至您被指派參與者角色的任何管理群組。

重要

Azure Resource Manager 最多可快取 30 分鐘的管理群組階層詳細資料。 因此,移動管理群組可能不會立即反映在 Azure 入口網站中。

使用活動記錄稽核管理群組

Azure 活動記錄中支援管理群組。 在與其他 Azure 資源位於相同中央位置的管理群組中,您可以搜尋其中發生的所有事件。 例如,您可以看到對特定的管理群組的所有角色指派或原則指派變更。

Screenshot of Activity Logs and operations related to the selected management group.

在 Azure 入口網站外部查詢管理群組時,管理群組的目標範圍像是 "/providers/Microsoft.Management/managementGroups/{management-group-id}"

注意

您可以使用 Azure Resource Manager REST API,在管理群組上啟用診斷設定,以將相關的 Azure 活動記錄項目傳送至 Log Analytics 工作區、Azure 儲存體或 Azure 事件中樞。 如需詳細資訊,請參閱管理群組診斷設定 - 建立或更新

下一步

若要深入了解管理群組,請參閱: