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


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

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

Примечание.

  • Этот API работает только с устаревшими API для создания подписки.
  • Если у вас нет особой необходимости использовать устаревшие API, вам следует использовать информацию для последней версии GA о последней версии API. В статье Назначение ролей учетной записи регистрации – предоставление описано, как предоставить разрешение на создание подписок EA с помощью последней версии API.
  • Если вы выполняете миграцию для использования новых версий API, необходимо предоставить разрешения владельца для использования 2019-10-01-preview. Предыдущая конфигурация, в которой используются описанные ниже интерфейсы API, не преобразуется автоматически для использования новых версий API.

Примечание.

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

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

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

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

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

    Запросите вывод списка всех учетных записей регистрации, к которым у вас есть доступ.

    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, чтобы указать учетную запись, для которой хотите назначить владельца RBAC Azure. Скопируйте значение name этой учетной записи. Например, если вы хотите предоставить доступ на уровне владельца RBAC к учетной записи регистрации SignUpEngineering@contoso.com, скопируйте aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb. Это идентификатор объекта учетной записи регистрации. Вставьте это значение в любое место, чтобы его можно было использовать на следующем шаге в качестве enrollmentAccountObjectId.

    Используйте свойство principalName, чтобы указать учетную запись, для которой хотите назначить владельца RBAC Azure. Скопируйте значение name этой учетной записи. Например, если вы хотите предоставить доступ на уровне владельца RBAC к учетной записи регистрации SignUpEngineering@contoso.com, скопируйте 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.