如何将托管标识与 Azure 文件同步配合使用(预览版)

Azure 文件同步支持系统分配的托管标识,现在处于预览版。

托管标识支持通过利用 Microsoft Entra ID 提供的系统分配的托管标识,消除对使用共享密钥作为身份验证方法的需求。

启用此配置时,系统分配的托管标识将用于以下场景:

  • Azure 文件共享的存储同步服务身份验证
  • Azure 文件共享的注册服务器身份验证
  • 存储同步服务注册的服务器身份验证

若要详细了解使用托管标识的好处,请参阅 Azure 资源的托管标识

若要配置 Azure 文件同步部署以利用系统分配的托管标识,请遵循后续部分中的指导。

先决条件

  • 需要至少在一个“已注册服务器”上部署“存储同步服务”。

  • 必须在已注册的服务器上安装 Azure 文件同步代理版本 19.1.0.0 或更高版本。

  • 在 Azure 文件同步使用的“存储帐户”上:

    • 必须是“所有者管理角色的成员”,或者具有“Microsoft.Authorization/roleassignments/write”权限。
    • 必须为预览版启用“允许受信任的服务列表中的 Azure 服务访问此存储帐户”的例外。 了解详细信息
    • 必须为预览版启用“允许存储帐户密钥访问”。 若要检查此设置,请导航到存储帐户,然后选择“设置”部分下的“配置”。
  • Az.StorageSync PowerShell 模块版本 2.2.0 或更高版本必须安装在计算机上,该机器将用于配置 Azure 文件同步以使用托管标识。 若要安装最新的 Az.StorageSync PowerShell 模块,请从提升的 PowerShell 窗口运行以下命令:

    Install-Module Az.StorageSync -Force
    

区域可用性

支持系统分配的托管标识(预览版)的 Azure 文件同步在支持 Azure 文件同步的所有区域中可用。

在已注册的服务器上启用系统分配的托管标识

在将 Azure 文件同步配置为使用托管标识之前,已注册的服务器必须具有系统分配的托管标识,该标识将用于对 Azure 文件同步服务和 Azure 文件共享进行身份验证。

若要在安装了 Azure 文件同步版本 19 代理的已注册服务器上启用系统分配的托管标识,请执行以下步骤:

  • 如果服务器托管在 Azure 外部,则它必须是“已启用 Azure Arc 的服务器”才能具有系统分配的托管标识。 有关已启用 Azure Arc 的服务器以及如何安装 Azure Connected Machine 代理的详细信息,请参阅:已启用 Azure Arc 的服务器概述
  • 如果服务器是 Azure 虚拟机,请在 VM 上启用系统分配的托管标识设置。 有关详细信息,请参阅:在 Azure 虚拟机上配置托管标识

注意

  • 必须至少一个已注册的服务器拥有系统分配的托管标识,然后才能配置存储同步服务以使用系统分配的标识。
  • 将存储同步服务配置为使用托管标识后,没有系统分配托管标识的已注册服务器将继续使用共享密钥对 Azure 文件共享进行身份验证。

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

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

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

验证 LatestApplicationId 属性是否具有 GUID,该 GUID 指示服务器具有系统分配的托管标识,但当前未配置为使用托管标识。

如果 ActiveAuthType 属性的值是 Certificate,并且 LatestApplicationId 不具有 GUID,则服务器没有系统分配的托管标识,并且它将使用共享密钥对 Azure 文件共享进行身份验证。

注意

按照以下部分中的步骤将服务器配置为使用系统分配的托管标识后,LatestApplicationId 属性将不再使用(将为空),ActiveAuthType 属性值将更改为 ManagedIdentity,并且 ApplicationId 属性将具有 GUID,它是系统分配的托管标识。

将 Azure 文件同步部署配置为使用系统分配的托管标识

若要配置存储同步服务和已注册服务器以使用系统分配的托管标识,请从提升的 PowerShell 窗口运行以下命令:

Set-AzStorageSyncServiceIdentity -ResourceGroupName <string> -StorageSyncServiceName <string> -Verbose

Set-AzStorageSyncServiceIdentity cmdlet 可执行以下步骤,将需要几分钟时间才能完成(对于大型拓扑则需要更长时间):

  • 验证至少一个已注册服务器具有系统分配的托管标识。
    • 如果没有具有系统分配的托管标识的已注册服务器,则 cmdlet 将在此步骤中停止。
  • 为存储同步服务资源启用系统分配的托管标识。
  • 授予存储同步服务系统分配的托管标识对存储帐户的访问权限(存储帐户参与者角色)。
  • 授予存储同步服务系统分配的托管标识对 Azure 文件共享的访问权限(存储文件数据特权参与者角色)。
  • 授予已注册服务器系统分配的托管标识对 Azure 文件共享的访问权限(存储文件数据特权参与者角色)。
  • 将存储同步服务配置为使用系统分配的托管标识。
  • 将已注册服务器配置为使用系统分配的托管标识。

随时在需要时使用 Set-AzStorageSyncServiceIdentity cmdlet 配置其他已注册服务器以使用托管标识。

注意

将已注册的服务器配置为使用系统分配的托管标识后,服务器最多可能需要一小时时间才能使用系统分配的托管标识对存储同步服务和文件共享进行身份验证。

如何检查存储同步服务是否使用系统分配的托管标识

若要检查存储同步服务是否正在使用系统分配的托管标识,请从提升的 PowerShell 窗口运行以下命令:

Get-AzStorageSyncService -ResourceGroupName <string> -StorageSyncServiceName <string>

验证 UseIdentity 属性的值是否为 True。 如果值为 False,则存储同步服务使用共享密钥对 Azure 文件共享进行身份验证。

如何检查已注册服务器是否已配置为使用系统分配的托管标识

若要检查已注册服务器是否已配置为使用系统分配的托管标识,请从提升的 PowerShell 窗口运行以下命令:

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

验证 ApplicationId 属性具有 GUID,它会指示服务器已配置为使用托管标识。 服务器使用系统分配的托管标识后,ActiveAuthType 属性的值将更新为 ManagedIdentity。

注意

将已注册服务器配置为使用系统分配的托管标识后,服务器最多可能需要一小时时间才能使用系统分配的托管标识对存储同步服务和 Azure 文件共享进行身份验证。

详细信息

将存储同步服务和已注册服务器配置为使用系统分配的托管标识后:

  • 创建的新终结点(云或服务器)将使用系统分配的托管标识对 Azure 文件共享进行身份验证。
  • 随时在需要时使用 Set-AzStorageSyncServiceIdentity cmdlet 来配置其他已注册服务器以使用托管标识。

如果遇到问题,请参阅:解决 Azure 文件同步托管标识问题