Подключение клиента к Azure Lighthouse

В этой статье объясняется, как поставщик услуг может подключить клиента к Azure Lighthouse. При этом делегированные ресурсы (подписки и(или) группы ресурсов в клиенте Microsoft Entra клиента могут управляться пользователями в клиенте с помощью делегированного управления ресурсами Azure.

Совет

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

Процесс адаптации можно повторить для нескольких клиентов. Когда пользователь с соответствующими правами доступа входит в управляющий арендатор, он авторизуется для выполнения операций управления во всех областях аренды клиента без необходимости входа в каждый отдельный арендатор.

Примечание.

Клиенты могут также подключаться к Azure Lighthouse при покупке предложения управляемой службы (открытого или частного), которое вы опубликовали в Azure Marketplace. Описанный здесь процесс подключения также можно использовать в сочетании с предложением, опубликованным в Azure Marketplace.

Для процесса подключения требуется, чтобы действия выполнялись в клиенте поставщика услуг и клиенте пользователя. Все эти шаги описаны в данной статье.

Сбор сведений о клиентах и подписках

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

  • Идентификатор арендатора поставщика услуг (где вы будете управлять ресурсами клиента).
  • Идентификатор арендатора клиента (в котором будут размещаться ресурсы, управляемые поставщиком услуг).
  • идентификаторы подписки для каждой конкретной подписки в арендаторе клиента, которой будет управлять поставщик услуг (или которая содержит группы ресурсов, управляемые поставщиком услуг).

Если вы не знаете идентификатор арендатора, вы можете получить его с помощью портала Azure, Azure PowerShell или Azure CLI.

Если вы создали шаблон на портале Azure, идентификатор арендатора будет указан автоматически. Чтобы создать шаблон на портале Azure, вам не нужно знать сведения об арендаторе или подписке клиента. Однако если вы планируете подключить одну или несколько групп ресурсов в арендаторе клиента (а не во всей подписке), необходимо знать имена каждой группы ресурсов.

Определение ролей и разрешений

Как поставщик услуг вы можете выполнять для одного клиента несколько задач, требующих разных прав доступа для нескольких областей. Вы можете определить столько авторизаций, сколько требуется для назначения соответствующих встроенных ролей Azure. Каждая авторизация включает в principalId себя имя пользователя Microsoft Entra, группы или субъекта-службы в управляемом клиенте.

Примечание.

Если явно не указано, ссылки на пользователя в документации Azure Lighthouse могут применяться к пользователю, группе или субъекту-службе Майкрософт в авторизации.

Чтобы определить авторизации в шаблоне, вам нужно добавить значения идентификаторов для каждого пользователя, группы пользователей или субъекта-службы в управляющем арендаторе, к которому вы предоставляете доступ. Вам также потребуется добавить идентификатор определения роли для каждой встроенной роли, которую вы хотите назначить. При создании шаблона на портале Azure можно выбрать учетную запись пользователя и роль, а соответствующие значения идентификаторов будут добавлены автоматически. При создании шаблона вручную можно получить идентификаторы пользователей с помощью портала Azure, Azure PowerShell или Azure CLI из управляющего арендатора.

Совет

Рекомендуется назначать роль Managed Services Registration Assignment Delete (Удаление назначенных регистраций управляемых служб) при подключении клиента, чтобы пользователи в арендаторе позже могли при необходимости удалить доступ к делегированию. Если эта роль не назначена, делегированные ресурсы могут быть удалены только пользователем в арендаторе клиента.

По возможности рекомендуется использовать группы пользователей Microsoft Entra для каждого назначения, а не отдельных пользователей. Это дает возможность добавлять или удалять отдельных пользователей в группе, имеющей доступ, чтобы не повторять процесс адаптации для внесения изменений в пользователя. Можно также назначить роли субъекту-службе, который может быть полезен для сценариев автоматизации.

Важно!

Чтобы добавить разрешения для группы Microsoft Entra, тип группы должен иметь значение Security. Этот вариант автоматически выбирается при создании группы. Дополнительные сведения см. в статье "Создание базовой группы" и добавление участников с помощью идентификатора Microsoft Entra.

При определении авторизаций обязательно следуйте принципам минимальных привилегий, чтобы у пользователей были только разрешения, необходимые для выполнения их обязанностей. Рекомендации и сведения о поддерживаемых ролях и лучших методиках см. в разделе Арендаторы, роли и пользователи в сценариях Azure Lighthouse.

Совет

Кроме того, вы можете создать соответствующие авторизации, чтобы разрешить пользователям в управляющем арендаторе временно повышать свою роль. Эта функция имеет определенные требования к лицензированию. Дополнительные сведения см. в статье Создание соответствующих авторизаций.

Чтобы отслеживать влияние на взаимодействие клиентов и получать признание, свяжите идентификатор программы Microsoft Cloud Partner Program по крайней мере с одной учетной записью пользователя, которая имеет доступ к каждой из подключенных подписок. Обратите внимание, что эту привязку необходимо выполнять в клиенте поставщика службы. Рекомендуется создать учетную запись субъекта-службы в клиенте, связанную с идентификатором партнера, а затем включить этот субъект-службу каждый раз при подключении клиента. Дополнительные сведения см. в разделе "Связывание идентификатора партнера".

Создание шаблона Azure Resource Manager

Чтобы подключить клиента, необходимо создать шаблон Azure Resource Manager вашего предложения, который содержит приведенные ниже сведения. mspOfferDescription Значения mspOfferName будут отображаться клиенту на странице поставщиков услуг портал Azure после развертывания шаблона в клиенте клиента.

Поле Определение
mspOfferName Имя, описывающее это определение. Это значение отображается для клиента в виде заголовка предложения и должно быть уникальным.
mspOfferDescription Краткое описание предложения (например, "Предложение для управления виртуальной машиной Contoso"). Это поле заполнять необязательно, но мы рекомендуем указать значение, которое поможет клиентам составить четкое представление о вашем предложении.
managedByTenantId Идентификатор клиента.
authorizations Значения principalId для пользователей, групп и имен субъектов-служб из арендатора с параметром principalIdDisplayName, чтобы клиент мог понять назначение авторизации, сопоставленные со встроенным значением roleDefinitionId, чтобы определить уровень доступа.

Вы можете создать этот шаблон на портале Azure или вручную, изменив любой шаблон в нашем репозитории примеров.

Важно!

Описанный здесь процесс предполагает отдельное развертывание на уровне подписки для каждой подключаемой подписки, даже если эти подписки находятся в одном арендаторе клиента. Требуются также отдельные развертывания, если вы подключаете несколько групп ресурсов в разных подписках в одном арендаторе клиента. Тем не менее подключение нескольких групп ресурсов в рамках одной подписки может быть выполнено за одно развертывание.

Для нескольких предложений, применяемых к одной подписке (или к группам ресурсов в рамках подписки), также необходимы отдельные развертывания. Каждое предложение, примененное, должно использовать разные mspOfferName.

Создание шаблона на портале Azure

Чтобы создать шаблон на портале Azure, откройте раздел Мои клиенты и выберите элемент Создать шаблон ARM на странице обзора.

На странице Создать предложение шаблона ARM введите произвольное имя и (необязательно) описание. Эти значения будут использоваться для mspOfferName и mspOfferDescription в шаблоне и могут быть видимы вашему клиенту. Значение managedByTenantId будет предоставлено автоматически на основе клиента Microsoft Entra, в который вы вошли.

Теперь выберите вариант Подписка или Группа ресурсов, в зависимости от требуемой области для подключения. Если вы выберете вариант Группа ресурсов, нужно будет указать имя подключаемой группы ресурсов. При необходимости можно выбрать значок +, чтобы добавить дополнительные группы ресурсов в ту же подписку. (Чтобы подключить дополнительные группы ресурсов в другой подписке, необходимо создать и развернуть отдельный шаблон для этой подписки.)

И, наконец, создайте авторизации с помощью действия Добавление авторизации. Для каждой авторизации предоставьте следующие сведения:

  1. Выберите тип субъекта в зависимости от типа учетной записи, которую вы хотите включить в авторизацию. Это может быть Пользователь, Группа или Субъект-служба. В нашем примере выбран вариант Пользователь.
  2. Щелкните ссылку Выбрать пользователя, чтобы открыть панель выбора. Вы можете найти нужного пользователя с помощью поля для поиска. Завершив поиск, щелкните команду Выбрать. Будет автоматически заполнено поле Идентификатор субъекта.
  3. Кроме того, просмотрите значение в поле Отображаемое имя (которое заполняется в зависимости от выбранного пользователя) и внесите требуемые изменения.
  4. Выберите роль, которую нужно назначить этому пользователю.
  5. Выберите тип для элемента Доступ значение Постоянный или Допустимый. Если вы выберете вариант Допустимый, нужно будет указать значения максимальной длительности, многофакторной проверки подлинности и требования утверждения. Более подробные сведения об этих вариантах см. в статье Создание соответствующих авторизаций. С субъектами-службами нельзя использовать подходящие функции авторизации.
  6. Щелкните команду Добавить, чтобы создать новую авторизацию.

Screenshot of the Add authorization section in the Azure portal.

Выбрав команду Добавить, вы вернетесь на экран Создать предложение шаблона ARM. Вы можете снова щелкнуть элемент Добавление авторизации, чтобы добавить столько авторизаций, сколько потребуется.

Завершив добавление, щелкните элемент Просмотр шаблона. На этом экране вы увидите JSON-файл, составленный по введенным вами значениям. Щелкните команду Скачать, чтобы сохранить копию этого JSON-файла. Этот шаблон теперь можно развернуть в арендаторе клиента. Кроме того, вы можете вручную изменить его, если потребуется.

Важно!

Созданный файл шаблона не хранится на портале Azure. Прежде чем покинуть экран Отображение шаблона, обязательно скачайте копию.

Создание шаблона вручную

Вы можете создать шаблон, применяя шаблон Azure Resource Manager (доступный в репозитория примеров) и файл параметров для него, который можно изменять в соответствии с требуемой конфигурацией и в котором определяются параметры авторизаций. При желании вы можете включить все данные прямо в шаблон, не создавая отдельный файл параметров.

Выбора шаблона будет зависеть от того, подключаете ли вы всю подписку, группу ресурсов или несколько групп ресурсов в пределах подписки. Мы также предоставляем шаблон для клиентов, которые приобрели предложение управляемых служб, опубликованное в Azure Marketplace, если вы предпочитаете таким образом подключать свои подписки.

Чтобы подключить Используйте этот шаблон Azure Resource Manager И измените этот файл параметров
Отток подписок subscription.json subscription.parameters.json
Группа ресурсов rg.json rg.parameters.json
Несколько групп ресурсов в подписке multi-rg.json multiple-rg.parameters.json
Подписка (при использовании предложения, опубликованного в Azure Marketplace) marketplaceDelegatedResourceManagement.json marketplaceDelegatedResourceManagement.parameters.json

Если вы хотите включить соответствующие авторизации, выберите соответствующий шаблон из раздела "Делегированное управление ресурсами-соответствующих авторизации" в нашем репозитории примеров.

Совет

Подключить всю группу управления в одном развертывании нельзя, но вы можете подключить каждую подписку к группе управления. Это предоставит вам доступ ко всем подпискам в одной группе управления, хотя с ними все равно потребуется работать как с отдельными подписками (вы не сможете выполнять действия для группы управления в целом).

В следующем примере показан измененный файл subscription.parameters.json, который может использоваться для подключения подписки. Файлы параметров группы ресурсов (расположенные в папке rg-delegated-resource-management) имеют аналогичный формат, но также содержат параметр rgName для определения конкретных групп ресурсов, которые должны быть подключены.

{
    "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "mspOfferName": {
            "value": "Fabrikam Managed Services - Interstellar"
        },
        "mspOfferDescription": {
            "value": "Fabrikam Managed Services - Interstellar"
        },
        "managedByTenantId": {
            "value": "00000000-0000-0000-0000-000000000000"
        },
        "authorizations": {
            "value": [
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Tier 1 Support",
                    "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Tier 1 Support",
                    "roleDefinitionId": "36243c78-bf99-498c-9df9-86d9f8d28608"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Tier 2 Support",
                    "roleDefinitionId": "acdd72a7-3385-48ef-bd42-f606fba81ae7"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Service Automation Account",
                    "roleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c"
                },
                {
                    "principalId": "00000000-0000-0000-0000-000000000000",
                    "principalIdDisplayName": "Policy Automation Account",
                    "roleDefinitionId": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
                    "delegatedRoleDefinitionIds": [
                        "b24988ac-6180-42a0-ab88-20f7382dd24c",
                        "92aaf0da-9dab-42b6-94a3-d43ce8d16293"
                    ]
                }
            ]
        }
    }
}

