排查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 文件共享进行身份验证。
注意
将服务器配置为使用系统分配的托管标识后,服务器最多可能需要一小时才能使用系统分配的托管标识向存储同步服务和 Azure 文件共享进行身份验证。
Set-AzStorageSyncServiceIdentity cmdlet 不会将服务器配置为使用系统分配的托管标识
如果运行 Set-AzStorageSyncServiceIdentity
cmdlet 未将已注册的服务器配置为使用系统分配的托管标识,则可能是因为服务器没有系统分配的托管标识。
若要在安装了 Azure 文件同步版本 19 代理的已注册服务器上启用系统分配的托管标识,请执行以下步骤:
如果服务器托管在 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 文件同步快照时,会出现此问题。 为了降低成本,删除存储同步服务之前会删除未使用的快照。 快照计数因数据集大小而异。 如果在几个小时后无法删除存储同步服务,请尝试第二天。
访问存储帐户和 Azure 文件共享所需的权限
Azure 文件同步配置为使用托管标识时,云终结点和服务器终结点需要以下权限才能访问存储帐户和 Azure 文件共享:
云终结点:
- 存储同步服务托管标识必须是存储帐户上的存储帐户参与者角色的成员。
- 存储同步服务托管标识必须是 Azure 文件共享上的存储文件数据特权参与者角色的成员。
服务器终结点:
- 注册服务器托管标识必须是 Azure 文件共享上的存储文件数据特权参与者角色的成员。
运行 Set-AzStorageSyncServiceIdentity
cmdlet 或创建新的云和服务器终结点时,将授予这些权限。 如果删除了这些权限,操作将失败,并显示以下部分中列出的错误。
常见问题
本部分介绍权限或配置设置不正确时出现的常见问题。
同步失败,出现错误0x80c8305f(ECS_E_EXTERNAL_STORAGE_ACCOUNT_AUTHORIZATION_FAILED)
错误 | 代码 |
---|---|
HRESULT | 0x80c8305f |
HRESULT(十进制) | -2134364065 |
错误字符串 | ECS_E_EXTERNAL_STORAGE_ACCOUNT_AUTHORIZATION_FAILED |
所需的补救措施 | 是 |
当存储同步服务的托管标识无权访问存储帐户时,会出现此问题。
若要解决此问题,请运行以下 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 |
错误字符串 | ECS_E_AZURE_FILE_SHARE_NOT_ACCESSIBLE |
所需的补救措施 | 是 |
当存储同步服务的托管标识无权访问 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 反馈社区。