你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将数据安全地与 Azure AI Foundry 门户操场配合使用

利用本文了解如何安全地对数据使用 Azure AI Foundry 的操场聊天。 以下部分提供了建议的配置,以使用 Microsoft Entra ID 基于角色的访问控制、托管网络和专用终结点来保护数据和资源。 建议禁用 Azure OpenAI 资源、Azure AI 搜索资源和存储帐户的公共网络相关的网络访问。 不支持使用具有 IP 规则的所选网络,因为服务的 IP 地址是动态的。

注意

Azure AI Foundry 的托管虚拟网络设置仅适用于 Azure AI Foundry 的托管计算资源,不适用于 Azure OpenAI 或 Azure AI 搜索等平台即服务 (PaaS) 服务。 使用 PaaS 服务时,没有数据外泄风险,因为服务由 Microsoft 管理。

下表汇总了本文中所做的更改:

配置 默认 安全 备注
服务之间发送的数据 通过公用网络发送 通过专用网络发送 即使通过公共网络,数据也会使用 HTTPS 进行加密。
服务身份验证 API 密钥 Microsoft Entra ID 具有 API 密钥的任何人都可以向服务进行身份验证。 Microsoft Entra ID 提供更精细、更可靠的身份验证。
服务权限 API 密钥 基于角色的访问控制 API 密钥提供对服务的完全访问权限。 基于角色的访问控制提供对服务的精细访问。
网络访问 公用 专用 使用专用网络可防止专用网络外部的实体访问受其保护的资源。

先决条件

确保使用存储帐户的基于标识的访问设置部署 Azure AI Foundry 中心。 对 Azure AI Foundry 中心的正确访问控制和安全性需要此配置。 可以使用以下方法之一验证此配置:

  • 在 Azure 门户中,选择中心,然后选择“设置”、“属性”以及“选项”。 在页面底部,验证“存储帐户访问类型”是否设置为“基于标识的访问”
  • 如果使用 Azure 资源管理器或 Bicep 模板进行部署,请在部署模板中包含 systemDatastoresAuthMode: 'identity' 属性。
  • 必须熟悉如何使用 Microsoft Entra ID 基于角色的访问控制将角色分配给资源和用户。 有关详细信息,请访问基于角色的访问控制一文。

配置网络隔离的 Azure AI Foundry 中心

如果要创建新的 Azure AI Foundry 中心,请使用以下文档之一创建具有网络隔离的中心:

如果具有未配置为使用托管网络的现有 Azure AI Foundry 中心,请使用以下步骤将其配置为使用托管网络:

  1. 在 Azure 门户中,依次选择中心、设置网络、公共访问。

  2. 若要禁用公用网络访问,请将“公用网络访问”设置为“禁用”。 选择保存应用所做的更改。

    Azure AI Foundry 中心设置的屏幕截图,其中禁用了公共访问。

  3. 选择“工作区托管的出站访问”,然后选择“允许 Internet 出站”或“仅允许批准的出站”网络隔离模式。 选择保存应用所做的更改。

    Azure AI Foundry 中心设置的屏幕截图,其中选择了“允许 Internet 出站”。

配置 Azure AI 服务资源

