共用方式為


針對 Azure Data Factory 和 Synapse Analytics 的安全性與存取控制問題進行疑難排解

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

本文探討 Azure Data Factory 和 Synapse Analytics 管線中的安全性和存取控制常見的疑難排解方法。

常見錯誤和訊息

雲端資料存放區複製活動的連線問題

徵兆

當來源或接收資料存放區發生連線問題時,可能會傳回各種錯誤訊息。

原因

此問題通常由下列其中一個因素造成:

  • 自我裝載整合執行階段 (IR) 節點中的 Proxy 設定 (如果您使用自我裝載整合執行階段 (IR) 的話)。

  • 自我裝載整合執行階段 (IR) 節點中的防火牆設定 (如果您使用自我裝載整合執行階段 (IR) 的話)。

  • 雲端資料存放區中的防火牆設定。

解決方法

  • 若要確保問題出在連線上,請檢查是否有以下情況:

    • 擲回錯誤的是來源或接收連接器。
    • 複製活動剛開始就發生失敗。
    • Azure IR 或自我裝載 IR 在與某個節點搭配使用時會一直失敗,原因是如果只有某些節點有此問題,則可能是多節點自我裝載 IR 中的隨機失敗。
  • 如果您使用自我裝載 IR,請檢查 Proxy、防火牆和網路設定,因為如果您使用 Azure IR,連線到相同資料存放區可能會成功。 若要針對此案例進行疑難排解,請參閱:

  • 如果您使用 Azure IR,請嘗試停用資料存放區的防火牆設定。 這種方法可以解決下列兩種情況所發生的問題:

如果上述方法都無效,請連絡 Microsoft 以取得協助。

已刪除或拒絕的私人端點仍會在 ADF 中顯示「已核准」

徵兆

您已從 ADF 建立受控私人端點,並取得已核准的私人端點。 但是,在稍後刪除或拒絕私人端點之後,ADF 中的受控私人端點仍會持續存在,並顯示「已核准」。

原因

目前,ADF 會在核准後停止提取私人端點狀態。 因此,ADF 中顯示的狀態已過時。

解決方法

一旦從來源/接收資料集拒絕/刪除現有的私人端點,您即應該刪除 ADF 中的受控私人端點。

停用公用網路存取之後驗證金鑰會無效或空白的問題

徵兆

在停用服務的公用網路存取之後,自我裝載整合執行階段會擲回下列錯誤:The Authentication key is invalid or empty.Cannot connect to the data factory. Please check whether the factory has enabled public network access or the machine is hosted in a approved private endpoint Virtual Network.

原因

最可能造成此問題的因素是網域名稱系統 (DNS) 解析出錯,因為停用公用連線並建立私人端點會禁止重新連線。

若要確認服務的完整網域名稱 (FQDN) 是否解析為公用 IP 位址,請執行下列動作:

  1. 確認您已在與服務的私人端點相同的虛擬網路中建立 Azure 虛擬機器 (VM)。

  2. 執行從 Azure VM 到服務 FQDN 的 PsPing 和 Ping:

    psping.exe <dataFactoryName>.<region>.datafactory.azure.net:443 ping <dataFactoryName>.<region>.datafactory.azure.net

    注意

    您必須為 PsPing 命令指定連接埠。 這裡會顯示連接埠 443,但不一定要使用。

  3. 檢查這兩個命令是否都解析為以指定區域為基礎的 Azure Data Factory 公用 IP。 IP 的格式應該如下:xxx.xxx.xxx.0

解決方法

