本文可帮助你排查和解决在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 Connected Machine 代理连接问题。
- 如果服务器已启用 Azure Arc,请从 PowerShell 运行
如果服务器是 Azure 虚拟机, 请对虚拟机启用系统分配的托管标识。
检查已注册的服务器是否具有系统分配的托管标识
若要检查已注册的服务器是否具有系统分配的托管标识,请运行以下 PowerShell 命令:
Get-AzStorageSyncServer -ResourceGroupName <string> -StorageSyncServiceName <string>
验证 LatestApplicationId 属性是否带有 GUID,表明服务器具有系统分配的托管标识,但尚未配置为使用。
LatestApplicationId如果该属性具有 GUID,请再次运行 Set-AzStorageSyncServiceIdentity cmdlet 以将服务器配置为使用系统分配的托管标识。 请验证 ApplicationId 属性是否具有 GUID,以表明服务器已配置为使用托管身份。 服务器使用系统分配的托管标识后,属性的值 ActiveAuthType 将更新为 ManagedIdentity。
无法删除存储同步服务
尝试删除存储同步服务时,可能会收到以下错误:
无法删除 <区域>中的存储同步服务。 存储同步服务正在删除不再需要的快照。 请几个小时后重试。
当文件共享未使用Azure 文件同步快照时,会出现此问题。 为了降低成本,删除存储同步服务之前会删除未使用的快照。 快照计数因数据集大小而异。 如果在几个小时后无法删除存储同步服务,请尝试第二天。
创建存储同步服务时出现“无法执行资源标识作”错误
创建存储同步服务时,可能会收到以下错误:
无法执行资源标识操作。
当存在下列情况之一时,会出现此问题:
删除存储同步服务,然后尝试使用相同的名称在同一租户中重新创建它。
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 文件同步服务仍需要上一个标识,从而导致身份验证失败。
可以通过在事件查看器中的遥测事件日志中检查事件 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 反馈社区。
不支持的跨租户配置
不支持跨租户拓扑,其中服务器资源(已启用 Arc 的服务器或 Azure VM)和存储同步服务位于 不同的Microsoft Entra 租户 中。 托管标识和 Azure RBAC 需要同一租户颁发的令牌。在这种情况下,跨租户授权失败。 不要尝试跨租户设置。
缓解: 将存储同步服务、服务器资源标识、存储帐户 RBAC 分配和托管标识与 同一租户保持一致,然后重试。
Note
此 要求适用于已启用 Arc 的服务器和 Azure VM。