根据配置,可以使用 Azure AI 服务资源,该资源还包括 Azure OpenAI 或独立的 Azure OpenAI 资源。 本部分中的步骤配置 AI 服务资源。 相同的步骤适用于 Azure OpenAI 资源。

  1. 如果没有适用于 Azure AI Foundry 中心的现有 Azure AI 服务资源,请创建一个

  2. 在 Azure 门户中选择 AI 服务资源,选择“__资源管理”、“标识”,以及“系统分配”。

  3. 若要为 AI 服务资源创建托管标识,请将“状态”设置为“启用”。 选择保存应用所做的更改。

    将托管标识的状态设置为“启用”的屏幕截图。

  4. 若要禁用公用网络访问,请选择“网络”、“防火墙和虚拟网络”,然后将“允许从访问”设置为“禁用”。 在“例外”下面,请确保启用“允许受信任的服务列表中的 Azure 服务”。 选择保存应用所做的更改。

    禁用公用网络访问导致的 AI 服务的屏幕截图。

  5. 若要为 AI 服务资源创建专用终结点,请选择“网络”,“专用终结点连接”,然后选择“+ 专用终结点”。 此专用终结点用于允许 Azure 虚拟网络中的客户端安全地与 AI 服务资源通信。 有关将专用终结点与 Azure AI 服务配合使用的详细信息,请访问使用专用终结点一文。

    AI 服务的专用终结点部分的屏幕截图。

    1. 在“基本信息”选项卡中,输入专用终结点、网络接口的唯一名称,然后选择要在其中创建专用终结点的区域。
    2. 在“资源”选项卡中,接受帐户的目标子资源。
    3. 在“虚拟网络”选项卡中,选择专用终结点连接到的 Azure 虚拟网络。 此网络应与客户端连接到的网络相同,并且 Azure AI Foundry 中心具有专用终结点连接。
    4. 在“DNS”选项卡中,选择 DNS 设置的默认值。
    5. 继续来到“查看 + 创建”选项卡中,然后选择“创建”以创建专用终结点
  6. 目前,无法通过 Azure 门户禁用对 Azure AI 服务的本地(共享密钥)身份验证。 相反,可以使用以下 Azure PowerShell cmdlet:

    Set-AzCognitiveServicesAccount -resourceGroupName "resourceGroupName" -name "AIServicesAccountName" -disableLocalAuth $true
    

    有关详细信息,请访问禁用 Azure AI 服务中的本地身份验证一文。

当你想要执行以下操作时,可以考虑使用 Azure AI 搜索索引:

  • 自定义索引创建过程。
  • 通过引入其他数据源的数据来重用之前创建的索引。

若要使用现有索引,索引必须至少有一个可搜索字段。 使用矢量搜索时,请确保至少映射一个有效的矢量列。 

重要

本节中的信息仅适用于保护用于 Azure AI Foundry 的 Azure AI 搜索资源。 如果出于其他目的使用 Azure AI 搜索,可能需要配置其他设置。 有关配置 Azure AI 搜索的相关信息,请访问以下文章:

  1. 如果没有适用于 Azure AI Foundry 中心的现有 Azure AI 搜索资源,请创建一个

  2. 在 Azure 门户中选择 AI 搜索资源,然后选择“设置”、“标识”,以及“系统分配”。

  3. 若要为 AI 搜索资源创建托管标识,请将“状态”设置为“启用”。 选择保存应用所做的更改。

    使用系统托管标识配置的 AI 搜索的屏幕截图。

  4. 若要禁用公用网络访问,请选择“设置”、“网络”,以及“防火墙和虚拟网络”。 将“公用网络访问”设置为“禁用”。 在“例外”下面,请确保启用“允许受信任的服务列表中的 Azure 服务”。 选择保存应用所做的更改。

    禁用公用网络访问导致的 AI 搜索的屏幕截图。

  5. 若要为 AI 搜索资源创建专用终结点,请选择“网络”,“专用终结点连接”,然后选择“+ 创建专用终结点”

    AI 搜索的专用终结点部分的屏幕截图。

    1. 在“基本信息”选项卡中,输入专用终结点、网络接口的唯一名称,然后选择要在其中创建专用终结点的区域。
    2. 在“资源”选项卡中,选择包含资源的“订阅”,将“资源类型”设置为 Microsoft.Search/searchServices,然后选择 Azure AI 搜索资源。 唯一可用的子资源是 searchService
    3. 在“虚拟网络”选项卡中,选择专用终结点连接到的 Azure 虚拟网络。 此网络应与客户端连接到的网络相同,并且 Azure AI Foundry 中心具有专用终结点连接。
    4. 在“DNS”选项卡中,选择 DNS 设置的默认值。
    5. 继续来到“查看 + 创建”选项卡中,然后选择“创建”以创建专用终结点
  6. 若要根据基于角色的访问控制启用 API 访问,请选择“设置”、“密钥”,然后将“API 访问控制”设置为“基于角色的访问控制”或“二者都有”。 选择_“是”,应用所做的更改。

    注意

    如果你有使用密钥访问 Azure AI 搜索的其他服务,请选择“二者都有”。 选择“基于角色的访问控制”,以禁用基于密钥的访问。

    将具有 API 访问权限的 AI 搜索设置为这两者的屏幕截图。

配置 Azure 存储(仅引入)

