语言资源的托管标识
Azure 资源托管标识是一种服务主体,可为 Azure 托管资源创建 Microsoft Entra 标识和特定权限。 托管标识是授予存储数据访问权限的一种更安全的方式,取代了在源和目标容器 URL 中包含共享访问签名令牌 (SAS) 的要求。
可使用托管标识向支持 Microsoft Entra 身份验证的任何资源(包括你自己的应用程序)授予访问权限。
若要授予对 Azure 资源的访问权限,请使用 Azure 基于角色的访问控制 (
Azure RBAC
) 为托管标识分配 Azure 角色。在 Azure 中使用托管标识不会增加成本。
重要
使用托管标识时,请勿在 HTTP 请求中包含 SAS 令牌 URL - 请求将失败。 使用托管标识替换了将共享访问签名令牌 (SAS) 包含在源和目标容器 URL 中的要求。
若要将托管标识用于语言操作,必须在特定的 Azure 地理区域(例如“中国北部 2”)创建语言资源。
先决条件
若要开始,你需要以下资源:
在某个区域位置创建的单服务 Azure AI 语言资源。
简要了解使用 Azure 门户的 Azure 基于角色的访问控制 (
Azure RBAC
)。与语言资源位于同一区域的 Azure Blob 存储帐户。 你还需要创建一个容器,用于存储和整理存储帐户中的 blob 数据。
如果存储帐户位于防火墙后面,则必须启用以下配置:
转到 Azure 门户并登录 Azure 帐户。
选择你的存储帐户。
在左窗格的“安全性 + 网络”组中,选择“网络”。
在“防火墙和虚拟网络”选项卡中,选择“从所选虚拟网络和 IP 地址启用”。
取消选中所有复选框。
确保选中“Microsoft 网络路由”。
在“资源实例”部分下,选择 Microsoft.CognitiveServices/accounts 作为资源类型,并选择你的语言资源作为实例名称。
确保选中“允许受信任服务列表中的 Azure 服务访问此存储帐户”框。 有关管理例外情况的详细信息,请参阅配置 Azure 存储防火墙和虚拟网络。
选择“保存”。
注意
网络更改最多可能需要 5 分钟才会传播。
托管标识分配
有两种类型的托管标识:系统分配的托管标识和用户分配的托管标识。 目前,文档翻译支持系统分配的托管标识:
系统分配的托管标识直接在服务实例上启用。 此标识默认不会启用,因此你必须转到资源并更新标识设置。
系统分配的托管标识在其整个生命周期内与资源绑定。 如果删除资源,则托管标识也将被删除。
在以下步骤中,我们将启用系统分配的托管标识,并授予你的语言资源对 Azure Blob 存储帐户的有限访问权限。
启用系统分配的托管标识
你必须先向语言资源授予对存储帐户的访问权限,然后才能创建、读取或删除 blob。 使用系统分配的托管标识启用了语言资源后,可使用 Azure 基于角色的访问控制 (Azure RBAC
) 向语言功能提供对 Azure 存储容器的访问权限。
转到 Azure 门户并登录 Azure 帐户。
选择语言资源。
在左窗格的“资源管理”组中,选择“标识”。 如果你的资源是在全局区域中创建的,则“标识”选项卡不可见。 仍可以使用共享访问签名 (SAS) 令牌进行身份验证。
在“系统分配”选项卡中,打开“状态”切换开关。
重要
用户分配的托管标识不满足批量处理存储帐户方案的要求。 请确保启用系统分配的托管标识。
选择“保存”。
为你的语言资源授予存储帐户访问权限
转到 Azure 门户并登录 Azure 帐户。
选择语言资源。
在左窗格的“资源管理”组中,选择“标识”。
在“权限”下,选择“Azure 角色分配” :
在打开的“Azure 角色分配”页面上,从下拉菜单中选择订阅,然后选择“+ 添加角色分配”。
接下来,向你的语言服务资源分配“存储 Blob 数据参与者”角色。 “存储 Blob 数据参与者”角色向语言(由系统分配的托管标识表示)授予对 Blob 容器和数据的读取、写入和删除权限。 在“添加角色分配”弹出窗口中,按如下所示填写字段,然后选择“保存” :
字段 值 范围 存储。 订阅 与存储资源关联的订阅。 资源 存储资源的名称。 角色 存储 Blob 数据参与者。 显示“已添加角色分配”确认消息后,请刷新页面以查看添加的角色分配。
如果没有立即看到新的角色分配,请稍候,然后尝试再次刷新页面。 分配角色或删除角色分配时,最长可能需要 30 分钟更改才能生效。
HTTP 请求
原生文档语言服务操作请求通过 POST 请求提交到语言服务终结点。
使用托管标识和
Azure RBAC
,你不再需要包含 SAS URL。如果成功,则 POST 方法将返回
202 Accepted
响应代码,并且服务将创建一个请求。处理后的文档将会显示在目标容器中。