Восстановление рабочей области Synapse Analytics после перемещения подписки в другой каталог (клиент) Microsoft Entra

В этой статье описывается, как восстановить рабочую область Synapse Analytics после передачи подписки в другой каталог Microsoft Entra. Рабочая область Synapse Analytics не будет доступна после передачи подписки в другой каталог Microsoft Entra (клиент).

При попытке запустить Synapse Studio после перемещения вы увидите сообщение об ошибке :"Не удалось загрузить один или несколько ресурсов из-за отсутствия доступа, кода ошибки 403."

Screenshot of Synapse Studio Error 403 after tenant migration.

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

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

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

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

Предварительные требования

  • Дополнительные сведения о службе или ресурсах, затронутых перемещением клиента, см . в статье "Передача подписки Azure в другой каталог Microsoft Entra".
  • Сохраните все назначения ролей для пользователей, групп и управляемых удостоверений Microsoft Entra. Эти сведения можно использовать для назначения необходимых разрешений для ресурсов Azure, таких как Azure Synapse Analytics и ADLS 2-го поколения после перемещения клиента. См. Шаг 1. Подготовка к перемещению
  • Сохраните все разрешения, необходимые для пользователей Microsoft Entra в выделенном и бессерверном пуле SQL. Пользователи Microsoft Entra будут удалены из выделенных и бессерверных пулов SQL после перемещения клиента.

Действия по восстановлению рабочей области Synapse Analytics

После перемещения подписки в другой клиент выполните следующие действия, чтобы восстановить рабочую область Azure Synapse Analytics.

  1. Отключите и снова включите управляемое удостоверение, назначаемое системой. Дополнительные сведения см. в разделе ниже в этой статье.
  2. Назначьте нужным пользователям, группам и управляемым удостоверениям Microsoft Entra разрешения Azure RBAC (управление доступом на основе ролей) для доступа к рабочей области Synapse Analytics и требуемым ресурсам Azure.
  3. Назначьте администратора Active Directory для SQL.
  4. Повторно создайте пользователей и группы Microsoft Entra для выделенных и бессерверных пулов SQL, которые дублируют пользователей и группы в новом клиенте Microsoft Entra.
  5. Назначьте пользователям и группам Microsoft Entra роли Microsoft Entra для доступа к рабочей области Synapse Analytics. Этот шаг должен быть первым шагом после восстановления рабочей области. Без этого шага запуск Synapse Studio создаст 403 сообщения из-за того, что пользователи Microsoft Entra не имеют разрешений на рабочую область:
    {"error":{"code":"Unauthorized","message":"The principal '<subscriptionid>' does not    have the required Synapse RBAC permission to perform this action. Required permission:    Action: Microsoft.Synapse/workspaces/read, Scope: workspaces/tenantmove-ws-1/*."}}
    
  6. Назначьте пользователям, группам и субъектам-службам Microsoft Entra роли Azure RBAC для доступа ко всем ресурсам, которые используются в артефактах рабочей области, например ADLS 2-го поколения. Дополнительные сведения об Azure RBAC в ADLS Gen2 см. в разделе "Что такое управление доступом на основе ролей в Azure (Azure RBAC)?".
  7. Назначьте пользователям и группам Microsoft Entra роль RBAC для доступа к Synapse. Дополнительные сведения см. в разделе "Управление назначениями ролей RBAC для Synapse в Synapse Studio"
  8. Повторно создайте все имена входа и пользователей Microsoft Entra в выделенном и бессерверном пуле SQL. Дополнительные сведения см. в разделе "Проверка подлинности SQL в Azure Synapse Analytics"
  9. Повторно создайте все назначаемые пользователем управляемые удостоверения и назначьте управляемое удостоверение, назначаемое пользователем, рабочей области Synapse Analytics. Дополнительные сведения см. в разделе "Учетные данные в Фабрике данных Azure и Azure Synapse"

Примечание.

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

Отключение и повторное включение управляемого удостоверения, назначаемого системой, для рабочей области Synapse Analytics

В этом разделе показано, как использовать Azure CLI или Azure PowerShell для отключения и повторного включения управляемого удостоверения, назначаемого системой, для рабочей области Azure Synapse Analytics. Выполните следующие действия в Azure CLI или Azure PowerShell.

$resourceGroupName="Provide the Resource group name"
$workspaceName="Provide the workspace name"
$subscriptionId="Provide the subscription Id"

$url = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Synapse/workspaces/$workspaceName\?api-version=2021-06-01"

Следующий пример отключает управляемое удостоверение, назначаемое системой, для рабочей области.

az rest --method patch --headers  Content-Type=application/json   `
--url  $url `
--body '{ \"identity\":{\"type\":\"None\"}}'

Рабочая область provisioningState должна иметь состояние "Выполнено", а тип удостоверения должен иметь значение "None" после выполнения предыдущей команды. При выполнении следующей команды значение provisioningState может отображаться как "Подготовка" и займет несколько минут, прежде чем состояние изменится на "Выполнено". Значение provisioningState должно быть установлено в "Выполнено" перед повторным включением управляемого удостоверения, назначаемого системой, для рабочей области.

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

az rest --method GET --uri $uri

Результирующий файл JSON должен выглядеть следующим образом:

   {
  "id": "/subscriptions/<subscriptionid>/resourceGroups/TenantMove-RG/providers/Microsoft Synapse/workspaces/tenantmove-ws",
  "identity": {
    "type": "None"
  },
  "location": "eastus",
  "name": "tenantmove-ws",
  "properties": {
    "connectivityEndpoints": {
      "dev": "https://tenantmove-ws.dev.azuresynapse.net",
      "sql": "tenantmove-ws.sql.azuresynapse.net",
      "sqlOnDemand": "tenantmove-ws-ondemand.sql.azuresynapse.net",
      "web": "https://web.azuresynapse.net?workspace=%2fsubscriptions%2<subscriptionid>b%2fresourceGroups%2fTenantMove-RG%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2ftenantmove-ws"
    },
    "cspWorkspaceAdminProperties": {
      "initialWorkspaceAdminObjectId": "<object id>"
    },
    "defaultDataLakeStorage": {
      "accountUrl": "https://tenantmovedemowsstorage.dfs.core.windows.net",
      "filesystem": "demo",
      "resourceId": "/subscriptions/<subscriptionid>/resourceGroups/TenantMove-RG/providers/Microsoft.Storage/storageAccounts/tenantmovedemowsstorage"
    },
    "encryption": {
      "doubleEncryptionEnabled": false
    },
    "extraProperties": {
      "WorkspaceType": "Normal"
    },
    "managedResourceGroupName": "tenantmove-ws-managed-rg",
    "privateEndpointConnections": [],
    "provisioningState": "Succeeded",
    "publicNetworkAccess": "Enabled",
    "sqlAdministratorLogin": "sqladminuser",
    "trustedServiceBypassEnabled": false,
    "workspaceUID": "<workspace UID>"
  },
  "resourceGroup": "TenantMove-RG",
  "tags": {},
  "type": "Microsoft.Synapse/workspaces"
}

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

az rest --method patch --headers  Content-Type=application/json   `
--url  $url `
--body '{ \"identity\":{\"type\":\"SystemAssigned\"}}'

Выполните следующую команду для получения состояния рабочей области. Значение provisioningState должно быть установлено в "Выполнено". Значение provisioningState изменится с "Подготовка" на "Выполнено". Тип удостоверения будет изменен на SystemAssigned.

az rest --method GET --uri $uri

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