如果将 Azure 存储用于 Azure AI Foundry 门户操场的引入方案,则需要配置 Azure 存储帐户。

  1. 创建存储帐户资源

  2. 在 Azure 门户中,选择存储帐户资源,然后选择“安全性 + 网络”、“网络”以及“防火墙和虚拟网络”选项卡

  3. 若要禁用公用网络访问并允许从受信任的服务进行访问,请将“公用网络访问”设置为“从所选虚拟网络和 IP 地址启用”。 在“例外”下面,请确保启用“允许受信任的服务列表中的 Azure 服务”

    存储帐户网络配置的屏幕截图。

  4. 将“公用网络访问”设置为“禁用”,然后选择“保存”以应用更改。 仍启用允许从受信任服务访问的配置。

  5. 若要为 Azure 存储创建专用终结点,请选择“网络”、“专用终结点连接”,然后选择“+ 专用终结点”

    存储帐户的专用终结点连接的屏幕截图。

    1. 在“基本信息”选项卡中,输入专用终结点、网络接口的唯一名称,然后选择要在其中创建专用终结点的区域。
    2. 在“资源”选项卡上,将“目标子资源”设置为 Blob。
    3. 在“虚拟网络”选项卡中,选择专用终结点连接到的 Azure 虚拟网络。 此网络应与客户端连接到的网络相同,并且 Azure AI Foundry 中心具有专用终结点连接。
    4. 在“DNS”选项卡中,选择 DNS 设置的默认值。
    5. 继续来到“查看 + 创建”选项卡中,然后选择“创建”以创建专用终结点
  6. 重复上一步以创建专用终结点,但这次将“目标子资源”设置为“文件”。 以前的专用终结点允许与 Blob 存储的安全通信,此专用终结点允许安全通信到文件存储。

  7. 若要禁用对存储的本地(共享密钥)身份验证,请在“设置”下选择“配置”。 将“允许存储帐户密钥访问”设置为“禁用”,然后选择“保存”以应用更改。 有关详细信息,请访问阻止通过共享密钥进行授权一文。

配置 Azure Key Vault

Azure AI Foundry 使用 Azure Key Vault 安全地存储和管理机密。 若要允许从受信任的服务访问密钥保管库,请使用以下步骤。

注意

这些步骤假定在创建 Azure AI Foundry 中心时已为密钥保管库配置了网络隔离。

  1. 在 Azure 门户中,选择密钥保管库资源,然后选择“设置”、“网络”以及“防火墙和虚拟网络”
  2. 在页面“异常”部分中,确保“允许受信任的 Microsoft 服务绕过防火墙”已启用

将连接配置为使用 Microsoft Entra ID

从 Azure AI Foundry 到 Azure AI 服务和 Azure AI 搜索的连接应使用 Microsoft Entra ID 进行安全访问。 连接是从 Azure AI Foundry 而不是 Azure 门户创建的。

重要

将 Microsoft Entra ID 与 Azure AI 搜索配合使用目前是一项预览功能。 有关连接的详细信息,请访问添加连接一文。

  1. 从 Azure AI Foundry 中选择“连接”。 如果有与资源的现有连接,则可以选择该连接,然后在“访问详细信息”部分中选择铅笔图标以更新连接。 将“身份验证”字段设置为“Microsoft Entra ID”,然后选择“更新”
  2. 若要创建新连接,请选择“+ 新建连接”,然后选择资源类型。 浏览资源或输入所需的信息,然后将“身份验证”设置为“Microsoft Entra ID”。 选择“添加连接”以创建连接。

对要使用 Microsoft Entra ID 连接到的每个资源重复这些步骤。

向资源和用户分配角色

服务需要互相授权才能访问连接的资源。 执行配置的管理员需要拥有对这些资源的“所有者”角色才能添加角色分配。 下表列出了每个资源所需的角色分配。 “被分派人”列是指所列资源的系统分配的托管标识。 “资源”列是指被分派人需要访问的资源。 例如,Azure AI 搜索具有一个系统分配的托管标识,需要为 Azure 存储帐户分配“存储 Blob 数据参与者”角色

有关分配角色的详细信息,请参阅教程:授予用户对资源的访问权限

