Поделиться через


Предоставление доступа для создания подписок Azure Enterprise (устаревшая версия)

Как клиент Azure с соглашением Enterprise (EA), вы можете предоставить другому пользователю или субъекту службы разрешение на создание подписок, выставляемых через вашу учетную запись. В этой статье рассказывается об использовании управления доступом на основе ролей Azure (Azure RBAC) для совместного создания подписок и их аудита. Необходима роль владельца для учетной записи, к которой вы хотите предоставить общий доступ.

Примечание.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.

Предоставление доступа

Чтобы создавать подписки в рамках учетной записи регистрации, пользователи должны иметь роль владельца в Azure RBAC для этой учетной записи. Вы можете предоставить пользователю или группе пользователей роль владельца RBAC Azure для учетной записи регистрации, выполнив следующие действия:

  1. Получите идентификатор объекта учетной записи регистрации, к которой вы хотите предоставить доступ.

    Чтобы предоставить другим пользователям роль владельца 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": "[email protected]"
          }
        },
        {
          "id": "/providers/Microsoft.Billing/enrollmentAccounts/4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "name": "4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "type": "Microsoft.Billing/enrollmentAccounts",
          "properties": {
            "principalName": "[email protected]"
          }
        }
      ]
    }
    

    Используйте свойство principalName, чтобы определить учетную запись, которой вы хотите предоставить доступ владельца RBAC Azure. Скопируйте идентификатор name этой учетной записи. Например, если вы хотите предоставить доступ на уровне владельца RBAC к учетной записи регистрации [email protected], скопируйте aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb. Это идентификатор объекта учетной записи регистрации. Вставьте это значение в любое место, чтобы его можно было использовать на следующем шаге в качестве enrollmentAccountObjectId.

    Используйте свойство principalName, чтобы указать учетную запись, для которой хотите назначить владельца RBAC Azure. Скопируйте значение name этой учетной записи. Например, если вы хотите предоставить доступ с правами владельца Azure RBAC к учетной записи регистрации [email protected], вам нужно скопировать aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb. Это идентификатор объекта учетной записи регистрации. Вставьте это значение в любое место, чтобы его можно было использовать на следующем шаге в качестве enrollmentAccountObjectId.

  2. Получение идентификатора объекта для пользователя или группы, которым вы предоставляете роль владельца RBAC Azure

    1. На портале Azure выполните поиск по Microsoft Entra ID.
    2. Если вы хотите предоставить доступ пользователю, в меню слева выберите Пользователи. Чтобы предоставить доступ группе, выберите Группы.
    3. Выберите пользователя или группу, которым хотите назначить роль владельца RBAC Azure.
    4. Если вы выбрали пользователя, идентификатор объекта можно найти на странице профиля. Если вы выбрали группу, идентификатор объекта будет отображаться на странице "Обзор". Скопируйте идентификатор ObjectID, щелкнув значок справа от текстового поля. Вставьте его в любое место, чтобы его можно было использовать на следующем шаге в качестве userObjectId.
  3. Назначьте пользователю или группе роль владельца RBAC Azure для учетной записи регистрации

    Используя значения, собранные на первых двух этапах, предоставьте пользователю или группе роль владельца RBAC Azure для учетной записи регистрации.

    Воспользуйтесь следующей командой, заменив <enrollmentAccountObjectId> на значение name, которое вы скопировали на первом шаге (aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb). Замените <userObjectId> идентификатором объекта, скопированным на втором шаге.

    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, интерфейс командной строки или портал Azure.

  1. В качестве администратора клиента Microsoft Entra, повысьте уровень доступа, а затем назначьте пользователю аудита роль Читателя по области/providers/microsoft.insights/eventtypes/management. Такой доступ предоставляется для роли Читатель, Участник мониторинга или пользовательской роли.

  2. В качестве пользователя-аудитора вызовите 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.