См. статью Перенос подписки Azure в другой каталог Microsoft Entra ID.

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

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

Если вы хотите заблокировать перемещение подписок в другие каталоги в организации, можно настроить политику подписки. Дополнительные сведения см. в статье Управление политиками подписок Azure.

Примечание.

Подписки для поставщиков облачных решений Azure (CSP) не поддерживают изменение каталога Microsoft Entra.

Обзор

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

Внимание

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

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

  1. Подготовка к переносу

  2. Перенос подписки Azure в другой каталог

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

    Схема, демонстрирующая перенос подписки

Принятие решения о переносе подписки в другой каталог

Ниже приведено несколько причин, по которым может потребоваться перенос подписки.

  • Из-за слияния или приобретения компании нужно управлять приобретенной подпиской в основном каталоге Microsoft Entra.
  • Пользователь организации создал подписку, и вы хотите консолидировать управление в определенном каталоге Microsoft Entra.
  • У вас есть приложения, которые зависят от идентификатора или URL-адреса конкретной подписки, и вы не можете легко изменить конфигурацию или код приложения.
  • Часть вашего бизнеса выделилась в отдельную компанию, и вам нужно перенести некоторые ресурсы в другой каталог Microsoft Entra.
  • Вы хотите управлять некоторыми ресурсами в другом каталоге Microsoft Entra, чтобы изолировать их в целях безопасности.

Альтернативные подходы

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

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

Общие сведения о влиянии переноса подписки

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

Внимание

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