资源 角色 被分派人 说明
Azure AI 搜索 搜索索引数据参与者 Azure AI 服务/OpenAI 对索引中内容的读写访问权限。 导入、刷新或查询索引的文档集合。 仅用于数据引入和推理场景。
Azure AI 搜索 搜索索引数据读取者 Azure AI 服务/OpenAI 推理服务从索引中查询数据。 仅用于推理场景。
Azure AI 搜索 搜索服务参与者 Azure AI 服务/OpenAI 对对象定义(索引、别名、同义词映射、索引器、数据源和技能组)的读写访问权限。 推理服务查询自动字段映射的索引架构。 数据引入服务创建索引、数据源、技能集、索引器并查询索引器状态。
Azure AI 服务/OpenAI 认知服务参与者 Azure AI 搜索 允许搜索创建、读取和更新 AI 服务资源。
Azure AI 服务/OpenAI 认知服务 OpenAI 参与者 Azure AI 搜索 允许搜索微调、部署和生成文本
Azure 存储帐户 存储 Blob 数据参与者 Azure AI 搜索 读取 Blob 和写入知识存储。
Azure 存储帐户 存储 Blob 数据参与者 Azure AI 服务/OpenAI 从输入容器读取,并将预处理结果写入输出容器。
Azure Blob 存储专用终结点 读者 Azure AI Foundry 项目 面向启用了托管网络以在网络受限环境中访问 Blob 存储的 Azure AI Foundry 项目
用于聊天模型的 Azure OpenAI 资源 认知服务 OpenAI 用户 用于嵌入模型的 Azure OpenAI 资源 [可选] 仅当使用两个 Azure OpenAI 资源进行通信时才需要。

注意

仅当使用两个 Azure OpenAI 资源(一个用于聊天模型,另一个用于嵌入模型)时,才需要“认知服务 OpenAI 用户”角色。 如果适用,请启用受信任的服务,并确保嵌入模型 Azure OpenAI 资源的连接已启用 Entra ID。

向开发人员分配角色

若要使开发人员使用这些资源生成应用程序,请在 Microsoft Entra ID 中将以下角色分配给开发人员的标识。 例如,将“搜索服务参与者”角色分配给用于 Azure AI 搜索资源的开发人员的 Microsoft Entra ID。

有关分配角色的详细信息,请参阅教程:授予用户对资源的访问权限

资源 角色 被分派人 说明
Azure AI 搜索 搜索服务参与者 开发人员的 Microsoft Entra ID 列出用于列出 Azure OpenAI Studio 中的索引的 API 密钥。
Azure AI 搜索 搜索索引数据参与者 开发人员的 Microsoft Entra ID 索引场景需要。
Azure AI 服务/OpenAI 认知服务 OpenAI 参与者 开发人员的 Microsoft Entra ID 从 Azure OpenAI Studio 调用公共引入 API。
Azure AI 服务/OpenAI 认知服务参与者 开发人员的 Microsoft Entra ID 从 Azure OpenAI Studio 列出 API 密钥。
Azure AI 服务/OpenAI 参与者 开发人员的 Microsoft Entra ID 允许调用控制平面。
Azure 存储帐户 参与者 开发人员的 Microsoft Entra ID 列出帐户 SAS 以从 Azure OpenAI Studio 上传文件。
Azure 存储帐户 存储 Blob 数据参与者 开发人员的 Microsoft Entra ID 开发人员读取和写入 Blob 存储需要。
Azure 存储帐户 存储文件数据特权参与者 开发人员的 Microsoft Entra ID 访问存储中的文件共享以获得 Promptflow 数据时需要。
开发人员需要将 Web 应用部署到其中的资源组或 Azure 订阅 参与者 开发人员的 Microsoft Entra ID 将 Web 应用部署到开发人员的 Azure 订阅。

在 Azure AI Foundry 门户中使用你的数据

现在,添加到 Azure AI Foundry 的数据已固定到 Azure AI Foundry 中心和项目提供的隔离网络。 有关使用数据的示例,请访问生成问答 copilot 教程。

部署 Web 应用

有关配置 Web 应用部署的信息,请访问在数据上安全地使用 Azure OpenAI 一文。

限制

在 Azure AI Foundry 门户中使用聊天操场时,请勿导航到 Studio 中的另一个选项卡。 如果确实导航到另一个选项卡,则返回到“聊天”选项卡时,必须删除数据,然后将其添加回去。