若要解決這個問題,請執行下列動作:

  • 作為選項,建議您在服務的 [私人連結 DNS 區域] 底下手動新增 [虛擬網路連結]。 如需詳細資訊,請參閱 Azure Private Link 一文。 此指示會引導您設定私人 DNS 區域或自訂 DNS 伺服器,以將服務 FQDN 解析為私人 IP 位址。

  • 不過,如果您不想設定私人 DNS 區域或自訂 DNS 伺服器,請嘗試下列臨時解決方案:

    1. 變更 Windows 中的主機檔案,並將私人 IP (服務的私人端點) 對應至服務 FQDN。

      在 Azure VM 中,移至 C:\Windows\System32\drivers\etc,然後在記事本中開啟主機檔案。 在檔案結尾處新增會將私人 IP 對應至 FQDN 的程式行,並儲存變更。

      Screenshot of mapping the private IP to the host.

    2. 重新執行與上述驗證步驟相同的命令以檢查回應,回應中應該會包含私人 IP。

    3. 重新註冊自我裝載整合執行階段,應該就能解決問題了。

徵兆

您無法在自我裝載的 VM 上註冊 IR 驗證金鑰,因為私人連結已啟用。 您收到下列錯誤訊息:

「無法從 ADF 服務取得金鑰為 *************** 的服務權杖,時間成本為:0.1250079 秒,錯誤碼為:InvalidGatewayKey,activityId 為:XXXXXXX,詳細的錯誤訊息為用戶端 IP 位址不是有效的私人 IP,因為 Data Factory 無法存取公用網路,因而無法連線到雲端以使連線成功。」

原因

造成此問題的原因可能是您嘗試安裝自我裝載 IR 的 VM。 若要連線到雲端,請確定您已啟用公用網路存取。

解決方法

解決方案 1

若要解決這個問題,請執行下列動作:

  1. 移至 [處理站 - 更新] 頁面。

  2. 在右上方,選取 [試試看] 按鈕。

  3. 在 [參數] 下,完成必要資訊。

  4. 在 [本文] 下,貼上下列屬性:

    { "tags": { "publicNetworkAccess":"Enabled" } }
    
  5. 選取 [執行] 來執行函式。

  6. 在 [參數] 下,完成必要資訊。

  7. 在 [本文] 下,貼上下列屬性:

    { "tags": { "publicNetworkAccess":"Enabled" } }
    
  8. 選取 [執行] 來執行函式。

  9. 確認有顯示回應碼:200。 您貼上的屬性也應該會顯示在 JSON 定義中。

  10. 在整合執行階段中再次新增 IR 驗證金鑰。

解決方案 2

若要解決此問題,請移至 Azure Private Link

嘗試在使用者介面上啟用公用網路存取,如下列螢幕擷取畫面所示:

服務的私人 DNS 區域覆寫 Azure Resource Manager DNS 解析而造成「找不到」錯誤

原因

Azure Resource Manager 和服務使用相同的私人區域,而在客戶的私人 DNS 上產生潛在衝突,並發生找不到 Azure Resource Manager 記錄的情況。

解決方法

  1. 在 Azure 入口網站中尋找私人 DNS 區域 privatelink.azure.comScreenshot of finding Private DNS zones.
  2. 檢查是否有 A 記錄 adfScreenshot of A record.
  3. 移至 [虛擬網路連結],刪除所有記錄。 Screenshot of virtual network link.
  4. 在 Azure 入口網站中瀏覽至您的服務,然後為入口網站重新建立私人端點。 Screenshot of recreating private endpoint.
  5. 返回私人 DNS 區域,並檢查是否有新的私人 DNS 區域 privatelink.adf.azure.comScreenshot of new DNS record.

公用端點中的連線錯誤

徵兆

使用 Azure Blob 儲存體帳戶公用存取來複製資料時,管線執行會隨機失敗,並出現下列錯誤。

例如:Azure Blob 儲存體接收使用 Azure IR (公用,而不是受控 VNet),Azure SQL Database 來源則使用受控 VNet IR。 或者,來源/接收只使用具有儲存體公用存取的受控 VNet IR。

<LogProperties><Text>Invoke callback url with req: "ErrorCode=AzureBlobFailedToCreateContainer,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Unable to create Azure Blob container. Endpoint: XXXXXXX/, Container Name: test.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=Microsoft.WindowsAzure.Storage.StorageException,Message=Unable to connect to the remote server,Source=Microsoft.WindowsAzure.Storage,''Type=System.Net.WebException,Message=Unable to connect to the remote server,Source=System,''Type=System.Net.Sockets.SocketException,Message=A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond public ip:443,Source=System,'","Details":null}}</Text></LogProperties>.

