Memulihkan ruang kerja Synapse Analytics setelah memindahkan langganan ke direktori Microsoft Entra lain (penyewa)

Artikel ini menjelaskan cara memulihkan ruang kerja Synapse Analytics setelah mentransfer langganannya ke direktori Microsoft Entra yang berbeda. Ruang kerja Synapse Analytics tidak akan dapat diakses setelah mentransfer langganan ke direktori Microsoft Entra (penyewa) yang berbeda.

Saat mencoba meluncurkan studio Synapse setelah pemindahan, Anda akan melihat kesalahan: "Gagal memuat satu atau beberapa sumber daya karena tidak ada akses, kode kesalahan 403."

Screenshot of Synapse Studio Error 403 after tenant migration.

Ikuti langkah-langkah dalam artikel ini setelah memindahkan langganan di seluruh penyewa untuk memulihkan ruang kerja Synapse Analytics.

Mentransfer langganan ke direktori Microsoft Entra (penyewa) yang berbeda adalah proses kompleks yang harus direncanakan dan dijalankan dengan hati-hati. Azure Synapse Analytics memerlukan prinsip keamanan (identitas) untuk beroperasi secara normal. Saat langganan dipindahkan ke penyewa yang berbeda, semua ID utama berubah, penetapan peran dihapus dari sumber daya Azure, dan identitas terkelola yang ditetapkan sistem dihapus.

Untuk memahami dampak mentransfer langganan ke penyewa lain, lihat Mentransfer langganan Azure ke direktori Microsoft Entra yang berbeda

Artikel ini membahas langkah-langkah yang terlibat dalam memulihkan ruang kerja Synapse Analytics setelah memindahkan langganan di seluruh penyewa.

Prasyarat

  • Untuk mengetahui selengkapnya tentang layanan atau sumber daya yang terpengaruh oleh pemindahan penyewa, lihat Mentransfer langganan Azure ke direktori Microsoft Entra yang berbeda.
  • Simpan semua penetapan peran untuk pengguna, grup, dan identitas terkelola Microsoft Entra. Informasi ini dapat digunakan untuk menetapkan izin yang diperlukan pada sumber daya Azure seperti Azure Synapse Analytics dan ADLS Gen2 setelah pemindahan penyewa. Lihat Langkah 1: Bersiaplah untuk perpindahan
  • Simpan semua izin yang diperlukan untuk pengguna Microsoft Entra di kumpulan SQL khusus dan tanpa server. Pengguna Microsoft Entra akan dihapus dari kumpulan SQL khusus dan tanpa server setelah pemindahan penyewa.

Langkah-langkah untuk memulihkan ruang kerja Synapse Analytics

Setelah memindahkan langganan ke penyewa lain, ikuti langkah-langkah di bawah ini untuk memulihkan ruang kerja Azure Synapse Analytics.

  1. Nonaktifkan dan aktifkan kembali sistem Identitas Terkelola yang Ditetapkan. Informasi selengkapnya nanti di artikel ini.
  2. Tetapkan izin Azure RBAC (kontrol akses berbasis peran) kepada pengguna, grup, dan identitas terkelola Microsoft Entra yang diperlukan di ruang kerja Synapse Analytics dan sumber daya Azure yang diperlukan.
  3. Atur admin SQL Active Directory.
  4. Buat ulang pengguna dan grup Microsoft Entra berdasarkan pengguna dan grup yang setara di penyewa Microsoft Entra baru untuk kumpulan SQL khusus dan tanpa server.
  5. Tetapkan Azure RBAC kepada pengguna dan grup Microsoft Entra untuk ruang kerja Synapse Analytics. Langkah ini akan menjadi langkah pertama setelah memulihkan ruang kerja. Tanpa langkah ini, meluncurkan Synapse Studio akan melemparkan 403 pesan, karena pengguna Microsoft Entra tidak memiliki izin di ruang kerja:
    {"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. Tetapkan peran Azure RBAC kepada pengguna, grup, perwakilan layanan Microsoft Entra untuk semua sumber daya yang digunakan dalam artefak ruang kerja, seperti ADLS Gen2. Untuk informasi selengkapnya tentang Azure RBAC di ADLS Gen2, lihat Kontrol akses berbasis peran Azure (Azure RBAC).
  7. Tambahkan penetapan peran RBAC Synapse kepada pengguna dan grup Microsoft Entra. Untuk informasi selengkapnya, lihat Cara mengelola penetapan peran Synapse RBAC di Synapse Studio
  8. Buat ulang semua info masuk dan pengguna Microsoft Entra di kumpulan SQL khusus dan tanpa server. Untuk informasi selengkapnya, lihat Autentikasi SQL di Azure Synapse Analytics
  9. Buat ulang semua identitas terkelola yang ditetapkan pengguna dan tetapkan identitas terkelola yang ditetapkan pengguna ke ruang kerja Synapse Analytics. Untuk informasi selengkapnya, lihat Info Masuk di Azure Data Factory dan Azure Synapse

Catatan

Pastikan langkah-langkah berikut dijalankan hanya setelah mengonfirmasi langganan berhasil dipindahkan ke penyewa lain.

Menonaktifkan dan mengaktifkan kembali identitas terkelola yang ditetapkan sistem untuk ruang kerja Synapse Analytics

Bagian ini memperlihatkan cara menggunakan Azure CLI atau Azure PowerShell guna menonaktifkan dan mengaktifkan kembali Identitas Terkelola yang ditetapkan Sistem untuk ruang kerja Azure Synapse Analytics Anda. Pertimbangkan langkah berikut di Azure CLI atau 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"

Sampel berikutnya ini menonaktifkan Identitas Terkelola yang Ditetapkan Sistem untuk ruang kerja.

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

Ruang kerja provisioningState harus berstatus Berhasil dan jenis identitas harus Tidak Ada setelah perintah sebelumnya dijalankan. Jika Anda menjalankan perintah berikut, nilai provisioningState mungkin ditampilkan sebagai Penyediaan dan akan memakan waktu beberapa menit untuk mengubah status menjadi Berhasil. Nilai provisioningState harus berstatus Berhasil sebelum mengaktifkan kembali Identitas Terkelola yang Ditetapkan Sistem untuk ruang kerja.

Untuk mendapatkan status ruang kerja guna mendapatkan status penyediaan dan jenis identitas, gunakan cuplikan kode berikut:

az rest --method GET --uri $uri

JSON yang dihasilkan harus mirip dengan:

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

Perintah berikutnya akan mengaktifkan kembali Identitas Terkelola yang Ditetapkan Sistem untuk ruang kerja:

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

Perintah berikutnya akan memberi Anda status ruang kerja. Nilai provisioningState harus berstatus Berhasil. Nilai provisioningState akan berubah dari Penyediaan menjadi Berhasil. Jenis identitas akan diubah menjadi SystemAssigned.

az rest --method GET --uri $uri

Langkah berikutnya