Последняя авторизация в приведенном выше примере добавляет principalId роль пользователя Администратор istrator (18d7d88d-d35e-4fb5-a5c3-7773c20a72d9). При назначении этой роли необходимо включить delegatedRoleDefinitionIds свойство и одну или несколько поддерживаемых ролей Azure. Пользователь, созданный с этой авторизацией, сможет назначить эти встроенные роли управляемым удостоверениям в арендаторе клиента, что необходимо для развертывания политик, которые можно исправить. Пользователь также может создавать обращения в службу поддержки. К ней principalIdобычно не применяются другие разрешения, связанные с ролью Администратор istrator для доступа пользователей.

Разверните шаблон Azure Resource Manager.

Когда вы завершите создание шаблона, пользователю нужно будет развернуть его в арендаторе клиента. Отдельное развертывание необходимо для каждой подписки, которую вы хотите подключить (или для каждой подписки, которая содержит группы ресурсов, которые вы хотите подключить).

При подключении подписки (или одной или нескольких групп ресурсов в подписке) с помощью описанного здесь способа поставщик ресурсов Microsoft. ManagedServices будет зарегистрирован для этой подписки.

Важно!

Развертывание должно быть выполнено с помощью негостевой учетной записи в арендаторе клиента, которая имеет роль с разрешением Microsoft.Authorization/roleAssignments/write, например Владелец, для подключаемой подписки (или которая содержит подключаемые группы ресурсов). Чтобы найти пользователей, которые могут делегировать подписку, пользователь клиента может выбрать подписку на портале Azure, открыть управление доступом (IAM) и просмотреть всех пользователей с ролью владельца.