Служба или ресурс Затрагивается Восстанавливается Вы пострадали? Что можно сделать
Назначения ролей Да Да Перечисление назначений ролей Все назначения ролей удаляются без возможности восстановления. Необходимо сопоставить пользователей, группы и субъекты-службы с соответствующими объектами в целевом каталоге. Необходимо повторно создать назначения ролей.
Пользовательские роли Да Да Перечисление настраиваемых ролей Все настраиваемые роли удаляются без возможности восстановления. Необходимо повторно создать настраиваемые роли и назначения ролей.
Управляемые удостоверения, назначаемые системой Да Да Вывод списка управляемых удостоверений Необходимо отключить и заново включить управляемые удостоверения. Необходимо повторно создать назначения ролей.
Управляемые удостоверения, назначаемые пользователем Да Да Вывод списка управляемых удостоверений Необходимо удалить, повторно создать и подключить управляемые удостоверения к соответствующему ресурсу. Необходимо повторно создать назначения ролей.
Azure Key Vault Да Да Вывод списка политик доступа Key Vault Необходимо обновить идентификатор клиента, связанный с хранилищами ключей. Необходимо удалить и добавить новые политики доступа.
Базы данных SQL Azure с включенной интеграцией проверки подлинности Microsoft Entra Да Нет Проверка баз данных SQL Azure с помощью проверки подлинности Microsoft Entra Невозможно перенести базу данных SQL Azure с включенной проверкой подлинности Microsoft Entra в другой каталог. Дополнительные сведения см. в статье Использование проверки подлинности Microsoft Entra.
База данных Azure для MySQL с включенной интеграцией проверки подлинности Microsoft Entra Да Нет Невозможно перенести базу данных Azure для MySQL (отдельный и гибкий сервер) с включенной проверкой подлинности Microsoft Entra в другой каталог.
Служба хранилища Azure и Azure Data Lake Storage 2-го поколения Да Да Необходимо повторно создать все списки ACL.
Хранилище Azure Data Lake Storage 1-го поколения Да Да Необходимо повторно создать все списки ACL.
Файлы Azure Да Да Необходимо повторно создать все списки ACL.
Служба синхронизации файлов Azure Да Да Службу синхронизации хранилища и/или учетную запись хранилища можно переместить в другой каталог. Дополнительные сведения см. в статье Часто задаваемые вопросы о файлах Azure.
управляемые диски Azure. Да Да Если вы используете наборы шифрования дисков для шифрования управляемых дисков с помощью управляемых клиентом ключей, необходимо отключить и повторно включить назначаемые системой удостоверения, связанные с наборами шифрования дисков. Кроме того, необходимо повторно создать назначения ролей, т. е. предоставить необходимые разрешения для наборов шифрования дисков в хранилищах ключей.
Служба Azure Kubernetes Да Нет Невозможно переместить кластер AKS и связанные с ним ресурсы в другой каталог. Дополнительные сведения см. в статье Часто задаваемые вопросы о службе Azure Kubernetes (AKS).
Политика Azure Да Нет Все объекты Политики Azure, включая настраиваемые определения, назначения, исключения и данные о соответствии. Необходимо экспортировать, импортировать и повторно назначить определения. Затем создайте новые назначения политик и все необходимые исключения политик.
Доменные службы Microsoft Entra Да Нет Невозможно передать управляемый домен доменных служб Microsoft Entra в другой каталог. Дополнительные сведения см. в статье часто задаваемые вопросы о доменных службах Microsoft Entra
Регистрации приложений Да Да
Microsoft Dev Box Да Нет Невозможно передать поле разработки и связанные с ним ресурсы в другой каталог. После перехода подписки на другой клиент вы не сможете выполнять какие-либо действия в поле разработки.
Среды развертывания Azure Да Нет Вы не можете перенести среду и связанные с ней ресурсы в другой каталог. После перехода подписки на другой клиент вы не сможете выполнять какие-либо действия в вашей среде.
Azure Service Fabric Да Нет Необходимо повторно создать кластер. Дополнительные сведения см. в разделе часто задаваемые вопросы о кластерах SF или управляемых кластерах SF.
Служебная шина Azure Да Да Необходимо удалить, повторно создать и подключить управляемые удостоверения к соответствующему ресурсу. Необходимо повторно создать назначения ролей.
Рабочая область Azure Synapse Analytics Да Да Необходимо обновить идентификатор клиента, связанный с рабочей областью Synapse Analytics. Если рабочая область связана с репозиторием Git, необходимо обновить конфигурацию рабочей области Git. Дополнительные сведения см. в разделе "Восстановление рабочей области Synapse Analytics" после передачи подписки в другой каталог Microsoft Entra (клиент).
Azure Databricks Да Нет В настоящее время Azure Databricks не поддерживает перемещение рабочих областей в новый клиент. Дополнительные сведения см. в статье "Управление учетной записью Azure Databricks".

Предупреждение

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

Чтобы получить список некоторых ресурсов Azure, затронутых при передаче подписки, можно также запустить запрос в Azure Resource Graph. Пример запроса см. в разделе "Список затронутых ресурсов" при передаче подписки Azure.

Необходимые компоненты

Чтобы выполнить эти действия, вам потребуется следующее:

  • Bash в Azure Cloud Shell или Azure CLI
  • Владелец учетной записи выставления счетов подписки, которую вы хотите передать в исходном каталоге
  • Учетная запись пользователя в исходном и целевом каталогах для пользователя, вносящего изменения в каталог

Шаг 1. Подготовка к переносу

Вход в исходный каталог

  1. Войдите в Azure как администратор.

  2. Получите список своих подписок с помощью команды az account list.

    az account list --output table
    
  3. Используйте команду az account set, чтобы задать активную подписку для переноса.

    az account set --subscription "Marketing"
    

Установка расширения Azure Resource Graph

Расширение Azure CLI для Azure Resource Graph, resource-graph, позволяет использовать команду az graph для запроса ресурсов, управляемых Azure Resource Manager. Эта команда вам понадобится на последующих этапах.

  1. Используйте команду az extension list, чтобы узнать, установлено ли расширение resource-graph.

    az extension list
    
  2. Если вы используете предварительную версию или более раннюю версию расширения resource-graph , используйте az extension update для обновления расширения.

    az extension update --name resource-graph
    
  3. Если расширение resource-graph не установлено, используйте az extension add для установки расширения.

    az extension add --name resource-graph
    

