授予创建 Azure Enterprise 订阅所需的访问权限(旧版)
本文介绍如何使用 Azure 基于角色的访问控制 (Azure RBAC) 共享创建订阅的功能,以及如何审核订阅创建。 必须在想要共享的帐户上具备所有者角色。
注意
- 此 API 仅适用于旧版 API(用于创建订阅)。
- 除非有特定需求要使用旧版 API,否则应该使用有关最新 API 版本的最新 GA 版本的信息。 请参阅注册帐户角色分配 - Put 以授予使用最新 API 创建 EA 订阅的权限。
- 如果要迁移到使用较新的 API,则必须使用 2019-10-01-preview 再次授予所有者权限。 若以前的配置使用以下 API,则其不会自动转换为使用较新的 API。
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
授予访问权限
若要在注册帐户下创建订阅,用户必须在该帐户上具有 Azure RBAC 所有者角色。 可按照以下步骤为用户或用户组授予注册帐户上的 Azure RBAC 所有者角色:
获取要授权访问的注册帐户的对象 ID
若要向其他人授予注册帐户上的 Azure RBAC 所有者角色,你必须是该帐户的帐户所有者或 Azure RBAC 所有者。
请求列出你有权访问的所有注册帐户:
GET https://management.chinacloudapi.cn/providers/Microsoft.Billing/enrollmentAccounts?api-version=2018-03-01-preview
Azure 使用有访问权限的所有注册帐户列表做出响应:
{ "value": [ { "id": "/providers/Microsoft.Billing/enrollmentAccounts/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "name": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "type": "Microsoft.Billing/enrollmentAccounts", "properties": { "principalName": "SignUpEngineering@contoso.com" } }, { "id": "/providers/Microsoft.Billing/enrollmentAccounts/4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": "Microsoft.Billing/enrollmentAccounts", "properties": { "principalName": "BillingPlatformTeam@contoso.com" } } ] }
使用
principalName
属性标识要允许 Azure RBAC 所有者访问的帐户。 复制该帐户的name
。 例如,如果要允许 Azure RBAC 所有者访问 SignUpEngineering@contoso.com 注册帐户,则复制aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
。 这是注册帐户的对象 ID。 将该值粘贴到某个位置,以便在下一步中将其用作enrollmentAccountObjectId
。使用
principalName
属性标识要允许 Azure RBAC 所有者访问的帐户。 复制该帐户的name
。 例如,如果要允许 Azure RBAC 所有者访问 SignUpEngineering@contoso.com 注册帐户,则复制aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
。 这是注册帐户的对象 ID。 将该值粘贴到某个位置,以便在下一步中将其用作enrollmentAccountObjectId
。获取要向其授予 Azure RBAC 所有者角色的用户或组的对象 ID
- 在 Azure 门户中,在 Microsoft Entra ID 之上进行搜索。
- 如果要向用户授予访问权限,请在左侧菜单中选择“用户”。 若要向组授予访问权限,请选择“组”。
- 选择要向其授予 Azure RBAC 所有者角色的用户或组。
- 如果选择了用户,则将在“配置文件”页中找到对象 ID。 如果选择了组,则对象 ID 出现在“概述”页中。 通过选择文本框右侧的图标来复制 ObjectID。 将其粘贴到某个位置,以便在下一步中将其用作
userObjectId
。
向用户或组授予注册帐户上的 Azure RBAC 所有者角色
使用在前两个步骤中收集的值,向用户或组授予注册帐户上的 Azure RBAC 所有者角色。
运行以下命令,并将
<enrollmentAccountObjectId>
替换为在第一步中复制的name
(aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
)。 将<userObjectId>
替换为从第二步复制的对象 ID。PUT https://management.chinacloudapi.cn/providers/Microsoft.Billing/enrollmentAccounts/<enrollmentAccountObjectId>/providers/Microsoft.Authorization/roleAssignments/<roleAssignmentGuid>?api-version=2015-07-01 { "properties": { "roleDefinitionId": "/providers/Microsoft.Billing/enrollmentAccounts/<enrollmentAccountObjectId>/providers/Microsoft.Authorization/roleDefinitions/<ownerRoleDefinitionId>", "principalId": "<userObjectId>" } }
所有者角色在注册帐户范围成功分配时,Azure 使用角色分配信息做出响应:
{ "properties": { "roleDefinitionId": "/providers/Microsoft.Billing/enrollmentAccounts/providers/Microsoft.Authorization/roleDefinitions/<ownerRoleDefinitionId>", "principalId": "<userObjectId>", "scope": "/providers/Microsoft.Billing/enrollmentAccounts/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "createdOn": "2018-03-05T08:36:26.4014813Z", "updatedOn": "2018-03-05T08:36:26.4014813Z", "createdBy": "<assignerObjectId>", "updatedBy": "<assignerObjectId>" }, "id": "/providers/Microsoft.Billing/enrollmentAccounts/providers/Microsoft.Authorization/roleDefinitions/<ownerRoleDefinitionId>", "type": "Microsoft.Authorization/roleAssignments", "name": "<roleAssignmentGuid>" }
使用活动日志审核订阅的创建者
若要通过此 API 跟踪创建的订阅,请使用租户活动日志 API。 目前不可以使用 PowerShell、CLI 或 Azure 门户跟踪订阅创建信息。
Microsoft Entra 租户的租户管理员可以提升访问权限,然后将一个“读取者”角色分配给
/providers/microsoft.insights/eventtypes/management
范围内的审核用户。 读者角色、监视参与者角色或自定义角色具有此访问权限。审核用户可以调用租户活动日志 API 查看订阅创建活动。 示例:
GET "/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '{greaterThanTimeStamp}' and eventTimestamp le '{lessThanTimestamp}' and eventChannels eq 'Operation' and resourceProvider eq 'Microsoft.Subscription'"
若要快速从命令行调用此 API,请尝试使用 ARMClient。
相关内容
- 既然用户或服务主体有权创建订阅,你可以使用该标识以编程方式创建 Azure Enterprise 订阅。
- 有关使用 .NET 创建订阅的示例,请参阅 GitHub 上的示例代码。
- 若要了解有关 Azure 资源管理器及其 API 的详细信息,请参阅 Azure 资源管理器概述。
- 要详细了解如何使用管理组管理大量订阅,请参阅使用 Azure 管理组整理资源