Azure 资源托管标识是一种服务主体,可为 Azure 托管资源创建 Microsoft Entra 标识和特定权限。 托管标识是授予对存储数据的访问权限的更安全方法,并取代了将共享访问签名令牌(SAS)包含在源和目标容器 URL 中的要求。
可使用托管标识向支持 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 分钟更改才能生效。
原生文档语言服务操作请求通过 POST 请求提交到语言服务终结点。
使用托管标识和
Azure RBAC
,你不再需要包含 SAS URL。如果成功,则 POST 方法将返回
202 Accepted
响应代码,并且服务将创建一个请求。处理后的文档将会显示在目标容器中。