Сохранение всех назначений ролей

  1. Используйте команду az role assignment list, чтобы вывести список всех назначений ролей (включая наследуемые).

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

    az role assignment list --all --include-inherited --output json > roleassignments.json
    az role assignment list --all --include-inherited --output tsv > roleassignments.tsv
    az role assignment list --all --include-inherited --output table > roleassignments.txt
    
  2. Сохраните список назначений ролей.

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

  3. Просмотрите список назначений ролей. В нем могут быть назначения ролей, которые вам не понадобятся в целевом каталоге.

Сохранение настраиваемых ролей

  1. Используйте команду az role definition list, чтоб получить список настраиваемых ролей. Подробнее см. в статье Создание или изменение настраиваемых ролей Azure с помощью Azure CLI.

    az role definition list --custom-role-only true --output json --query '[].{roleName:roleName, roleType:roleType}'
    
  2. Сохраните каждую настраиваемую роль, которая понадобится в целевом каталоге, в виде отдельного JSON-файла.

    az role definition list --name <custom_role_name> > customrolename.json
    
  3. Создайте копии файлов настраиваемых ролей.

  4. Измените каждую копию, чтобы использовать следующий формат.

    Позже эти файлы помогут вам заново создать настраиваемые роли в целевом каталоге.

    {
      "Name": "",
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": []
    }
    

Определение сопоставлений пользователей, групп и субъектов-служб

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

    Тип субъекта можно узнать, просмотрев свойство principalType в каждом назначении ролей.

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

Вывод списка назначений ролей для управляемых удостоверений

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

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

  2. Используйте команду az ad sp list, чтобы получить список управляемых удостоверений, назначаемых системой и пользователем.

    az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'"
    
  3. Определите, какие из управляемых удостоверений в списке назначаются системой, а какие — пользователем. Для определения типа можно использовать следующие критерии.

    Критерии Тип управляемого удостоверения
    Свойство alternativeNames содержит isExplicit=False Назначаемое системой
    Свойство alternativeNames не содержит isExplicit Назначаемое системой
    Свойство alternativeNames содержит isExplicit=True Назначаемое пользователем

    Можно также использовать команду az identity list, чтобы вывести только список управляемых удостоверений, назначаемых пользователем. Подробнее см. в статье Создание и удаление управляемых удостоверений, назначаемых пользователем, а также получение их списка с помощью Azure CLI.

    az identity list
    
  4. Получите список значений objectId для управляемых удостоверений.

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

получение списка хранилищ ключей;

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

Предупреждение

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

Вывод списка баз данных SQL Azure с проверкой подлинности Microsoft Entra

Вывод списков ACL

  1. Если вы используете Azure Data Lake Storage 1-го поколения, списки ACL, применяемые к любому файлу, можно получить на портале Azure или с помощью PowerShell.

  2. Если вы используете Azure Data Lake Storage 2-го поколения, списки ACL, применяемые к любому файлу, тоже можно получить на портале Azure или с помощью PowerShell.

  3. Если вы используете Файлы Azure, выведите списки ACL, применяемые к любому файлу.

Вывод списка других известных ресурсов

  1. Команда az account show позволяет узнать идентификатор подписки (в bash).

    subscriptionId=$(az account show --output tsv --query id)
    
  2. Используйте расширение az graph для перечисления других ресурсов Azure с известными зависимостями каталога Microsoft Entra (вbash).

    az graph query -q 'resources 
        | where type != "microsoft.azureactivedirectory/b2cdirectories" 
        | where  identity <> "" or properties.tenantId <> "" or properties.encryptionSettingsCollection.enabled == true 
        | project name, type, kind, identity, tenantId, properties.tenantId' --subscriptions $subscriptionId --output yaml
    