原因

服務可能仍使用受控 VNet IR,但您可能會發生這樣的錯誤,因為根據測試結果,受控 VNet 中 Azure Blob 儲存體的公用端點並不可靠,而且根據受控虛擬網路和受控私人端點,不支援透過公用端點從服務的受控虛擬網路連線到 Azure Blob 儲存體和 Azure Data Lake Gen2。

解決方法

  • 在使用受控 VNet IR 時,於來源以及接收上啟用私人端點。
  • 如果仍想使用公用端點,則可以改為只有公用 IR,而不是針對來源和接收使用受控 VNet IR。 即使您改回公用 IR,如果受控 VNet IR 仍然存在,服務可能仍會使用受控 VNet IR。

嘗試刪除具有客戶自控金鑰 (CMK) 和使用者指派受控識別 (UA-MI) 的資料處理站或 Synapse 工作區時發生內部錯誤

徵兆

{\"error\":{\"code\":\"InternalError\",\"message\":\"Internal error has occurred.\"}}

原因

如果您要執行任何與 CMK 相關的作業,請先完成所有與服務相關的作業,再完成外部作業 (例如受控識別或 Key Vault 作業)。 例如,如果您想要刪除所有資源,就必須先刪除服務執行個體,再刪除金鑰保存庫。 如果您先刪除金鑰保存庫,就會發生此錯誤,因為服務無法再讀取到所需的物件,而且無法驗證是否可執行刪除作業。

解決方法

有三種辦法可以解決此問題。 這些範本如下:

  • 您已撤銷服務對 CMK 金鑰儲存所在金鑰保存庫的存取權。 您可以重新指派下列權限的存取權:取得、將金鑰解除包裝和包裝金鑰。 必須要有這些權限,才能啟用客戶自控金鑰。 請參閱授與客戶自控金鑰的存取權。 提供權限之後,應該就能刪除服務了。

  • 在刪除服務之前,客戶已刪除 Key Vault/CMK。 服務中的 CMK 應啟用「虛刪除」和「清除保護」,其預設保留原則為 90 天。 您可以還原已刪除的金鑰。
    請檢閱復原已刪除的金鑰已刪除的金鑰值

  • 已在服務之前刪除使用者指派的受控識別 (UA-MI)。 您可以使用 REST API 呼叫從此情況中復原,您可以在任何程式設計語言中於選擇的 HTTP 用戶端內執行此動作。 如果您尚未針對 Azure 驗證的 REST API 呼叫進行任何設定,最簡單的方式就是使用 POSTMAN/Fiddler 來進行。 請遵循下列步驟。

    1. 使用 GET Url 方法來進行 GET 呼叫:例如 https://management.azure.com/subscriptions/YourSubscription/resourcegroups/YourResourceGroup/providers/Microsoft.DataFactory/factories/YourFactoryName?api-version=2018-06-01

    2. 您必須建立具有不同名稱的新使用者受控識別 (相同名稱或許也行可,但為了確保成功,使用的名稱與 GET 回應中的名稱不同會比較安全)

    3. 修改 encryption.identity 屬性和 identity.userassignedidentities,以指向新建立的受控識別。 從 userAssignedIdentity 物件中移除 clientId 和 principalId。

    4. 對相同 URL 進行 PUT 呼叫以傳遞新本文。 請務必傳遞 GET 回應中取得的任何內容,並只修改身分識別。 否則,會不小心覆寫其他設定。

    5. 呼叫成功之後,您就能夠再次看到實體,然後重試刪除。

共用自我裝載整合執行階段

不支援從不同的租用戶共用自我裝載 IR

徵兆

您可能會在嘗試從 UI 共用自我裝載 IR 時發現其他資料處理站 (在不同租用戶上),但您無法在不同租用戶的資料處理站加以共用。

原因

自我裝載 IR 不能跨租用戶來共用。

如需疑難排解方面的更多協助,請嘗試下列資源: