使用管理组大规模管理 Azure 订阅
如果组织有多个订阅,则可能需要通过某种方式来高效管理这些订阅的访问权限、策略和合规性。 Azure 管理组提供高于订阅的范围级别。 可将订阅整理到名为“管理组”的容器中,并将治理条件应用到管理组。 管理组中的所有订阅都将自动继承应用于管理组的条件。
不管使用什么类型的订阅,管理组都能提供大规模的企业级管理。 有关管理组的详细信息,请参阅使用 Azure 管理组整理资源。
注意
本文介绍如何删除设备或服务中的个人数据,并且可用于为 GDPR 下的义务提供支持。 有关 GDPR 的常规信息,请参阅 Microsoft 信任中心的 GDPR 部分和服务信任门户的 GDPR 部分。
重要
Azure 资源管理器用户令牌和管理组缓存持续 30 分钟后才会被强制刷新。 任何操作(如移动管理组或订阅)最多可能需要 30 分钟才会显示该操作。 如果想更快看到更新,需要通过刷新浏览器、登录并注销来更新令牌,或者请求新令牌。
对于本文中的 Azure PowerShell 操作,请记住,AzManagementGroup
相关的 cmdlet 提到 -GroupId
是 -GroupName
参数的别名。
可以使用其中任一项将管理组 ID 作为字符串值提供。
更改管理组名称
可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 更改管理组的名称。
在门户中更改名称
登录到 Azure 门户。
选择“所有服务”>“管理组”。
选择要重命名的管理组。
选择“详细信息”。
选择窗格顶部的“重命名组”选项。
在“重命名组”窗格中,输入要显示的新名称。
选择“保存”。
在 Azure PowerShell 中更改名称
若要更新显示名称,请使用 Azure PowerShell 中的 Update-AzManagementGroup
。 例如,若要将管理组的显示名称从“Contoso IT”更改为“Contoso Group”,可运行以下命令:
Update-AzManagementGroup -GroupId 'ContosoIt' -DisplayName 'Contoso Group'
在 Azure CLI 中更改名称
对于 Azure CLI,请使用 update
命令:
az account management-group update --name 'Contoso' --display-name 'Contoso Group'
删除管理组
若要删除某个管理组,必须满足以下要求:
该管理组下面没有任何子管理组或订阅。 若要将订阅或管理组移到另一个管理组,请参阅本文后面的移动管理组和订阅。
你需要拥有对管理组的写入权限(“所有者”、“参与者”或“管理组参与者”)。 若要查看自己拥有哪些权限,请选择管理组,然后选择“IAM”。 若要详细了解 Azure 角色,请参阅什么是 Azure 基于角色的访问控制 (Azure RBAC)?。
在门户中删除管理组
登录到 Azure 门户。
选择“所有服务”>“管理组”。
选择要删除的管理组。
选择“详细信息”。
选择“删除”。
提示
如果“删除”按钮不可用,将鼠标悬停在该按钮上会显示原因。
此时会打开一个对话框,并要求你确认要删除管理组。
选择是。
在 Azure PowerShell 中删除管理组
若要删除管理组,请使用 Azure PowerShell 中的 Remove-AzManagementGroup
命令:
Remove-AzManagementGroup -GroupId 'Contoso'
在 Azure CLI 中删除管理组
使用 Azure CLI 时,使用命令 az account management-group delete
:
az account management-group delete --name 'Contoso'
查看管理组
如果具有直接或继承的 Azure 角色,可以查看任何管理组。
在门户中查看管理组
登录到 Azure 门户。
选择“所有服务”>“管理组”。
会显示管理组层次结构的页面。 可以在此页面中浏览你有权访问的所有管理组和订阅。 选择组名会将你带到层次结构的较低级别。 导航的工作方式与文件资源管理器一样。
若要查看管理组的详细信息,请选择管理组标题旁边的“(详细信息)”链接。 如果此链接不可用,则表示你无权查看该管理组。
在 Azure PowerShell 门户中查看管理组
使用 Get-AzManagementGroup
命令检索所有组。 请参阅 Az.Resources 模块,查看管理组 GET
PowerShell 命令的完整列表。
Get-AzManagementGroup
若要查看单个管理组的信息,请使用 -GroupId
参数:
Get-AzManagementGroup -GroupId 'Contoso'
若要返回特定管理组及其下层次结构的所有级别,请使用 -Expand
和 -Recurse
参数:
PS C:\> $response = Get-AzManagementGroup -GroupId TestGroupParent -Expand -Recurse
PS C:\> $response
Id : /providers/Microsoft.Management/managementGroups/TestGroupParent
Type : /providers/Microsoft.Management/managementGroups
Name : TestGroupParent
TenantId : 00000000-0000-0000-0000-000000000000
DisplayName : TestGroupParent
UpdatedTime : 2/1/2018 11:15:46 AM
UpdatedBy : 00000000-0000-0000-0000-000000000000
ParentId : /providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000
ParentName : 00000000-0000-0000-0000-000000000000
ParentDisplayName : 00000000-0000-0000-0000-000000000000
Children : {TestGroup1DisplayName, TestGroup2DisplayName}
PS C:\> $response.Children[0]
Type : /managementGroup
Id : /providers/Microsoft.Management/managementGroups/TestGroup1
Name : TestGroup1
DisplayName : TestGroup1DisplayName
Children : {TestRecurseChild}
PS C:\> $response.Children[0].Children[0]
Type : /managementGroup
Id : /providers/Microsoft.Management/managementGroups/TestRecurseChild
Name : TestRecurseChild
DisplayName : TestRecurseChild
Children :
在 Azure CLI 中查看管理组
使用 list
命令检索所有组:
az account management-group list
若要查看单个管理组的信息,请使用 show
命令:
az account management-group show --name 'Contoso'
若要返回特定管理组及其下层次结构的所有级别,请使用 -Expand
和 -Recurse
参数:
az account management-group show --name 'Contoso' -e -r
移动管理组和订阅
创建管理组的原因之一是将订阅捆绑在一起。 只有管理组和订阅设置可以成为另一个管理组的子级。 移到管理组的订阅从父管理组继承所有用户访问权限和策略。
可以在管理组之间移动订阅。 一个订阅只能有一个父管理组。
将管理组或订阅移动为另一个管理组的子项时,三项规则的计算结果都需要为 true。
如果要执行移动操作,则需要对以下各层具有权限:
- 子订阅或管理组
Microsoft.management/managementgroups/write
Microsoft.management/managementgroups/subscriptions/write
(仅适用于订阅)Microsoft.Authorization/roleAssignments/write
Microsoft.Authorization/roleAssignments/delete
Microsoft.Management/register/action
- 目标父管理组
Microsoft.management/managementgroups/write
- 当前父管理组
Microsoft.management/managementgroups/write
存在例外:如果目标或现有父管理组是根管理组,则权限要求不适用。 由于根管理组是所有新管理组和订阅的默认登陆点,因此不需其上的权限即可移动项。
如果订阅上的“所有者”角色继承自当前管理组,则你的移动目标会受限。 只能将订阅移到另一个你在其中有“所有者”角色的管理组。 不能将订阅移到你在其中仅是参与者的管理组,因为你会失去订阅的所有权。 如果你已被直接分配了订阅的“所有者”角色,则可将它移到你在其中具有参与者角色的任何管理组。
若要查看自己在 Azure 门户中拥有哪些权限,请选择管理组,然后选择“IAM”。 若要详细了解 Azure 角色,请参阅什么是 Azure 基于角色的访问控制 (Azure RBAC)?。
在门户中将现有订阅添加到管理组
登录到 Azure 门户。
选择“所有服务”>“管理组”。
选择要成为父级的管理组。
在页面顶部,选择“添加订阅”。
在列表中选择具有正确 ID 的订阅。
选择“保存”。
在门户中从管理组删除订阅
登录到 Azure 门户。
选择“所有服务”>“管理组”。
选择当前父级的管理组。
选择要移动的订阅行末尾的省略号(
...
)。选择“移动”。
在“移动”窗格中,选择“新建父管理组 ID”的值。
选择“保存”。
在 Azure PowerShell 中移动订阅
若要在 PowerShell 中移动订阅,请使用 New-AzManagementGroupSubscription
命令:
New-AzManagementGroupSubscription -GroupId 'Contoso' -SubscriptionId '12345678-1234-1234-1234-123456789012'
若要删除订阅与管理组之间的链接,请使用 Remove-AzManagementGroupSubscription
命令:
Remove-AzManagementGroupSubscription -GroupId 'Contoso' -SubscriptionId '12345678-1234-1234-1234-123456789012'
在 Azure CLI 中移动订阅
若要在 Azure CLI 中移动订阅,请使用 add
命令:
az account management-group subscription add --name 'Contoso' --subscription '12345678-1234-1234-1234-123456789012'
若要从管理组中删除订阅,请使用 subscription remove
命令:
az account management-group subscription remove --name 'Contoso' --subscription '12345678-1234-1234-1234-123456789012'
在 ARM 模板中移动订阅
若要在 Azure 资源管理器模板(ARM 模板)中移动订阅,请使用以下模板并将其部署在租户级别:
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"targetMgId": {
"type": "string",
"metadata": {
"description": "Provide the ID of the management group that you want to move the subscription to."
}
},
"subscriptionId": {
"type": "string",
"metadata": {
"description": "Provide the ID of the existing subscription to move."
}
}
},
"resources": [
{
"scope": "/",
"type": "Microsoft.Management/managementGroups/subscriptions",
"apiVersion": "2020-05-01",
"name": "[concat(parameters('targetMgId'), '/', parameters('subscriptionId'))]",
"properties": {
}
}
],
"outputs": {}
}
或者,使用以下 Bicep 文件:
targetScope = 'managementGroup'
@description('Provide the ID of the management group that you want to move the subscription to.')
param targetMgId string
@description('Provide the ID of the existing subscription to move.')
param subscriptionId string
resource subToMG 'Microsoft.Management/managementGroups/subscriptions@2020-05-01' = {
scope: tenant()
name: '${targetMgId}/${subscriptionId}'
}
在门户中删除管理组
登录到 Azure 门户。
选择“所有服务”>“管理组”。
选择要成为父级的管理组。
在页面顶部,选择“添加管理组”。
在“添加管理组”窗格中,选择是要使用新的管理组还是现有管理组:
- 选择“新建”会创建新的管理组。
- 选择“使用现有”将显示所有管理组的下拉列表,这些管理组可移动到此管理组。
选择“保存”。
在 Azure PowerShell 中移动管理组
若要将管理组移到不同的组下面,请在 Azure PowerShell 中使用 Update-AzManagementGroup
命令:
$parentGroup = Get-AzManagementGroup -GroupId ContosoIT
Update-AzManagementGroup -GroupId 'Contoso' -ParentId $parentGroup.id
在 Azure CLI 中移动管理组
若要在 Azure CLI 中移动管理组,请使用 update
命令:
az account management-group update --name 'Contoso' --parent ContosoIT
使用活动日志审核管理组
Azure Monitor 活动日志支持管理组。 可查询发生在与其他 Azure 资源位于相同中心位置的管理组上的所有事件。 例如,可以看到对特定管理组所做的所有角色分配或策略分配更改。
若要在 Azure 门户外部查询管理组,管理组的目标范围类似于 "/providers/Microsoft.Management/managementGroups/{yourMgID}"
。
从其他资源提供程序引用管理组
从其他资源提供程序的操作引用管理组时,请使用以下路径作为作用域。 使用 Azure PowerShell、Azure CLI 和 REST API 时,此路径适用。
/providers/Microsoft.Management/managementGroups/{yourMgID}
在 Azure PowerShell 中向管理组分配新的角色分配时使用此路径的示例:
New-AzRoleAssignment -Scope "/providers/Microsoft.Management/managementGroups/Contoso"
使用相同的范围路径检索管理组的策略定义:
GET https://management.chinacloudapi.cn/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming?api-version=2019-09-01
相关内容
若要了解有关管理组的详细信息,请参阅: