你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
授予创建 Azure Enterprise 订阅所需的访问权限(旧版)
作为签订了企业协议 (EA) 的 Azure 客户,你可以授予其他用户或服务主体创建计费到你的帐户的订阅所需的权限。 本文介绍如何使用 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.azure.com/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.azure.com/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 管理组整理资源
- 若要查看有关大型组织订阅管理的综合最佳做法指南,请参阅 Azure 企业基架 - 规范性订阅管理