分享方式:


保護您的資源階層

您的資源、資源群組、訂用帳戶、管理群組和租用戶會撰寫您的資源階層。 根管理群組中的設定 (例如自訂 Azure 自訂角色或原則指派) 可能會影響您資源階層中的每個資源。 請務必保護資源階層,避免受到可能對所有資源造成負面影響的變更。

管理群組具有階層設定,可讓租用戶系統管理員控制這些行為。 本文涵蓋每一個可用的階層設定,以及如何加以設定。

階層設定的 Azure RBAC 權限

設定階層設定需要在根管理群組上進行以下資源提供者作業:

  • Microsoft.Management/managementgroups/settings/write
  • Microsoft.Management/managementgroups/settings/read

這些作業代表 Azure 角色型存取控制 (Azure RBAC) 權限。 它們僅允許使用者讀取及更新階層設定。 它們不會提供對管理群組階層或階層中資源的任何其他存取權。

Azure 內建角色中的階層設定管理員都有提供這兩項作業。

設定:定義預設管理群組

根據預設,您在租用戶內所新增的新訂用帳戶會成為根管理群組的成員。 如果您指派原則指派,Azure RBAC 和其他治理會建構至根管理群組,其會立即影響這些新的訂用帳戶。 基於這個理由,許多組織都不會在根管理群組套用這些建構,即使這是所要指派的位置也一樣。 在其他情況下,組織想要針對新的訂用帳戶進行較嚴格的控制,但不希望將其指派給所有訂用帳戶。 這項設定支援兩種使用案例。

藉由允許定義新的訂用帳戶的預設管理群組,您可以在根管理群組套用全組織的治理建構。 您可以使用原則指派或更適合新的訂用帳戶的 Azure 角色指派來定義個別管理群組。

在入口網站定義預設管理群組

  1. 登入 Azure 入口網站

  2. 使用搜尋列來搜尋並選取 [管理群組]

  3. 選取根管理群組。

  4. 選取頁面左側的 [設定]

  5. 選取 [變更預設管理群組] 按鈕。

    如果 [變更預設管理群組] 按鈕無法使用,原因則為下列其中情況之一:

    • 您要檢視的管理群組並非根管理群組。
    • 您的安全性主體沒有變更階層設定的必要權限。
  6. 從階層選取管理群組,然後選擇 [選取] 按鈕。

使用 REST API 定義預設管理群組

若要使用 REST API 定義預設管理群組,您必須呼叫 [階層設定] 端點。 請使用下列 REST API URI 和主體格式。 將 {rootMgID} 取代為您的根管理群組識別碼。 將 {defaultGroupID} 取代為將成為預設管理群組的管理群組識別碼。

  • REST API URI:

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{rootMgID}/settings/default?api-version=2020-05-01
    
  • 要求本文:

    {
        "properties": {
            "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/{defaultGroupID}"
        }
    }
    

若要將預設管理群組設定回根管理群組,請使用相同的端點,並將 defaultManagementGroup 設定為 /providers/Microsoft.Management/managementGroups/{rootMgID} 的值。

設定:需要授權

根據預設,任何使用者都可以在租用戶內建立新的管理群組。 租用戶的管理員可能只想向特定使用者提供這些權限,以維持管理群組階層中的一致性和符合性。 若要建立子管理群組,使用者必須在根管理群組上進行 Microsoft.Management/managementGroups/write 作業。

在入口網站中需要授權

  1. 登入 Azure 入口網站

  2. 使用搜尋列來搜尋並選取 [管理群組]

  3. 選取根管理群組。

  4. 選取頁面左側的 [設定]

  5. 開啟 [建立新管理群組的權限] 切換。

    如果 [需要建立新管理群組的寫入權限] 切換無法使用,原因則為下列其中一個情況:

    • 您要檢視的管理群組並非根管理群組。
    • 您的安全性主體沒有變更階層設定的必要權限。

使用 REST API 需要授權

若要使用 REST API 要求授權,請呼叫 [階層設定] 端點。 請使用下列 REST API URI 和主體格式。 這個值是布林值,因此,請為此值提供 truefalsetrue 的值會啟用這個保護管理群組階層的方法。

  • REST API URI:

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{rootMgID}/settings/default?api-version=2020-05-01
    
  • 要求本文:

    {
        "properties": {
            "requireAuthorizationForGroupCreation": true
        }
    }
    

若要關閉設定,請使用相同的端點,並將 requireAuthorizationForGroupCreation 設定為 false 的值。

Azure PowerShell 範例

Azure PowerShell 沒有 Az 命令來定義預設管理群組或要求授權。 因應措施是,您可以使用 REST API 搭配下列 Azure PowerShell 範例:

$root_management_group_id = "Enter the ID of root management group"
$default_management_group_id = "Enter the ID of default management group (or use the same ID of the root management group)"

$body = '{
     "properties": {
          "defaultManagementGroup": "/providers/Microsoft.Management/managementGroups/' + $default_management_group_id + '",
          "requireAuthorizationForGroupCreation": true
     }
}'

$token = (Get-AzAccessToken).Token
$headers = @{"Authorization"= "Bearer $token"; "Content-Type"= "application/json"}
$uri = "https://management.azure.com/providers/Microsoft.Management/managementGroups/$root_management_group_id/settings/default?api-version=2020-05-01"

Invoke-RestMethod -Method PUT -Uri $uri -Headers $headers -Body $body

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