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

创建一个具有用户管理身份的网络安全环境

Azure AI Foundry 代理服务通过专用网络环境设置提供标准设置,使你能够自带 (BYO) 专用虚拟网络。 此设置创建一个独立的网络环境,使你能够安全地访问数据并执行作,同时保持对网络基础结构的完全控制。 本指南提供设置过程的分步演练,并概述了所有必要的要求。

安全功能

默认情况下,使用专用网络隔离的标准设置可确保:

  • 没有公共出口:基础基础结构可确保代理和工具的正确身份验证和安全性,而无需绕过受信任的服务。

  • 容器注入:允许平台网络托管 API 并将子网注入网络,从而在同一虚拟网络中实现 Azure 资源的本地通信。

  • 专用资源访问:如果资源被标记为专用且无法从 Internet 进行发现,则平台网络仍可访问它们,前提是所需的凭据和授权已到位。

对于没有现有虚拟网络的客户,使用专用网络模板的标准设置可以通过自动预配必要的网络基础结构来简化部署。

体系结构图

显示虚拟网络架构的架构图。

已知的限制

  • 子网 IP 地址限制:仅支持 B 类和 C 类
  • Azure Blob 存储:不支持将 Azure Blob 存储文件与文件搜索工具配合使用。

先决条件

  • Azure 订阅 - 免费创建订阅

  • 确保创建帐户和项目的个人在订阅范围内具有 Azure AI 帐户所有者 角色

  • 部署模板的人员还必须有权将角色分配给所需的资源(Cosmos DB、搜索、存储)。

    • 所需的内置角色是 基于角色的访问管理员
    • 或者,在订阅级别拥有 “所有者” 角色也满足此要求。
    • 所需的密钥权限为: Microsoft.Authorization/roleAssignments/write
  • Python 3.8 或更高版本

  • 配置代理环境后,请确保想要使用代理场或 SDK 创建或编辑代理的每个团队成员都已为项目分配内置的 Azure AI 用户RBAC 角色

    • 所需的最小权限集为: agents/*/readagents/*/actionagents/*/delete
  • 注册服务提供商。 必须注册以下提供程序:

    • Microsoft.KeyVault
    • Microsoft.CognitiveServices
    • Microsoft.Storage
    • Microsoft.MachineLearningServices
    • Microsoft.Search
    • Microsoft.Network
    • Microsoft.App
    • Microsoft.ContainerService
    • 使用必应搜索工具:Microsoft.Bing
       az provider register --namespace 'Microsoft.KeyVault'
       az provider register --namespace 'Microsoft.CognitiveServices'
       az provider register --namespace 'Microsoft.Storage'
       az provider register --namespace 'Microsoft.MachineLearningServices'
       az provider register --namespace 'Microsoft.Search'
       # only to use Grounding with Bing Search tool
       az provider register --namespace 'Microsoft.Bing'
    

配置新的受网络保护的环境

网络安全设置:代理使用客户拥有的单租户搜索和存储资源。 通过此设置,可以完全控制这些资源并查看这些资源,但会根据使用情况产生成本。 以下 bicep 模板提供:

  • 已创建帐户和项目。
  • 已部署 gpt-4o 模型。
  • 如果未提供现有资源,则会自动创建用于存储客户数据的 Azure 资源(Azure 存储、Azure Cosmos DB 和 Azure AI 搜索)。
  • 这些资源连接到项目以存储文件、线程和矢量数据。
  • 默认情况下使用 Microsoft 管理的密钥保管库。

手动部署 bicep 模板

注释

使用 Bicep 模板是为 Azure AI Foundry 代理服务部署网络安全环境的唯一方法。

  1. 若要部署和自定义 bicep 模板, 请从 GitHub 下载模板。 从 private-network-standard-agent-setup 文件夹中下载以下内容:

    1. main-create.bicep
    2. azuredeploy.parameters.json
    3. modules-network-secured folder
  2. 要从 Azure CLI 向 Azure 订阅进行身份验证,请使用以下命令:

    az login
    
  3. 创建资源组:

    az group create --name {my_resource_group} --___location eastus
    

    请确保为您创建的资源组分配 Azure AI 开发人员角色。

  4. 使用在上一步中创建的资源组和其中一个模板文件(private-network-standard-agent-setup),运行以下命令之一:

    1. 若要使用默认资源名称,请运行:

      az deployment group create --resource-group {my_resource_group} --template-file main-create.bicep
      
  5. 运行 CheckCapabilityHostReadiness.ps1 并编辑命令,以添加订阅 ID、资源组名称和新部署的 AI Services 帐户资源名称。

    .\CheckCapabilityHostReadiness.ps1 -subscriptionId "<your-sub-id>" -resourcegroup "<new-rg-name>" -accountname "<your-aiservices-name>"
    

    如果不想运行 PowerShell 脚本,可以从文件 CheckCapabilityHostReadiness.sh 运行 bash 脚本。运行以下命令:

    chmod +x CheckCapabilityHostReadiness.sh
    ./CheckCapabilityHostReadiness.sh "<your-sub-id>" "<new-rg-name>" "<your-aiservices-name>"
    
  6. 部署 main-project-caphost-create.bicep

    az deployment group create --resource-group <new-rg-name> --template-file main-project-caphost-create.bicep
    

    运行此脚本后,需要输入以下值:

    Please provide string value for 'accountName' (? for help): <your-account-name>
    Please provide string value for 'projectName' (? for help): <your-project-name>
    Please provide string value for 'aiSearchName' (? for help): <your-search-name>
    Please provide string value for 'azureStorageName' (? for help): <your-storage-name>
    Please provide string value for 'cosmosDBName' (? for help): <your-cosmosdb-name>
    

有关详细信息,请参阅 自述文件

使用专用网络模板深入了解标准设置

当您使用标准设置和私有网络代理模板时,以下内容将自动进行配置,除非您自行提供:

网络基础结构

  • 创建虚拟网络(192.168.0.0/16)
  • 代理子网(192.168.0.0/24):用于托管代理客户端
  • 专用终结点子网 (192.168.1.0/24):托管专用终结点

专用 DNS 区域 配置了以下 DNS 区域:

  • privatelink.blob.core.windows.net
  • privatelink.cognitiveservices.azure.com
  • privatelink.documents.azure.com
  • privatelink.file.core.windows.net
  • privatelink.openai.azure.com
  • privatelink.search.windows.net
  • privatelink.services.ai.azure.com

虚拟网络(VNet)功能

虚拟网络允许你指定哪些终结点可以对资源进行 API 调用。 Azure 服务会自动拒绝来自已定义网络外部设备的 API 调用。 可以使用基于公式的定义或通过创建允许的终结点的详尽列表来建立允许的网络。 此安全层可以与其他安全措施相结合,以增强保护。

网络规则

默认情况下,所有帐户及其相应的项目都受 拒绝网络规则的保护,需要显式配置以允许通过专用终结点进行访问。

这些规则适用于所有 协议,包括 REST 和 WebSocket。 即使是 Azure 门户的测试控制台等内部测试工具也需要显式权限才能访问帐户及其子资源,从而确保所有代理项目的完整安全性。

专用终结点

对于代理,专用终结点可确保以下 Azure 资源的安全仅限内部的连接:

  • Azure AI Foundry
  • Azure AI 搜索
  • Azure 存储
  • Azure Cosmos DB(Azure 宇宙数据库)

DNS 区域配置摘要

专用链接资源类型 子资源 专用 DNS 区域名称 公共 DNS 区域转发器
Azure AI Foundry 帐户 privatelink.cognitiveservices.azure.com
privatelink.openai.azure.com
privatelink.services.ai.azure.com
cognitiveservices.azure.com
openai.azure.com
services.ai.azure.com
Azure AI 搜索 搜索服务 (Search Service) privatelink.search.windows.net search.windows.net
Azure Cosmos DB SQL privatelink.documents.azure.com documents.azure.com
Azure 存储 团状物 privatelink.blob.core.windows.net blob.core.windows.net

若要在 DNS 服务器中创建条件转发器到 Azure DNS 虚拟服务器,请使用上表中提到的区域列表。 Azure DNS 虚拟服务器 IP 地址为 168.63.129.16。

访问您的安全代理

模板部署完成后,可以使用以下方法之一访问虚拟网络后面的 Foundry 项目:

  • Azure VPN 网关:通过专用连接将本地网络连接到虚拟网络。 通过公共 Internet 建立连接。 可以使用两种类型的 VPN 网关:
    • 点到站点:每台客户端计算机使用 VPN 客户端连接到虚拟网络。
    • 站点到站点:VPN 设备将虚拟网络连接到本地网络。
  • ExpressRoute:通过专用连接将本地网络连接到云。 通过连接提供商建立连接。
  • Azure Bastion:在此方案中,会在虚拟网络中创建一个 Azure 虚拟机(有时称为跳转框)。 然后使用 Azure Bastion 连接到 VM。 Bastion 允许在本地 Web 浏览器中使用 RDP 或 SSH 会话连接到 VM。 然后使用 Jump Box 作为开发环境。 由于它位于虚拟网络内部,因此可以直接访问工作区。

概要

标准代理设置的专用网络 提供企业级隔离和控制:

  • ✅ 所有入站和出站流量都与公共 Internet 保持隔离
  • ✅ 专用终结点保护所有客户数据
  • ✅ 自动专用 DNS 解析,确保流畅的内部访问
  • ✅ 为实现最大安全性,采用默认拒绝的严格网络规则

此设置使 AI 代理能够在专用隔离的虚拟网络中完全运行。 通过利用专用网络隔离(BYO VNet),组织可以强制实施自定义安全策略,确保 AI 代理在其受信任的基础结构中运行。

我们的目标是在不损害关键安全要求的情况下加快 AI 代理的开发与部署。 借助 bicep 和 ARM 模板,可以快速设置代理环境,同时仍保持对其网络和数据的全面控制。

接下来会发生什么?

现已成功配置网络安全帐户和项目,请使用 快速入门 创建第一个代理。