Если подписка была создана в рамках программы "Поставщик облачных решений" (CSP), развертывание может выполнить любой пользователь с ролью агента администратора в арендаторе поставщика услуг.

Это развертывание можно выполнить с помощью PowerShell или Azure CLI, как показано ниже.

Развертывание с помощью PowerShell

Развертывание одного шаблона:

# Log in first with Connect-AzAccount if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateFile <pathToTemplateFile> `
                 -Verbose

# Deploy Azure Resource Manager template that is located externally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateUri <templateUri> `
                 -Verbose

Развертывание шаблона с отдельным файлом параметров:

# Log in first with Connect-AzAccount if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateFile <pathToTemplateFile> `
                 -TemplateParameterFile <pathToParameterFile> `
                 -Verbose

# Deploy Azure Resource Manager template that is located externally
New-AzSubscriptionDeployment -Name <deploymentName> `
                 -Location <AzureRegion> `
                 -TemplateUri <templateUri> `
                 -TemplateParameterUri <parameterUri> `
                 -Verbose

Развертывание с помощью интерфейса командной строки Azure

Развертывание одного шаблона:

# Log in first with az login if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-file <pathToTemplateFile> \
                         --verbose

# Deploy external Azure Resource Manager template, with local parameter file
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-uri <templateUri> \
                         --verbose

Развертывание шаблона с отдельным файлом параметров:

# Log in first with az login if you're not using Cloud Shell

# Deploy Azure Resource Manager template using template and parameter file locally
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-file <pathToTemplateFile> \
                         --parameters <parameters/parameterFile> \
                         --verbose

# Deploy external Azure Resource Manager template, with local parameter file
az deployment sub create --name <deploymentName> \
                         --location <AzureRegion> \
                         --template-uri <templateUri> \
                         --parameters <parameterFile> \
                         --verbose

Развертывание на портале Azure

Чтобы развернуть шаблон на портале Azure, выполните описанный ниже процесс. Эти действия должны выполняться пользователем в арендаторе клиента с ролью владельца (или другой ролью с разрешением Microsoft.Authorization/roleAssignments/write).

  1. На странице Поставщики услуг на портале Azure выберите Server provider offers (Предложения поставщиков серверов).

  2. В верхней части экрана щелкните стрелку рядом с элементом Добавить предложение, а затем выберите Добавить с помощью шаблона.

    Screenshot showing the Add via template option in the Azure portal.

  3. Отправьте шаблон с помощью перетаскивания или выберите Обзор файлов, чтобы найти и отправить шаблон.

  4. Если применимо, установите флажок У меня есть отдельный файл параметров, а затем отправьте файл параметров.

  5. После отправки шаблона (и файла параметров при необходимости) щелкните Передать.

  6. Просмотрите сведения на экране Настраиваемое развертывание. При необходимости можно внести изменения в значения на этом экране или выбрать Изменение параметров.

  7. Выберите Просмотр и создание, а затем выберите Создать.

Через несколько минут вы увидите уведомление о том, что развертывание выполнено.

Совет

Либо же перейдите в наш репозиторий GitHub и нажмите кнопку Развернуть в Azure рядом с шаблоном, который вы хотите использовать (в столбце Автоматическое развертывание). Пример шаблона откроется на портале Azure. Если вы используете этот процесс, необходимо обновить значения для параметров Имя предложения Msp, Описание предложения Msp, Управляется по идентификатору клиента и Разрешения, прежде чем нажимать кнопку Просмотр и создание.

Подтверждение успешного подключения

Когда подписка клиента успешно подключена к Azure Lighthouse, пользователи в клиенте поставщика услуг смогут просматривать подписку и ее ресурсы (если им предоставлен доступ к нему через описанный выше процесс, либо в качестве члена группы Microsoft Entra с соответствующими разрешениями). Чтобы подтвердить это, убедитесь, что подписка отображается одним из следующих способов.

Подтверждение на портале Azure

В клиенте поставщика услуг выполните приведенные ниже действия.

  1. Перейдите на страницу Мои клиенты.
  2. Выберите Клиенты.
  3. Убедитесь, что вы видите подписки с именем предложения, которое вы указали в шаблоне Resource Manager.

Важно!

Чтобы просмотреть делегированную подписку на странице Мои клиенты, пользователям в арендаторе поставщика услуг должна быть предоставлена роль Читатель (или другая встроенная роль, которая обеспечивает доступ для чтения) при подключении подписки.

В клиенте пользователя выполните следующее.

  1. Перейдите на страницу Поставщики услуг.
  2. Выберите Предложения поставщика услуг.
  3. Убедитесь, что вы видите подписки с именем предложения, которое вы указали в шаблоне Resource Manager.

Примечание.

После завершения развертывания может пройти до 15 минут, прежде чем обновления отобразятся на портале Azure. Вы можете увидеть обновления быстрее, если обновить токен Azure Resource Manager путем обновления браузера, входа и выхода или запроса нового маркера.

Подтверждение с помощью PowerShell

# Log in first with Connect-AzAccount if you're not using Cloud Shell

Get-AzContext

# Confirm successful onboarding for Azure Lighthouse

Get-AzManagedServicesDefinition
Get-AzManagedServicesAssignment

Управление с помощью Azure CLI

# Log in first with az login if you're not using Cloud Shell

az account list

# Confirm successful onboarding for Azure Lighthouse

az managedservices definition list
az managedservices assignment list

Если необходимо внести изменения после подключения клиента, можно обновить делегирование. Вы также можете полностью отменить доступ к делегированию.

Устранение неполадок

Если вы не можете успешно подключить клиента или у пользователей возникли проблемы с делегированными ресурсами, ознакомьтесь со следующими советами и требованиями и повторите попытку.

  • У пользователей, которым требуется просматривать ресурсы клиентов на портале Azure, во время процесса подключения должна быть роль читателя (или другая встроенная роль, которая включает доступ для чтения).
  • Значение managedbyTenantId не должно совпадать с идентификатором клиента для подключаемой подписки.
  • Нельзя использовать несколько назначений в одной и той же области с одним и тем же именем mspOfferName.
  • Поставщик ресурсов Microsoft.ManagedServices должен быть зарегистрирован для делегированной подписки. Это должно произойти автоматически во время развертывания, но если нет, его можно зарегистрировать вручную.
  • Авторизация не должна включать пользователей с ролью владельца, ролями с DataActions или любыми ролями, включающими ограниченные действия.
  • Группы должны быть созданы с типом группыБезопасность, а не Microsoft 365.
  • Если доступ был предоставлен группе, убедитесь, что пользователь является членом этой группы. Если они нет, их можно добавить в группу с помощью идентификатора Microsoft Entra, не выполняя другое развертывание. Обратите внимание, что владельцы групп не обязательно являются членами групп, которыми они управляют, и чтобы они получили доступ к этим группам их, возможно, потребуется добавить.
  • Перед включением доступа для вложенных групп может возникнуть дополнительная задержка.
  • Встроенные роли Azure, включаемые в разрешения, не должны включать устаревшие роли. Если встроенная роль Azure становится устаревшей, все пользователи, подключенные к этой роли, потеряют доступ и вы не сможете подключить дополнительные делегирования. Чтобы устранить эту проблему, обновите шаблон для использования только поддерживаемых встроенных ролей, а затем выполните новое развертывание.

Следующие шаги