Odzyskiwanie obszaru roboczego usługi Synapse Analytics po przeniesieniu subskrypcji do innego katalogu (dzierżawy) usługi Microsoft Entra

W tym artykule opisano sposób odzyskiwania obszaru roboczego usługi Synapse Analytics po przeniesieniu subskrypcji do innego katalogu Microsoft Entra. Obszar roboczy usługi Synapse Analytics nie będzie dostępny po przeniesieniu subskrypcji do innego katalogu Microsoft Entra (dzierżawa).

Podczas próby uruchomienia programu Synapse Studio po przeniesieniu zostanie wyświetlony błąd: "Nie można załadować co najmniej jednego zasobu z powodu braku dostępu, kod błędu 403".

Screenshot of Synapse Studio Error 403 after tenant migration.

Wykonaj kroki opisane w tym artykule po przeniesieniu subskrypcji między dzierżawami, aby odzyskać obszar roboczy usługi Synapse Analytics.

Przeniesienie subskrypcji do innego katalogu microsoft Entra (dzierżawy) to złożony proces, który musi być starannie zaplanowany i wykonany. Usługa Azure Synapse Analytics wymaga, aby podmioty zabezpieczeń (tożsamości) działały normalnie. Po przeniesieniu subskrypcji do innej dzierżawy wszystkie identyfikatory podmiotów zabezpieczeń zmieniają się, przypisania ról są usuwane z zasobu platformy Azure, a tożsamości zarządzane przypisane przez system są porzucane.

Aby zrozumieć wpływ przeniesienia subskrypcji do innej dzierżawy, zobacz Przenoszenie subskrypcji platformy Azure do innego katalogu firmy Microsoft Entra

W tym artykule opisano kroki związane z odzyskiwaniem obszaru roboczego usługi Synapse Analytics po przeniesieniu subskrypcji między dzierżawami.

Wymagania wstępne

  • Aby dowiedzieć się więcej na temat usługi lub zasobów, których dotyczy przenoszenie dzierżawy, zobacz Przenoszenie subskrypcji platformy Azure do innego katalogu firmy Microsoft Entra.
  • Zapisz wszystkie przypisania roli dla użytkowników, grup i tożsamości zarządzanych firmy Microsoft. Te informacje mogą służyć do przypisywania wymaganych uprawnień do zasobów platformy Azure, takich jak Azure Synapse Analytics i ADLS Gen2 po przeniesieniu dzierżawy. Zobacz Krok 1. Przygotowanie do przeniesienia
  • Zapisz wszystkie uprawnienia niezbędne dla użytkowników firmy Microsoft Entra w dedykowanej i bezserwerowej puli SQL. Użytkownicy firmy Microsoft Entra zostaną usunięci z dedykowanych i bezserwerowych pul SQL po przeniesieniu dzierżawy.

Kroki odzyskiwania obszaru roboczego usługi Synapse Analytics

Po przeniesieniu subskrypcji do innej dzierżawy wykonaj poniższe kroki, aby odzyskać obszar roboczy usługi Azure Synapse Analytics.

  1. Wyłącz i ponownie włącz tożsamości zarządzane przypisanych przez system. Więcej informacji znajduje się w dalszej części tego artykułu.
  2. Przypisz uprawnienia kontroli dostępu opartej na rolach platformy Azure do wymaganych użytkowników, grup i tożsamości zarządzanych usługi Microsoft Entra w obszarze roboczym usługi Synapse Analytics i wymaganych zasobów platformy Azure.
  3. Ustaw administratora usługi SQL Active Directory.
  4. Utwórz ponownie użytkowników i grupy usługi Microsoft Entra na podstawie ich równoważnych użytkowników i grup w nowej dzierżawie usługi Microsoft Entra dla dedykowanych i bezserwerowych pul SQL.
  5. Przypisz kontrolę dostępu opartą na rolach platformy Azure do użytkowników usługi Microsoft Entra, grup do obszaru roboczego usługi Synapse Analytics. Ten krok powinien być pierwszym krokiem po odzyskaniu obszaru roboczego. Bez tego kroku uruchomienie programu Synapse Studio spowoduje zgłoszenie 403 komunikatów, ponieważ użytkownicy firmy Microsoft Entra nie mają uprawnień do obszaru roboczego:
    {"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. Przypisz role RBAC platformy Azure do użytkowników, grup, jednostek usługi Microsoft Entra do wszystkich zasobów używanych w artefaktach obszaru roboczego, takich jak ADLS Gen2. Aby uzyskać więcej informacji na temat kontroli dostępu opartej na rolach platformy Azure w usłudze ADLS Gen2, zobacz Kontrola dostępu oparta na rolach (Azure RBAC).
  7. Dodawanie przypisań ról RBAC usługi Synapse do użytkowników i grup usługi Microsoft Entra. Aby uzyskać więcej informacji, zobacz Jak zarządzać przypisaniami ról RBAC usługi Synapse w programie Synapse Studio
  8. Utwórz ponownie wszystkie identyfikatory logowania i użytkowników usługi Microsoft Entra w dedykowanej i bezserwerowej puli SQL. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie SQL w usłudze Azure Synapse Analytics.
  9. Utwórz ponownie tożsamość zarządzaną przypisaną przez użytkownika i przypisz tożsamość zarządzaną przypisaną przez użytkownika do obszaru roboczego usługi Synapse Analytics. Aby uzyskać więcej informacji, zobacz Poświadczenia w usłudze Azure Data Factory i usłudze Azure Synapse

Uwaga

Upewnij się, że poniższe kroki są wykonywane dopiero po pomyślnym przeniesieniu subskrypcji do innej dzierżawy.

Wyłączanie i ponowne włączanie przypisanej przez system tożsamości zarządzanej dla obszaru roboczego usługi Synapse Analytics

W tej sekcji pokazano, jak używać interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell do wyłączania i ponownego włączania przypisanej przez system tożsamości zarządzanej dla obszaru roboczego usługi Azure Synapse Analytics. Rozważ następujące kroki w interfejsie wiersza polecenia platformy Azure lub w programie 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"

W następnym przykładzie wyłączono tożsamość zarządzaną przypisaną przez system dla obszaru roboczego.

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

Obszar roboczy provisioningState powinien mieć wartość Powodzenie , a typ tożsamości powinien mieć wartość Brak po wykonaniu poprzedniego polecenia. Jeśli wykonasz następujące polecenie, provisioningState wartość może być wyświetlana jako Aprowizowanie i zmiana stanu na Powodzenie potrwa kilka minut. provisioningState Wartość elementu powinna mieć wartość Powodzenie przed ponownym włączeniem tożsamości zarządzanej przypisanej przez system dla obszaru roboczego.

Aby uzyskać stan obszaru roboczego w celu uzyskania stanu aprowizacji i typu tożsamości, użyj następującego fragmentu kodu:

az rest --method GET --uri $uri

Wynikowy kod JSON powinien być podobny do następującego:

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

Następne polecenie ponownie włączy tożsamość zarządzaną przypisaną przez system dla obszaru roboczego:

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

Następne polecenie spowoduje uzyskanie stanu obszaru roboczego. Wartość provisioningState powinna mieć wartość Powodzenie. Wartość provisioningState zmieni się z Aprowizacja na Powodzenie. Typ tożsamości zostanie zmieniony na SystemAssigned.

az rest --method GET --uri $uri

Następne kroki