设置自带存储 (BYOS) 语音资源

自带存储 (BYOS) 是一种 Azure AI 技术,适用于对数据安全和隐私有较高要求的客户。 该技术的核心是能够将用户拥有并完全控制的 Azure 存储帐户与语音资源相关联。 然后,语音资源使用此存储帐户来存储与用户数据处理相关的不同项目,而不是像在常规情况下那样在语音服务本地存储相同的项目。 此方法允许使用 Azure 存储帐户的所有安全功能集,包括使用客户管理的密钥加密数据、使用专用终结点访问数据等。

在 BYOS 方案中,语音资源和存储帐户之间的所有流量都使用 Azure 全局网络进行维护,换句话说,所有通信都是使用专用网络执行的,完全绕过公共 Internet。 BYOS 方案中的语音资源使用 Azure 受信任的服务机制来访问存储帐户,依赖于系统分配的托管标识作为身份验证方法,基于角色的访问控制 (RBAC) 作为授权方法。

有一个例外:如果使用文本转语音,并且语音资源和关联的存储帐户位于不同的 Azure 区域,则将公共 Internet 用于涉及用户委派 SAS 的操作。 请参阅本部分中的详细信息。

BYOS 可以与多个 Azure AI 服务一起使用。 对于语音,它可以在以下方案中使用:

语音转文本

文本转语音

一个语音资源 - 存储帐户组合可以同时用于所有四种方案的所有组合。

本文介绍如何创建和维护已启用 BYOS 的语音资源,并适用于所有提到的方案。 请参阅相应文章中的特定于方案的信息。

已启用 BYOS 的语音资源:基本规则

规划已启用 BYOS 的语音资源配置时,请考虑以下规则:

  • 语音资源只能在创建期间启用 BYOS。 无法将现有语音资源转换为已启用 BYOS 的资源。 已启用 BYOS 的语音资源无法转换为“常规”(非 BYOS)。
  • 存储帐户与语音资源的关联是在语音资源创建过程中声明的。 之后无法对此进行更改。 也就是说,无法更改与已启用 BYOS 的现有语音资源关联的存储帐户。 若要使用其他存储帐户,必须创建另一个已启用 BYOS 的语音资源。
  • 创建已启用 BYOS 的语音资源时,可以使用现有的存储帐户,或者在语音资源预配期间自动创建一个(后者仅在使用 Azure 门户时才有效)。
  • 一个存储帐户可以与多个语音资源相关联。 建议为每个语音资源使用一个存储帐户。
  • 存储帐户和已启用 BYOS 的相关语音资源可以位于相同或不同的 Azure 区域中。 建议使用相同的区域来最大程度地减少延迟。 出于同样的原因,不建议为多区域配置选择过于远程的区域。 (例如,不建议将存储帐户放在中国北部,将关联的语音资源放在中国北部)。

创建和配置已启用 BYOS 的语音资源

本部分介绍如何创建已启用 BYOS 的语音资源。

请求访问 Azure 订阅的 BYOS

需要请求对计划使用的每个 Azure 订阅的 BYOS 功能的访问权限。 若要请求访问,请填写并提交认知服务以及应用的 AI 客户托管密钥和自带存储访问请求表单。 等待请求获得批准。

(可选)检查 Azure 订阅是否有权访问 BYOS

可以快速检查 Azure 订阅是否有权访问 BYOS。 此项检查使用 Azure 的预览功能功能。

此功能无法通过 Azure 门户使用。

注意

可以按照此文中的说明查看给定 Azure 订阅的预览功能列表,但请注意,并非所有预览功能(包括 BYOS)都可以通过这种方式查看。

规划和准备存储帐户

如果使用 Azure 门户创建已启用 BYOS 的语音资源,则可以自动创建关联的存储帐户。 对于所有其他预配方法(Azure CLI、PowerShell、REST API 请求),需要使用现有的存储帐户。

如果想要使用现有的存储帐户,但不打算使用 Azure 门户方法进行已启用 BYOS 的语音资源预配,请注意有关此存储帐户的以下事项:

  • 需要存储帐户的完整 Azure 资源 ID。 若要获取它,请导航到 Azure 门户中的存储帐户,然后从“设置”组中选择“终结点”菜单。 复制并存储存储帐户资源 ID 字段的值。
  • 若要完全配置 BYOS,至少需要所选存储帐户的资源所有者权限。

注意

存储帐户资源所有者权限或更高版本不需要使用已启用 BYOS 的语音资源。 但是,在存储帐户的一次性初始配置期间,需要在 BYOS 方案中使用它。 请参阅本部分中的详细信息。

创建已启用 BYOS 的语音资源

在尝试创建语音资源之前,请确保已启用 Azure 订阅以使用 BYOS。 请参阅此部分

可通过两种方法创建已启用 BYOS 的语音资源:

  • 使用 Azure 门户。
  • 使用认知服务 API(PowerShell、Azure CLI、REST 请求)。

Azure 门户选项具有更严格的要求:

  • 用于启用 BYOS 的语音资源预配的帐户应具有订阅所有者的权限。
  • 与 BYOS 关联的存储帐户应仅位于语音资源所在的同一区域中。

