本文介绍如何使用 Azure 基于角色的访问控制(Azure RBAC)共享创建订阅的能力,以及如何审核订阅创建。 必须在想要共享的帐户上具备所有者角色。
注意
- 此 API 仅适用于旧版 API(用于创建订阅)。
- 除非有特定需求要使用旧版 API,否则应该使用有关最新 API 版本的最新 GA 版本的信息。 请参阅注册帐户角色分配 - Put 以授予使用最新 API 创建 EA 订阅的权限。
- 如果要迁移到使用较新的 API,则必须使用 2019-10-01-preview 再次授予所有者权限。 若以前的配置使用以下 API,则其不会自动转换为使用较新的 API。
注意
建议使用 Azure Az PowerShell 模块与Azure交互。 请参阅 Install Azure PowerShell 入门。 若要了解如何迁移到 Az PowerShell 模块,请参阅 Migrate Azure PowerShell从 AzureRM 迁移到 Az。
授予访问权限
若要在注册帐户下创建订阅,用户必须拥有该帐户的 Azure RBAC Owner 角色。 可以按照以下步骤在注册帐户上授予用户或用户组Azure RBAC 所有者角色:
获取想要授予访问权限的注册帐户的对象ID
若要向其他人授予注册帐户的 Azure RBAC 所有者角色,你必须是帐户的“帐户所有者”或Azure RBAC 所有者。
请求列出你有权访问的所有注册帐户:
GET https://management.chinacloudapi.cn/providers/Microsoft.Billing/enrollmentAccounts?api-version=2018-03-01-previewAzure响应的列表包含你有访问权限的所有注册帐户:
{ "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。 这是注册帐户的对象标识符。 将该值粘贴到某个位置,以便在下一步中将其用作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企业订阅。
- 有关使用 .NET 创建订阅的示例,请参阅 GitHub 上的示例代码。
- 若要详细了解Azure 资源管理器及其 API,请参阅 Azure 资源管理器 概述。
- 若要详细了解如何使用管理组管理大量订阅,请参阅 使用 Azure 管理组组织您的资源