Recuperar o workspace do Synapse Analytics após transferir uma assinatura para um diretório diferente do Microsoft Entra (locatário)

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

Ao tentar iniciar o Synapse Studio após a transferência, você verá o erro: "Falha ao carregar um ou mais recursos devido à falta de acesso, código de erro 403."

Screenshot of Synapse Studio Error 403 after tenant migration.

Siga as etapas neste artigo após transferir uma assinatura entre locatários para recuperar o workspace do Synapse Analytics.

Transferir uma assinatura para outro diretório (locatário) do Microsoft Entra é um processo complexo que deverá ser planejado e executado com cuidado. O Azure Synapse Analytics exige que as entidades de segurança (identidades) operem normalmente. Quando uma assinatura é transferida para um locatário diferente, todas as IDs de entidades de segurança são alteradas, as atribuições de função são excluídas do recurso do Azure e as identidades gerenciadas atribuídas pelo sistema são removidas.

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 workspace do Synapse Analytics após mover a assinatura entre locatários.

Pré-requisitos

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

Etapas para recuperar o workspace do Synapse Analytics

Após transferir a assinatura para outro locatário, siga as etapas abaixo para recuperar o workspace do Azure Synapse Analytics.

  1. Desabilitar e reabilitar a Identidade Gerenciada Atribuída pelo Sistema. Informações adicionais são apresentadas mais adiante neste artigo.
  2. Atribua permissões de Azure RBAC (controle de acesso baseado em função) aos usuários, grupos e identidades gerenciadas do Microsoft Entra necessários no workspace do Synapse Analytics e aos recursos necessários do Azure.
  3. Defina o administrador de SQL do Active Directory.
  4. Crie novamente os usuários e os grupos do Azure AD com base nos usuários e grupos equivalentes no novo locatário do Microsoft Entra para os pools de SQL dedicados e sem servidor.
  5. Atribua Azure RBAC aos usuários do Microsoft Entra, grupos ao workspace do Synapse Analytics. Esta etapa deverá ser a primeira etapa após a recuperação do workspace. Sem esta etapa, iniciar o Synapse Studio gerará mensagens 403 porque os usuários do Microsoft Entra não terão permissões no workspace:
    {"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 do Azure RBAC a usuários, grupos e entidades de serviço do Microsoft Entra para todos os recursos usados nos artefatos do workspace como, por exemplo, ADLS Gen2. Para obter mais informações sobre o Azure RBAC no ADLS Gen2, consulte Azure RBAC (Controle de Acesso Baseado em Função).
  7. Adicionar atribuições de função RBAC do Synapse a usuários e grupos do Microsoft Entra. Para obter mais informações, consulte Como gerenciar atribuições de função RBAC do Synapse no Synapse Studio
  8. Crie novamente todos os logons e usuários do Microsoft Entra no pool de SQL dedicado e sem servidor. Para obter mais informações, consulte Autenticação SQL no Azure Synapse Analytics
  9. Crie novamente todas as identidades gerenciadas atribuídas pelo usuário e atribua a identidade gerenciada atribuída pelo usuário ao workspace do Synapse Analytics. Para obter mais informações, consulte Credenciais no Azure Data Factory e no Azure Synapse

Observação

Verifique se as etapas a seguir são executadas somente após confirmar que a assinatura foi movida com êxito para outro locatário.

Desabilitar e habilitar novamente a identidade gerenciada atribuída pelo sistema para o workspace do Synapse Analytics

Esta seção mostra como usar a CLI do Azure ou o Azure PowerShell para desabilitar e habilitar novamente a Identidade Gerenciada Atribuída pelo Sistema para o workspace 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 desabilita a identidade gerenciada atribuída pelo sistema para o workspace.

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

O workspace provisioningState deverá ter Êxito e o tipo de identidade deverá ser Nenhum após a execução do comando anterior. Se você executar o comando a seguir, o valor provisioningState poderá ser mostrado como Provisionamento e levará alguns minutos para alterar o status para com Êxito. O valor de provisioningState deverá ser com êxito antes de reativar a identidade gerenciada atribuída pelo sistema para o workspace.

Para obter o status do workspace para conseguir o status de provisionamento e o tipo de identidade, use o seguinte snippet de código:

az rest --method GET --uri $uri

O JSON resultante deverá 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 habilitará novamente a identidade gerenciada atribuída pelo sistema para o workspace:

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

O próximo comando obterá o status do workspace. O valor provisioningState deve ser com Êxito. O provisioningState valor será alterado de Provisionamento para com Êxito. O tipo de identidade será alterado para SystemAssigned.

az rest --method GET --uri $uri

Próximas etapas