如果上述任何额外要求不符合你的方案,请使用认知服务 API 选项(PowerShell、Azure CLI、REST 请求)。

若要使用上述任何方法,需要 Azure 帐户,该帐户分配有一个角色,允许在订阅中创建资源,例如订阅参与者

注意

如果使用 Azure 门户创建已启用 BYOS 的语音资源,建议选择创建新存储帐户的选项。

若要使用 Azure 门户创建已启用 BYOS 的语音资源,需要访问一些门户预览功能。 执行以下步骤:

  1. 使用此链接导航到“创建语音”页。
  2. 注意页面底部的存储账户部分。
  3. 为“自带存储”选项选择“是”。
  4. 配置所需的存储帐户设置,并继续创建语音资源。

如果使用 Azure 门户创建启用了 BYOS 的语音资源,则它完全可供使用。 如果使用了任何其他方法,则需要在关联存储帐户的范围内为语音资源托管标识执行角色分配。 在所有情况下,还需要查看与数据安全相关的不同存储帐户设置。 请参阅此部分

(可选)验证语音资源 BYOS 配置

始终可以检查,无论任何给定的语音资源是否已启用 BYOS,以及关联的存储帐户是什么。 可以通过 Azure 门户或认知服务 API 执行此操作。

若要使用 Azure 门户查看语音资源的 BYOS 配置,需要访问一些门户预览功能。 执行以下步骤:

  1. 使用此链接导航到“创建语音”页。
  2. 按右上角的“X”关闭“创建语音”屏幕。
  3. 如果系统询问同意放弃未保存的更改。
  4. 导航到要检查的语音资源。
  5. 在“资源管理”组中选择“存储”菜单。
  6. 检查:
    1. 附加的存储字段包含与 BYOS 关联的存储帐户的 Azure 资源 ID。
    2. 标识类型已选中“系统分配”。

如果“资源管理”组中缺少“存储”菜单项,则所选语音资源未启用 BYOS。

配置与 BYOS 关联的存储帐户

若要实现数据的高安全性和隐私性,需要正确配置与 BYOS 关联的存储帐户的设置。 如果未使用 Azure 门户创建已启用 BYOS 的语音资源,则还需要执行角色分配的强制步骤。

分配资源访问角色

如果未使用 Azure 门户创建已启用 BYOS 的语音资源,则此步骤是必需的。

BYOS 使用存储帐户的 Blob 存储。 因此,已启用 BYOS 的语音资源托管标识需要在与 BYOS 关联的存储帐户的范围内分配存储 Blob 数据参与者角色。

注意

不要使用自定义角色分配,应当使用内置的“存储 Blob 数据参与者”角色。

如果无法执行此操作,则很难调试与访问 BYOS 关联的存储帐户相关的服务错误和问题。

如果已使用 Azure 门户创建已启用 BYOS 的语音资源,则可以跳过此小节的其余部分。 角色分配已完成。 否则,请执行以下步骤。

重要

需要获得存储帐户或更高范围(如订阅)的“所有者”角色”分配才能在后续步骤中执行操作。 这是因为只有“所有者”角色才能将角色分配给其他人。 请参阅此处的详细信息。

  1. 转到 Azure 门户并登录 Azure 帐户。
  2. 选择“存储帐户”。
  3. 在左侧窗格中选择“访问控制(IAM)”菜单。
  4. 在“授予对此资源的访问权限”磁贴中选择“添加角色分配”。
  5. 在“角色”下选择“存储 Blob 数据参与者”,然后选择“下一步”。
  6. 在“成员”>“将访问权限分配到”下选择“托管标识”。
  7. 分配语音资源托管标识,然后选择“查看 + 分配”。
  8. 确认设置后,选择“查看 + 分配”。

为语音转文本配置存储帐户安全设置

本部分介绍如何设置存储帐户安全设置,如果打算将 BYOS 关联的存储帐户仅用于语音转文本方案。 如果使用与 BYOS 关联的存储帐户进行文本转语音或语音转文本和文本转语音的组合,请使用本部分

对于语音转文本,BYOS 使用受信任的 Azure 服务安全机制与存储帐户通信。 机制允许设置受限的存储帐户数据访问规则。

如果执行本节中的所有操作,则存储帐户会采用以下配置:

因此,实际上,存储帐户将完全“锁定”,并且只能由语音资源访问,这些资源将能够:

  • 编写语音数据处理项目(查看通讯文章的详细信息),
  • 读取应用新配置时已存在的文件。 例如,批量听录的源音频文件或用于自定义模型训练和测试的数据集文件。

出于数据的安全考虑,应将此配置视为一个模型,并根据需求对其进行自定义。

例如,可以允许来自所选公共 IP 地址和 Azure 虚拟网络的流量。 还可使用专用终结点设置对存储帐户的访问(另请参阅此教程),使用存储帐户密钥重新启用访问,允许访问其他 Azure 受信任服务等。

注意

无需使用语音服务专用终结点来保护存储帐户。 语音专用终结点保护语音 API 请求的通道,并可用作解决方案中的额外组件。

