Partilhar via


Recuperar a área de trabalho do Synapse Analytics depois de transferir uma subscrição para um diretório diferente do Microsoft Entra (inquilino)

Este artigo descreve como recuperar o espaço de trabalho Synapse Analytics depois de transferir sua assinatura para um diretório diferente do Microsoft Entra. O espaço de trabalho Synapse Analytics não estará acessível após a transferência de uma assinatura para um diretório diferente do Microsoft Entra (locatário).

Quando você tenta iniciar o estúdio Synapse após a mudança, você verá o erro: "Falha ao carregar um ou mais recursos devido a nenhum acesso, código de erro 403."

Screenshot of Synapse Studio Error 403 after tenant migration.

Siga as etapas neste artigo depois de transferir uma assinatura entre locatários para recuperar o espaço de trabalho do Synapse Analytics.

Transferir uma assinatura para um diretório diferente do Microsoft Entra (locatário) é um processo complexo que deve ser cuidadosamente planejado e executado. O Azure Synapse Analytics exige que as entidades de segurança (identidades) funcionem normalmente. Quando uma assinatura é movida para um locatário diferente, todas as IDs principais são alteradas, as atribuições de função são excluídas do recurso do Azure e as identidades gerenciadas atribuídas ao sistema são descartadas.

Para entender o impacto da transferência de uma assinatura para outro locatário, consulte Transferir uma assinatura do Azure para um diretório diferente do Microsoft Entra

Este artigo aborda as etapas envolvidas na recuperação de um espaço de trabalho do Synapse Analytics depois de mover a assinatura entre locatários.

Pré-requisitos

  • Para saber mais sobre o serviço ou os recursos afetados pela mudança de locatário, consulte Transferir uma assinatura do Azure para um diretório diferente do Microsoft Entra.
  • Salve toda a atribuição de função para usuários, grupos e identidades gerenciadas do Microsoft Entra. Essas informações podem ser usadas para atribuir as permissões necessárias em recursos do Azure, como o Azure Synapse Analytics e o ADLS Gen2, após a mudança do locatário. Consulte o Passo 1: Preparar a transferência
  • Salve todas as permissões necessárias para usuários do Microsoft Entra no pool SQL dedicado e sem servidor. Os usuários do Microsoft Entra serão excluídos dos pools SQL dedicados e sem servidor após a mudança do locatário.

Etapas para recuperar o espaço de trabalho do Synapse Analytics

Depois de transferir a subscrição para outro inquilino, siga os passos abaixo para recuperar a área de trabalho do Azure Synapse Analytics.

  1. Desativar e reativar a identidade gerida atribuída pelo sistema. Mais informações mais adiante neste artigo.
  2. Atribua permissões RBAC do Azure (controlo de acesso baseado em funções) aos utilizadores, grupos e identidades geridas do Microsoft Entra necessários na área de trabalho do Synapse Analytics e nos recursos do Azure necessários.
  3. Defina o administrador do Active Directory no SQL.
  4. Recrie utilizadores e grupos do Microsoft Entra com base nos seus utilizadores e grupos equivalentes no novo inquilino do Microsoft Entra para os conjuntos de SQL dedicados e sem servidor.
  5. Atribua o RBAC do Azure a utilizadores do Microsoft Entra, grupos à área de trabalho do Synapse Analytics. Este passo deve ser o primeiro passo após a recuperação da área de trabalho. Sem esta etapa, o lançamento do Synapse Studio lançará 403 mensagens, devido aos usuários do Microsoft Entra não terem permissões no espaço de trabalho:
    {"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. Atribua funções RBAC do Azure a utilizadores, grupos e principais de serviço do Microsoft Entra a todos os recursos utilizados nos artefactos da área de trabalho, como o ADLS Gen2. Para obter mais informações sobre o RBAC do Azure no ADLS Gen2, consulte Controlo de acesso baseado em funções (RBAC do Azure).
  7. Adicione atribuições de função RBAC do Synapse a utilizadores e grupos do Microsoft Entra. Para obter mais informações, consulte Como gerir atribuições de função RBAC do Synapse Studio
  8. Recrie todos os inícios de sessão e utilizadores do Microsoft Entra conjunto de SQL dedicado e sem servidor. Para obter mais informações, veja Autenticação SQL no Azure Synapse Analytics
  9. Recrie todas as identidades geridas atribuídas pelo utilizador e atribua a identidade gerida atribuída pelo utilizador à área de trabalho do Synapse Analytics. Para obter mais informações, consulte Credenciais no Azure Data Factory e no Azure Synapse

Nota

Certifique-se de que as etapas a seguir sejam executadas somente depois que a confirmação da assinatura for movida com êxito para outro locatário.

Desativar e reativar a identidade gerenciada atribuída ao sistema para o espaço de trabalho Synapse Analytics

Esta seção mostra como usar a CLI do Azure ou o Azure PowerShell para desabilitar e reativar a Identidade Gerenciada atribuída pelo Sistema para seu espaço de trabalho do Azure Synapse Analytics. Considere as etapas a seguir na CLI do Azure ou no 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"

Este próximo exemplo desativa a Identidade Gerenciada Atribuída pelo Sistema para o espaço de trabalho.

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

O espaço de trabalho provisioningState deve ser Bem-sucedido e o tipo de identidade deve Nenhum após a execução do comando anterior. Se você executar o comando a seguir, provisioningState o valor poderá ser mostrado como Provisionamento e levará alguns minutos para alterar o status para Êxito. O valor do deve ser Bem-sucedido antes de reativar a Identidade Gerenciada Atribuída ao Sistema para o espaço de provisioningState trabalho.

Para obter o status do espaço de trabalho para obter o status de provisionamento e o tipo de identidade, use o seguinte trecho de código:

az rest --method GET --uri $uri

O JSON resultante deve ser semelhante a:

   {
  "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"
}

O próximo comando reativará a Identidade Gerenciada Atribuída pelo Sistema para o espaço de trabalho:

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

O próximo comando obterá o status do espaço de trabalho. O provisioningState valor deve ser Succeeded. O provisioningState valor mudará de Provisionamento para Êxito. O tipo de identidade será alterado para SystemAssigned.

az rest --method GET --uri $uri

Próximos passos