排查Azure 文件同步托管标识问题

本文可帮助你排查和解决在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 虚拟机, 请对虚拟机启用系统分配的托管标识。

检查已注册的服务器是否具有系统分配的托管标识

若要检查已注册的服务器是否具有系统分配的托管标识,请运行以下 PowerShell 命令:

Get-AzStorageSyncServer -ResourceGroupName <string> -StorageSyncServiceName <string>

验证 LatestApplicationId 属性是否带有 GUID,表明服务器具有系统分配的托管标识,但尚未配置为使用。

LatestApplicationId如果该属性具有 GUID,请再次运行 Set-AzStorageSyncServiceIdentity cmdlet 以将服务器配置为使用系统分配的托管标识。 请验证 ApplicationId 属性是否具有 GUID,以表明服务器已配置为使用托管身份。 服务器使用系统分配的托管标识后,属性的值 ActiveAuthType 将更新为 ManagedIdentity

无法删除存储同步服务

尝试删除存储同步服务时,可能会收到以下错误:

无法删除 <区域>中的存储同步服务。 存储同步服务正在删除不再需要的快照。 请几个小时后重试。

当文件共享未使用Azure 文件同步快照时,会出现此问题。 为了降低成本,删除存储同步服务之前会删除未使用的快照。 快照计数因数据集大小而异。 如果在几个小时后无法删除存储同步服务,请尝试第二天。

创建存储同步服务时出现“无法执行资源标识作”错误

创建存储同步服务时,可能会收到以下错误:

无法执行资源标识操作。

当存在下列情况之一时,会出现此问题:

  • 删除存储同步服务,然后尝试使用相同的名称在同一租户中重新创建它。

  • Microsoft Entra ID 中仍可能存在冲突的服务主体应用。

    此应用可能是在存储同步服务的初始预配期间创建的,将在 24 小时内自动删除。

若要解决此问题,请使用以下方法之一:

  • 使用与以前使用的名称不同的名称创建存储同步服务。

  • 等待冲突的服务主体应用的自动清理完成,或手动删除它。

    如果服务不紧急,请等待此自动清理完成。 如果需要立即解决,可以手动删除冲突的应用:

    1. 转到Microsoft Entra 管理中心。
    2. 导航到 企业应用程序
    3. 搜索与存储同步服务匹配的应用名称。
    4. 选择应用,然后选择“ 删除”。

访问存储帐户和 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 文件同步服务仍需要上一个标识,从而导致身份验证失败。

可以通过在事件查看器中的遥测事件日志中检查事件 ID 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 反馈社区