Шаг 2. Перенос подписки

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

Предупреждение

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

  1. Определите, нужно ли также передавать в другую учетную запись права на выставление счетов.

  2. Перенесите подписку Azure в другой каталог.

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

Шаг 3. Повторное создание ресурсов

Вход в целевой каталог

  1. Войдите в целевой каталог как пользователь, который принял запрос на перенос.

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

  2. Получите список своих подписок с помощью команды az account list.

    az account list --output table
    
  3. Запустите команду az account set, чтобы задать активную подписку для использования.

    az account set --subscription "Contoso"
    

Создание настраиваемых ролей

Назначение ролей

Обновление управляемые удостоверений, назначаемых системой

  1. Отключите и снова включите управляемые удостоверения, назначаемые системой.

    Служба Azure Дополнительные сведения
    Виртуальные машины Настройка управляемых удостоверений для ресурсов Azure на виртуальной машине Azure с помощью Azure CLI
    Масштабируемые наборы виртуальных машин Настройка управляемых удостоверений для ресурсов Azure в масштабируемом наборе виртуальных машин с помощью Azure CLI
    другие службы. Службы с поддержкой управляемых удостоверений для ресурсов Azure
  2. Используйте команду az role assignment create, чтобы назначить роли управляемым удостоверениям, назначаемым системой. Подробнее см. в статье Назначение доступа к ресурсу на основе управляемого удостоверения с помощью Azure CLI.

    az role assignment create --assignee <objectid> --role '<role_name_or_id>' --scope "/subscriptions/<subscriptionId>/resourceGroups/<resource_group>"
    

Обновление управляемых удостоверений, назначаемых пользователем

  1. Удалите, заново создайте и подключите управляемые удостоверения, назначаемые пользователем.

    Служба Azure Дополнительные сведения
    Виртуальные машины Настройка управляемых удостоверений для ресурсов Azure на виртуальной машине Azure с помощью Azure CLI
    Масштабируемые наборы виртуальных машин Настройка управляемых удостоверений для ресурсов Azure в масштабируемом наборе виртуальных машин с помощью Azure CLI
    другие службы. Службы с поддержкой управляемых удостоверений для ресурсов Azure
    Создание и удаление управляемых удостоверений, назначаемых пользователем, а также получение их списка с помощью Azure CLI
  2. Используйте команду az role assignment create, чтобы назначить роли управляемым удостоверениям, назначаемым системой. Подробнее см. в статье Назначение доступа к ресурсу на основе управляемого удостоверения с помощью Azure CLI.

    az role assignment create --assignee <objectid> --role '<role_name_or_id>' --scope "/subscriptions/<subscriptionId>/resourceGroups/<resource_group>"
    

Обновление хранилищ ключей

В этом разделе описаны основные шаги по обновлению хранилищ ключей. Подробнее см. в статье Перемещение Azure Key Vault в другую подписку.

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

  2. Удалите все существующие записи политики доступа.

  3. Добавьте новые записи политики доступа, связанные с целевым каталогом.

Обновление ACL

  1. Если вы используете Azure Data Lake Storage 1-го поколения, назначьте соответствующие списки ACL. Дополнительные сведения см. в статье Защита данных, хранимых в Azure Data Lake Storage 1-го поколения.

  2. Если вы используете Azure Data Lake Storage 2-го поколения, назначьте соответствующие списки ACL. Дополнительные сведения см. в статье Контроль доступа в Azure Data Lake Storage 2-го поколения.

  3. Если вы используете Файлы Azure, назначьте соответствующие списки ACL.

Проверка других механизмов безопасности

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

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

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

  1. Измените ключи доступа к учетной записи хранения. См. сведения о том, как управлять ключами доступа к учетной записи хранения.

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

  3. Если ресурсы используют секрет, откройте их параметры и обновите секрет.

  4. Если ресурсы используют сертификаты, обновите сертификат.

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