限制对存储帐户的访问权限

  1. 转到 Azure 门户并登录 Azure 帐户。
  2. 选择“存储帐户”。
  3. 在左窗格的“设置”组中,选择“配置”。
  4. 对“允许 Blob 公共访问”选择“禁用”。
  5. 对“允许存储帐户密钥访问”选择“禁用”。
  6. 选择“保存”。

有关详细信息,请参阅阻止对容器和 Blob 的匿名公共读取访问阻止对 Azure 存储帐户进行共享密钥授权

配置 Azure 存储防火墙

如果存储帐户的访问受到限制,则需要授予对特定托管标识的访问权限。 按照以下步骤添加对语音资源的访问权限。

  1. 转到 Azure 门户并登录 Azure 帐户。

  2. 选择“存储帐户”。

  3. 在左窗格的“安全性 + 网络”组中,选择“网络”。

  4. 在“防火墙和虚拟网络”选项卡中,选择“从所选虚拟网络和 IP 地址启用”。

  5. 取消选中所有复选框。

  6. 确保选中“Microsoft 网络路由”。

  7. 在“资源实例”部分下,选择 Microsoft.CognitiveServices/accounts 作为资源类型,并选择语音资源作为实例名称。

  8. 选择“保存”。

    注意

    网络更改最多可能需要 5 分钟才会传播。

为文本转语音配置存储帐户安全设置

本部分介绍如何设置存储帐户安全设置,如果打算使用与 BYOS 关联的存储帐户进行文本转语音,或者同时使用语音转文本和文本转语音的组合。 如果仅将 BYOS 关联的存储帐户用于语音转文本,请使用此部分

注意

与语音转文本相比,文本转语音需要更宽松的存储帐户防火墙设置。 如果同时使用“语音转文本”和“文本转语音”,并且需要最大程度限制的存储帐户安全设置来保护数据,则可以考虑使用不同的存储帐户和相应的语音资源执行“语音转文本”和“文本转语音”任务。

如果执行本节中的所有操作,则存储帐户会采用以下配置:

这些是文本转语音方案可能最受限的安全设置。 可以根据需要进一步自定义它们。

限制对存储帐户的访问权限

  1. 转到 Azure 门户并登录 Azure 帐户。
  2. 选择“存储帐户”。
  3. 在左窗格的“设置”组中,选择“配置”。
  4. 对“允许 Blob 公共访问”选择“禁用”。
  5. 对“允许存储帐户密钥访问”选择“禁用”。
  6. 选择“保存”。

有关详细信息,请参阅阻止对容器和 Blob 的匿名公共读取访问阻止对 Azure 存储帐户进行共享密钥授权

配置 Azure 存储防火墙

  1. 转到 Azure 门户并登录 Azure 帐户。
  2. 选择“存储帐户”。
  3. 在左窗格的“安全性 + 网络”组中,选择“网络”。
  4. 在“防火墙和虚拟网络”选项卡上,选择“从所有网络启用”。
  5. 选择“保存”。

配置与 BYOS 关联的存储帐户以用于 Speech Studio

许多 Speech Studio 操作,如数据集上传或自定义模型定型和测试,不需要对已启用 BYOS 的语音资源进行任何特殊配置。

但是,如果需要通过 Speech Studio Web 界面读取与 BYOS 关联的存储帐户存储的数据,则需要配置与 BYOS 关联的存储帐户的更多设置。 例如,需要查看数据集的内容。

配置跨源资源共享 (CORS)

Speech Studio 需要权限才能向与 BYOS 关联的存储帐户的 Blob 存储发出请求。 若要授予此类权限,请使用跨域资源共享 (CORS)。 请执行这些步骤。

  1. 转到 Azure 门户并登录 Azure 帐户。
  2. 选择“存储帐户”。
  3. 在左窗格的“设置”组中,选择“资源共享 (CORS)”。
  4. 确保已选择“Blob 存储”选项卡。
  5. 配置以下记录:
    • 允许的源:https://speech.azure.cn
    • 允许的方法:GETOPTIONS
    • 允许的标头:*
    • 公开的标头:*
    • 最大年龄:1000
  6. 选择“保存”。

警告

“允许的来源”字段应包含不带尾部斜杠的 URL。 即它应该是 https://speech.azure.cn,而不是 https://speech.azure.cn/。 添加尾部斜杠将导致 Speech Studio 不显示数据集和模型测试的详细信息。

配置 Azure 存储防火墙

你需要允许计算机访问,在其中使用 Speech Studio 运行浏览器。 如果存储帐户防火墙设置允许从所有网络进行公共访问,则可以跳过此子部分。 否则,请执行以下步骤。

  1. 转到 Azure 门户并登录 Azure 帐户。
  2. 选择“存储帐户”。
  3. 在左窗格的“安全性 + 网络”组中,选择“网络”。
  4. 在“防火墙”部分中,输入运行 Web 浏览器的计算机的 IP 地址或计算机 IP 地址所属的 IP 子网。
  5. 选择“保存”。

后续步骤