將訂用帳戶轉移至不同的 Microsoft Entra 目錄之後,復原 Synapse Analytics 工作區 (租用戶)
本文說明如何將訂用帳戶轉移至不同的 Microsoft Entra 目錄之後,復原 Synapse Analytics 工作區。 將訂用帳戶轉移至不同的 Microsoft Entra 目錄(租使用者)之後,將無法存取 Synapse Analytics 工作區。
當您嘗試在移動後啟動 Synapse Studio 時,您會看到錯誤:「無法載入一或多個資源,因為沒有存取權,錯誤碼 403」。
在跨租使用者轉移訂用帳戶以復原 Synapse Analytics 工作區之後,請遵循本文中的步驟。
將訂用帳戶轉移至不同的 Microsoft Entra 目錄(租使用者)是一個複雜的程式,必須仔細規劃和執行。 Azure Synapse Analytics 需要安全性主體(身分識別)才能正常運作。 當訂用帳戶移至不同的租使用者時,所有主體識別碼都會變更、角色指派會從 Azure 資源中刪除,並卸載系統指派的受控識別。
若要瞭解將訂用帳戶轉移至另一個租使用者的影響,請參閱 將 Azure 訂用帳戶轉移至不同的 Microsoft Entra 目錄
本文涵蓋在跨租使用者移動訂用帳戶之後復原 Synapse Analytics 工作區所涉及的步驟。
必要條件
- 若要深入瞭解受租使用者移動影響的服務或資源,請參閱 將 Azure 訂用帳戶轉移至不同的 Microsoft Entra 目錄 。
- 儲存 Microsoft Entra 使用者、群組和受控識別的所有角色指派。 這項資訊可用來在租使用者移動之後指派 Azure 資源的必要許可權,例如 Azure Synapse Analytics 和 ADLS Gen2。 請參閱 步驟 1:準備傳輸
- 將 Microsoft Entra 使用者所需的擁有權限儲存在專用和無伺服器 SQL 集區中。 在租使用者移動之後,Microsoft Entra 使用者將會從專用和無伺服器 SQL 集區中刪除。
復原 Synapse Analytics 工作區的步驟
將訂用帳戶轉移至另一個租用戶後,請遵循下列步驟來復原 Azure Synapse Analytics 工作區。
- 停用再重新啟用系統指派的受控身分識別。 如需詳細資訊,請參閱本文稍後的內容。
- 將 Azure RBAC (角色型存取控制) 權限指派給 Synapse Analytics 工作區上需要的 Microsoft Entra 使用者、群組和受控身分識別,以及必要的 Azure 資源。
- 設定 SQL Active Directory 管理員。
- 根據專用和無伺服器 SQL 集區的新 Microsoft Entra 租用戶的對等使用者和群組,重新建立 Microsoft Entra 使用者和群組。
- 將 Azure RBAC 指派給 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/*."}}
- 將 Azure RBAC 角色指派給 Microsoft Entra 使用者和群組,將服務主體指派給工作區成品中使用的所有資源,例如 ADLS Gen2。 如需有關 ADLS Gen2 中的 Azure RBAC 的詳細資訊,請參閱角色型存取控制 (Azure RBAC)。
- 將 Synapse RBAC 角色指派新增至 Microsoft Entra 使用者和群組。 如需詳細資訊,請參閱如何在 Synapse Studio 中管理 Synapse RBAC 角色指派
- 在專用和無伺服器 SQL 集區中重新建立所有 Microsoft Entra 登入和使用者。 如需詳細資訊,請參閱 Azure Synapse Analytics 中的 SQL 驗證。
- 重新建立所有使用者指派的受控身分識別,並將使用者指派的受控身分識別指派至 Synapse Analytics 工作區。 如需詳細資訊,請參閱 Azure Data Factory 和 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
應為 Succeeded。 值 provisioningState
會從 [布建] 變更為 [成功]。 身分識別類型將會變更為 SystemAssigned 。
az rest --method GET --uri $uri