本文可協助您針對使用受控識別搭配 Azure 檔案同步 部署時可能會遇到的問題進行疑難解答和解決。
檢查記憶體同步服務是否使用系統指派的受控識別
若要檢查記憶體同步服務是否使用系統指派的受控識別,請從提升許可權的 PowerShell 視窗執行下列命令:
Get-AzStorageSyncService -ResourceGroupName <string> -StorageSyncServiceName <string>
驗證 UseIdentity 屬性的值是否為命令輸出中的 True。 如果值為 False,記憶體同步服務會使用共用密鑰向 Azure 檔案共用進行驗證。
檢查已註冊的伺服器是否已設定為使用系統指派的受控識別
若要檢查已註冊的伺服器是否已設定為使用系統指派的受控識別,請從提升許可權的 PowerShell 視窗執行下列命令:
Get-AzStorageSyncServer -ResourceGroupName <string> -StorageSyncServiceName <string>
確認 屬性 ApplicationId 具有 GUID,指出伺服器已設定為使用系統指派的受控識別。 一旦伺服器使用系統指派的受控識別,屬性的值 ActiveAuthType 就會更新為 ManagedIdentity。 如果值為 Certificate,伺服器會使用共用密鑰向 Azure 檔案共用進行驗證。
Note
一旦伺服器設定為使用系統指派的受控識別,伺服器最多可能需要 15 分鐘的時間,伺服器才會使用系統指派的受控識別向記憶體同步服務和 Azure 檔案共用進行驗證。
Set-AzStorageSyncServiceIdentity Cmdlet 不會將伺服器設定為使用系統指派的受控識別
如果執行 Set-AzStorageSyncServiceIdentity Cmdlet 未將已註冊的伺服器設定為使用系統指派的受控識別,可能是因為伺服器沒有系統指派的受控識別。
若要在已安裝 Azure 檔案同步 v20 代理程式的已註冊伺服器上啟用系統指派的受控識別,請執行下列步驟:
如果伺服器裝載在 Azure 外部,它必須是已啟用 Azure Arc 的伺服器,才能擁有系統指派的受控識別。 如需已啟用 Azure Arc 的伺服器以及如何安裝 Azure Connected Machine 代理程式的詳細資訊,請參閱 已啟用 Azure Arc 的伺服器概觀。
- 如果伺服器已啟用 Azure Arc,請從 PowerShell 執行
azcmagent show命令,並確認 代理程式狀態 為 已連線。 如果 代理程式狀態 為 中斷連線,請針對 Azure 連線機器代理程式連線問題 進行疑難解答。
- 如果伺服器已啟用 Azure Arc,請從 PowerShell 執行
如果伺服器是 Azure 虛擬機, 請在虛擬機上啟用系統指派的受控識別。
檢查已註冊的伺服器是否有系統指派的受控識別
若要檢查已註冊的伺服器是否有系統指派的受控識別,請執行下列 PowerShell 命令:
Get-AzStorageSyncServer -ResourceGroupName <string> -StorageSyncServiceName <string>
確認 屬性 LatestApplicationId 具有 GUID,指出伺服器具有系統指派的受控識別,但目前未設定為使用它。
如果LatestApplicationId屬性具有 GUID,請重新執行Set-AzStorageSyncServiceIdentity cmdlet,以將伺服器設定為使用系統指派的受控身份。 確認 屬性 ApplicationId 具有 GUID,指出伺服器已設定為使用受控識別。 一旦伺服器使用系統指派的受控識別,屬性的值 ActiveAuthType 就會更新為 ManagedIdentity。
無法刪除記憶體同步服務
當您試著移除記憶體同步服務時,可能會收到下列錯誤:
無法在區域 <region> 中刪除儲存同步服務。 記憶體同步服務正在刪除不再需要的快照集。 請稍候幾個小時再試一次。
當您的檔案共用中有未使用的 Azure File Sync 快照時,就會發生此問題。 為了降低成本,移除記憶體同步服務之前,會先刪除未使用的快照集。 快照集計數會隨著數據集大小而有所不同。 如果您無法在幾個小時後刪除記憶體同步服務,請於第二天再試一次。
建立記憶體同步服務時發生「無法執行資源識別作業」錯誤
建立記憶體同步服務時,您可能會收到下列錯誤:
無法執行資源識別作業。
此問題會在下列其中一個案例中發生:
您刪除了一個儲存同步服務,然後嘗試在同一租戶中使用相同的名稱重新建立它。
衝突的服務主體應用程式可能仍存在於 Microsoft Entra ID 中。
此應用程式可能是在記憶體同步服務的初始布建期間建立的,而且會在24小時內自動刪除。
若要解決這個問題,請使用下列其中一個方法:
使用與先前使用的名稱不同的名稱建立記憶體同步服務。
等待衝突的服務主體應用程式自動清除完成,或手動刪除該應用程式。
如果不急需此服務,請等候此自動清理程序完成。 如果需要立即解決,您可以手動刪除衝突的應用程式:
- 移至 Microsoft Entra 系統管理中心。
- 流覽至 [企業應用程式]。
- 搜尋符合記憶體同步服務的應用程式名稱。
- 選取應用程式,然後選取 [ 刪除]。
存取記憶體帳戶和 Azure 檔案共用所需的許可權
當 Azure 檔案同步 設定為使用受控識別時,您的雲端和伺服器端點需要下列許可權才能存取記憶體帳戶和 Azure 檔案分享:
雲端端點:
- 儲存同步服務的受控識別必須是儲存帳戶上儲存帳戶參與者角色的成員。
- 儲存同步服務的受控識別必須是 Azure 檔案共用上儲存檔案資料特殊許可權參與者角色的成員。
伺服器端點:
- 已註冊的伺服器受控識別必須是 Azure 檔案共用上 記憶體檔案數據特殊許可權參與者 角色的成員。
當您執行 Set-AzStorageSyncServiceIdentity Cmdlet 或建立新的雲端和伺服器端點時,會授與這些許可權。 如果移除這些許可權,作業會失敗,並出現下一節所列的錯誤。
常見問題
本節涵蓋許可權或組態設定不正確時所發生的常見問題。
同步時發生錯誤,錯誤代碼0x80c8305f (ECS_E_EXTERNAL_STORAGE_ACCOUNT_AUTHORIZATION_FAILED)
| Error | Code |
|---|---|
| HRESULT | 0x80c8305f |
| HRESULT (十進位) | -2134364065 |
| 錯誤字串 | ECS_E_EXTERNAL_STORAGE_ACCOUNT_AUTHORIZATION_FAILED |
| 需要補救 | Yes |
當記憶體同步服務的受控識別無法存取記憶體帳戶時,就會發生此問題。
若要解決此問題,請執行下列 PowerShell 命令:
Set-AzStorageSyncCloudEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>
Note
參數 -Name 是雲端端點的名稱。 它是 GUID,而不是顯示在 Azure 入口網站 中的易記名稱。 若要取得雲端端點名稱,請執行 Get-AzStorageSyncCloudEndpoint Cmdlet。
同步失敗,錯誤0x80c86053 (ECS_E_AZURE_FILE_SHARE_NOT_ACCESSIBLE)
| Error | Code |
|---|---|
| HRESULT | 0x80c86053 |
| HRESULT (十進位) | -2134351789 |
| 錯誤字串 | ECS_E_AZURE_FILE_SHARE_NOT_ACCESSIBLE |
| 需要補救 | Yes |
當記憶體同步服務的受控識別無法存取 Azure 檔案共享時,就會發生此問題。
若要解決此問題,請執行下列 PowerShell 命令:
Set-AzStorageSyncCloudEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>
Note
參數 -Name 是雲端端點的名稱。 它是 GUID,而不是顯示在 Azure 入口網站 中的易記名稱。 若要取得雲端端點名稱,請執行 Get-AzStorageSyncCloudEndpoint Cmdlet。
檔案因錯誤 0x80c86063 (ECS_E_AZURE_AUTHORIZATION_PERMISSION_MISMATCH)而無法同步處理
| Error | Code |
|---|---|
| HRESULT | 0x80c86063 |
| HRESULT (十進位) | -2134351773 |
| 錯誤字串 | ECS_E_AZURE_AUTHORIZATION_PERMISSION_MISMATCH |
| 需要補救 | Yes |
當已註冊伺服器的受控識別無法存取 Azure 檔案共享時,就會發生此問題。
若要解決此問題,請執行下列 PowerShell 命令:
Set-AzStorageSyncServerEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>
Note
參數 -Name 是伺服器端點的名稱。 它是 GUID,而不是顯示在 Azure 入口網站 中的易記名稱。 若要取得伺服器端點名稱,請 執行 Get-AzStorageSyncServerEndpoint Cmdlet。
同步會話失敗,並出現ECS_E_AUTH_IDENTITY_NOT_FOUND錯誤
ECS_E_AUTH_IDENTITY_NOT_FOUND錯誤發生在當用於與 Azure 檔案同步服務進行通訊的伺服器之受控身份已變更,但 Azure 檔案同步服務仍期望先前的身份時,這導致驗證失敗。
您可以在事件查看器內的遙測事件記錄檔中檢查事件標識碼 9530,以識別此問題。 此事件表示受控識別的applicationId發生變更。
此問題通常發生在以下情況下:
- Azure Arc 資源刪除和重新建立。
- 在 Azure 虛擬機器上關閉系統指派的受控識別,然後重新啟用。
當受控識別變更時,檔案同步代理程式會嘗試使用新的身分識別,但 Azure 檔案同步服務仍會設定為授權前一個身分識別。 此不相符會導致要求失敗並傳回 ECS_E_AUTH_IDENTITY_NOT_FOUND 錯誤。
若要解決此問題:
請確定伺服器已設定為使用受控識別。
若要確認此設定:
- 檢查您的儲存同步服務中設定>受控識別的詳細資訊,或
- 執行下列 PowerShell 命令:
Get-AzStorageSyncServer -ResourceGroupName <ResourceGroupName> -StorageSyncServiceName <StorageSyncServiceName>
Note
不論伺服器是使用受控識別(MI) 還是憑證式驗證,都可能發生此錯誤。 因此,請務必確認身分識別類型。
如果伺服器使用受控識別並變更身分識別,請執行下列命令來更新伺服器註冊:
Set-AzStorageSyncServer -ResourceGroupName <ResourceGroupName> -StorageSyncServiceName <StorageSyncServiceName> -Identity
Test-NetworkConnectivity Cmdlet 失敗,錯誤0x80190193 (HTTP_E_STATUS_FORBIDDEN)
當已註冊伺服器的受控識別無法存取 Azure 檔案共享時,就會發生此問題。
若要解決此問題,請執行下列 PowerShell 命令:
Set-AzStorageSyncServerEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>
Note
參數 -Name 是伺服器端點的名稱。 它是 GUID,而不是顯示在 Azure 入口網站 中的易記名稱。 若要取得伺服器端點名稱,請 執行 Get-AzStorageSyncServerEndpoint Cmdlet。
Test-NetworkConnectivity Cmdlet 失敗,錯誤0x80131500 (COR_E_EXCEPTION)
在記憶體帳戶上未啟用 [允許信任的服務清單上的 Azure 服務存取此儲存體帳戶例外狀況] 時,就會發生此問題。 若要解決此問題,請遵循授與受信任 Azure 服務的存取權,並將記憶體帳戶公用端點的存取權授與特定虛擬網路中的 指示,以啟用此例外狀況。
與我們連絡,以取得說明
如果您有疑問,可以詢問 Azure 社群支援。 您也可以向 Azure 意見反應社群提交產品意見反應。
不支援的跨租戶配置
不支援伺服器資源 (已啟用 Arc 的伺服器或 Azure VM) 和儲存體同步服務位於 不同 Microsoft Entra 租用戶 中的跨租用戶拓撲。 受控識別與 Azure RBAC 需要由相同租用戶發行的權杖,因此跨租戶授權在此情況下會失敗。 請勿嘗試跨租用戶設定。
緩解措施: 將儲存體同步服務、伺服器資源身分識別、儲存體帳戶 RBAC 指派和受控識別與 相同的租用戶對齊,然後重試。
Note
此 需求同時適用於 已啟用 Arc 的伺服器和 Azure VM。