排查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 文件共享进行身份验证。

备注

将服务器配置为使用系统分配的托管标识后,服务器最多可能需要 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 中的冲突应用(并根据需要手动删除),或等待系统自动清理应用。

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

  • 如何在 Microsoft Entra ID 中调查冲突的服务主体
    Microsoft Entra ID(前 Azure AD)中可能仍然存在冲突的服务主体应用。 此应用可能是在存储同步服务的初始预配期间创建的。

  • 选择手动删除(可选)
    如果需要立即解决,可以手动删除冲突的应用:

    1. 转到Microsoft Entra 管理中心。
    2. 导航到“企业应用程序”。
    3. 搜索与存储同步服务匹配的应用名称。
    4. 选择应用,然后选择“ 删除”。
  • 等待自动清理
    如果应用是由存储同步服务预配过程创建的,系统将在 24 小时内自动将其删除。 如果服务不紧急,可以选择等待此自动清理完成。

访问存储帐户和 Azure 文件共享所需的权限

Azure 文件同步配置为使用托管标识时,云终结点和服务器终结点需要以下权限才能访问存储帐户和 Azure 文件共享:

云终结点:

  • 存储同步服务托管标识必须是某存储帐户上 存储帐户参与者 角色的成员。
  • 存储同步服务托管标识必须是 Azure 文件共享上的存储文件数据特权参与者角色的成员

服务器终结点:

  • 注册的服务器托管标识必须是 Azure 文件共享上存储文件数据特权贡献者角色的成员。

运行 Set-AzStorageSyncServiceIdentity cmdlet 或创建新的云和服务器终结点时,即授予这些权限。 如果删除了这些权限,操作将失败,并显示以下部分中列出的错误。

常见问题

本部分介绍权限或配置设置不正确时出现的常见问题。

同步失败,出现错误0x80c8305f(ECS_E_EXTERNAL_STORAGE_ACCOUNT_AUTHORIZATION_FAILED)

错误 代码
HRESULT 0x80c8305f
HRESULT(十进制) -2134364065
错误字符串 ECS_E_外部存储帐户授权失败
所需的补救措施

当存储同步服务的托管标识无权访问存储帐户时,会出现此问题。

若要解决此问题,请运行以下 PowerShell 命令:

Set-AzStorageSyncCloudEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>

备注

参数 -Name 是云终结点的名称。 它是 GUID,而不是Azure 门户中显示的友好名称。 若要获取云终结点名称,请运行 Get-AzStorageSyncCloudEndpoint cmdlet。

同步失败,出现错误0x80c86053(ECS_E_AZURE_FILE_SHARE_NOT_ACCESSIBLE)

错误 代码
HRESULT 0x80c86053
HRESULT(十进制) -2134351789
错误字符串 Azure 文件共享无法访问
所需的补救措施

当存储同步服务的托管标识无权访问 Azure 文件共享时,会出现此问题。

若要解决此问题,请运行以下 PowerShell 命令:

Set-AzStorageSyncCloudEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>

备注

参数 -Name 是云终结点的名称。 它是 GUID,而不是Azure 门户中显示的友好名称。 若要获取云终结点名称,请运行 Get-AzStorageSyncCloudEndpoint cmdlet。

文件无法同步并出现错误0x80c86063(ECS_E_AZURE_AUTHORIZATION_PERMISSION_MISMATCH)

错误 代码
HRESULT 0x80c86063
HRESULT(十进制) -2134351773
错误字符串 ECS_E_AZURE_AUTHORIZATION_PERMISSION_MISMATCH
所需的补救措施

当已注册服务器的托管标识无权访问 Azure 文件共享时,会出现此问题。

若要解决此问题,请运行以下 PowerShell 命令:

Set-AzStorageSyncServerEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>

备注

参数 -Name 是服务器终结点的名称。 它是 GUID,而不是Azure 门户中显示的友好名称。 若要获取服务器终结点名称,请运行 Get-AzStorageSyncServerEndpoint cmdlet。

Test-NetworkConnectivity cmdlet 失败并返回错误0x80190193(HTTP_E_STATUS_FORBIDDEN)

当已注册服务器的托管标识无权访问 Azure 文件共享时,会出现此问题。

若要解决此问题,请运行以下 PowerShell 命令:

Set-AzStorageSyncServerEndpointPermission -ResourceGroupName <string> -StorageSyncServiceName <string> -SyncGroupName <string> -Name <string>

备注

参数 -Name 是服务器终结点的名称。 它是 GUID,而不是Azure 门户中显示的友好名称。 若要获取服务器终结点名称,请运行 Get-AzStorageSyncServerEndpoint cmdlet。

Test-NetworkConnectivity cmdlet 失败,出现错误0x80131500(COR_E_EXCEPTION)

如果在 存储帐户上未启用“允许受信任的服务”列表中的 Azure 服务访问此存储帐户 异常,则会出现此问题。 若要解决此问题,请按照授予对受信任 Azure 服务的访问权限中的 说明启用此异常,并将对存储帐户公共终结点的访问权限限制为特定的虚拟网络

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区