本文档提供指导,帮助您设计专用网络基础架构,以支持可公开访问的多代理 Gemini Enterprise 应用,并在代理、子代理和工具之间建立专用连接。该网络设计为托管在 Gemini Enterprise Agent Platform 上的 Agent Runtime、Cloud Run、Google Kubernetes Engine (GKE)、本地数据中心或其他云中的智能体提供专用连接。该设计还支持连接到在互联网位置运行的代理。
多智能体 AI 系统通常涉及组织敏感数据或专有数据。通过专用网络,您可以避免将此流量公开给公共互联网。此设计使用 Google Cloud 网络基础设施、虚拟私有云 (VPC) 网络资源以及与本地环境或跨云网络的专用连接。
在本文档介绍的设计中,智能体使用 Agent2Agent (A2A) 协议和 Model Context Protocol (MCP) 与其他智能体和工具进行通信。通过 VPC 网络路由通信,可确保通信的私密性。为了将流量移入和移出 VPC 网络,此设计结合使用了 Private Service Connect 端点、Private Service Connect 接口和 Cloud Run 直接 VPC 出站流量。Cloud Next Generation Firewall (Cloud NGFW) 用于控制通过 VPC 网络的流量。额外的安全层通过使用 Secure Web Proxy 提供受控的互联网出站流量,并通过使用 VPC Service Controls 边界提供 API 服务访问权限政策。
本文档的目标受众群体包括构建和管理云 AI 基础设施和应用的架构师、开发者和管理员。本文档假定您对 AI 智能体和模型有基本的了解,并且熟悉 Google Cloud 网络概念。
多智能体设计模式
多智能体 Gemini Enterprise 应用需要一个自定义智能体作为编排器或根智能体,用于连接到工具和子智能体。为了实现与托管在Google Cloud 或本地的工具和子代理的专用连接,该设计使用了具有专用 IP 地址的 VPC 网络。根智能体托管在 Google 的基础架构中,使用 Agent Runtime、Cloud Run 或 GKE。多智能体设计模式重点介绍了以下互动:
- Gemini Enterprise 应用与自定义根智能体交互。Gemini Enterprise 应用提供了一个具有内置安全功能的代管式界面,可公开自定义智能体功能。自定义根代理已在 Gemini Enterprise 中注册,并可在应用中供最终用户使用。自定义根智能体充当顶层工作流编排器,并将专业任务委托给子智能体。此架构使用托管在 Agent Runtime、Cloud Run 或 GKE 上的自定义根智能体。
- 根智能体与子智能体和工具交互。AI 系统工作流和业务逻辑的核心位于根智能体和专用子智能体中。智能体框架、运行时和托管平台的灵活性支持通过 VPC 网络将根智能体连接到子智能体和工具的不同选项。通过为此部分架构使用 VPC 网络,代理可以使用您定义的专用网络路径,这些路径会公开其他专用端点、企业安全控制和更广泛的网络可达性。
该架构包括以下组件:
- Gemini Enterprise 应用:用户访问应用内对话界面并与多智能体 AI 系统交互的前端。用户可以通过公共互联网或通过混合连接以私密方式访问 Gemini Enterprise 应用。
- 自定义代理:使用 Gemini Enterprise 构建和注册,并托管在 Agent Runtime、Cloud Run 或 GKE 上的根代理。这些根智能体充当编排器,负责将任务委派给子智能体。
- VPC 网络:一种由您控制的资源,可为代理提供与专用端点的 IP 网络连接以及更广泛的网络可达性。VPC 网络提供了一个平台,用于为代理向其他代理和工具发出的请求实现专用连接和网络安全控制。
- 子智能体:由根智能体工作流触发的专用智能体。子代理使用 A2A protocol 进行通信,该协议可实现代理之间的互操作性,而无需考虑编程语言和运行时。
- 工具:公开 API、数据源和工作流函数等服务的远程系统。这些工具可为智能体提取数据并执行操作或交易。工具位于智能体外部,智能体通过 MCP 规范与工具连接并交互。
此概要多智能体设计模式重点介绍了多智能体 AI 系统中的网络组件。它可以支持许多不同类型的智能体到智能体路由模式。如需了解其他 AI 系统设计模式,请参阅为您的智能体 AI 系统选择设计模式。
共享 VPC
多代理设计模式使用共享 VPC 来集中管理网络和安全权限及责任。此设计为开发者提供了有助于满足组织安全需求的环境。我们建议您使用共享 VPC 来集中和简化网络和安全配置。
在共享 VPC 架构中,宿主项目包含共享网络资源,包括 VPC 网络、Cloud Router 路由器、子网、防火墙和 Cloud DNS。管理员可以向服务项目授予使用这些资源的权限。服务项目包含代理运行时资源,包括 Agent Runtime、Cloud Run、GKE、Gemini Enterprise 和应用专用负载均衡器。
共享 VPC 在网络和安全管理员角色与 AI 应用开发者角色之间强制执行明确的边界:
- 网络和安全管理员控制核心基础架构,例如 VPC 路由、子网、DNS 对等互连和防火墙政策。
- AI 应用开发者在附加的服务项目中构建智能体,而无需拥有修改底层网络基础设施的权限。
在宿主项目中集中部署网络和安全功能后,您便创建了一个统一的管理点,用于管理代理与代理之间以及代理与服务之间的通信。这种设计简化了在许多不同服务项目中实施安全政策的过程,同时确保了连接的一致性。
您可以使用 Network Connectivity Center (NCC) VPC spoke 将共享 VPC 网络作为工作负载 VPC 网络添加,从而将共享 VPC 网络纳入跨云网络。此实现为共享 VPC 提供了对 NCC hub 路由的完全可达性,以及从其他 spoke 到服务接入点的连接。
从自定义根代理发起的请求使用客户管理的专用 VPC 网络,为子代理、工具和服务提供安全的网络路径。VPC 网络路由控制对专用端点的可达性。应用于 VPC 网络的 Cloud NGFW 政策用于控制网络访问。
代理可以安全地访问专用 VPC 网络路径,包括连接到以下各项:
- 通过 VPC 网络对等互连、多 NIC 设备或 NCC 连接的其他 VPC 网络。
- 用于访问提供方服务的 Private Service Connect 端点。
- 具有专用 IP 地址的托管式服务,例如 Cloud SQL。
- 内部负载均衡器前端和 Compute Engine 资源。
- 通过专用 Google 访问通道或 Private Service Connect 访问 Google API。
- 互联网,通过 Secure Web Proxy 进行控制。
- 使用 Cloud Interconnect、Cloud VPN、路由器设备或 SD-WAN 的混合和跨云目标。
- 可通过 VPC 网络 IP 路由访问的任何端点目标。
- 其他 AI 智能体、工具和支持服务。
如需详细了解共享 VPC,请参阅以下资源:
Gemini Enterprise 联网
Gemini Enterprise 应用是托管资源,在 VPC 网络外部但位于 Google 网络内的托管环境中运行。以下部分介绍了用户与 Gemini Enterprise 应用之间的网络配置,以及应用与代理之间的网络配置。
用户与 Gemini Enterprise 应用对话
用户通过基于浏览器的应用与 Gemini Enterprise 应用对话,该应用会向 Google API 和服务发送请求。如需启用私有用户连接性,您可以将 Google APIs 网址配置为解析为通过 VPC 网络路由的专用 IP 地址范围。如需了解详情,请参阅配置专用界面访问权限。
Gemini Enterprise 应用到自定义智能体
您可以使用 Gemini Enterprise 发现服务注册自定义智能体。注册智能体时,Gemini Enterprise 会将智能体的名称映射到特定目标,即 Agent Runtime 资源 URI 或 A2A 智能体网址。Gemini Enterprise 应用具有内置的对话界面,称为助理。当用户使用 @agent_name 指定代理时,或者当助理决定委托时,应用会在注册表中查找代理,以找到关联的端点。
向 Gemini Enterprise 注册根代理后,您可以将该代理作为自定义代理部署到任何位置。Agent Runtime 和 Cloud Run 上的自定义智能体可以使用现有的专用网络路径,而无需配置其他网络资源。如需在 GKE 上部署自定义智能体,您必须通过外部网关公开服务。如需了解如何将外部 Gateway 配置为更安全,请参阅本文档后面的 GKE 网络。
为了向自定义智能体发出请求,Gemini Enterprise 会使用 Gemini Enterprise Agent Platform Discovery Engine 服务账号身份。网络路径和授权机制因您使用的托管平台而异:
- Agent Runtime 上的自定义代理:Agent Platform Discovery Engine 服务代理包含必要的 Agent Platform Identity and Access Management (IAM) 角色,可作为内置功能调用 Agent Runtime 资源。系统会将向 Agent Platform API 服务发出的请求作为内部 API 调用通过 Google 网络进行路由。
- Cloud Run 上的自定义智能体:Gemini Enterprise 应用使用 Agent Platform Discovery Engine 服务代理身份,向从代理卡片注册的默认
.run.app网址发出调用,并在X-Serverless-Authorization身份验证标头中附加服务代理的 OIDC ID 令牌。为了让 AI 智能体 Cloud Run 服务授权这些调用,您必须向 Discovery Engine Service Agent 授予 Cloud Run Invoker IAM 角色 (roles/run.invoker)。对 Cloud Run 的请求通过 Google 生产网络路由到 Cloud Run 的 Google Front End (GFE) 入站流量。 GKE 上的自定义代理:Gemini Enterprise 应用使用 Agent Platform Discovery Engine 服务代理身份调用从代理卡片注册的网址。公共 DNS 必须能够将主机名解析为由 Gateway 管理的外部 IP 地址。我们建议您使用
gke-l7-regional-external-managed负载均衡器或gke-l7-global-external-managed负载均衡器。为了提高安全性,我们建议 Gemini Enterprise 使用 Identity-Aware Proxy (IAP) 调用 GKE 托管的 A2A 智能体。为了让 IAP 能够授权这些调用,您必须向 Discovery Engine 服务代理授予 IAP-secured Web 应用 User IAM 角色 (roles/iap.httpsResourceAccessor)。Google 生产网络会将对 GKE 的请求路由到 GFE,以实现外部应用负载均衡器入站流量。如需保护 GKE Ingress 免受 Gemini Enterprise 的影响,请参阅本文档后面的 IAP 和 Google Cloud Armor 部分。
智能体托管平台的专用网络
用户向 Gemini Enterprise 应用发起请求后,系统会从自定义根代理向子代理和工具发起请求。自定义代理托管平台提供 Gemini Enterprise 与 VPC 网络之间的接口。容器化智能体和工具的托管平台包括 Agent Runtime、Cloud Run 和 GKE。
选择智能体托管平台时,您需要考虑每个平台的专用网络模式、安全控制措施、管理控制、自定义级别和安全合规性。如需详细了解如何选择 AI 智能体托管平台,请参阅为您的生成式 AI 应用选择模型和基础架构以及选择智能体 AI 架构组件。
您可以通过不同的机制建立专用 VPC 连接,具体取决于您使用的智能体托管平台:
- Agent Runtime 上的自定义智能体:Private Service Connect 接口将 Agent Runtime 运行时连接到 VPC 网络。您在 VPC 网络的子网中创建网络连接,并向 Agent Runtime 授予连接到该子网的权限。从 Agent Runtime 发送的流量会显示在 VPC 网络中,就像它源自连接的子网 IP 地址一样。然后,VPC 网络将流量路由到相应的目标 IP 地址。
- Cloud Run 上的自定义代理:Cloud Run 直接 VPC 出站流量会将 Cloud Run 服务实例连接到 VPC 网络。部署 Cloud Run 服务时指定的 VPC 网络可以来自 Cloud Run 服务项目或其共享 VPC 宿主项目。从 Cloud Run 发送的流量在 VPC 网络中显示为源自直接 VPC 出站流量的子网 IP 地址。 然后,VPC 网络将流量路由到适当的目标 IP 地址。
- GKE 上的自定义代理:GKE 集群直接位于 VPC 网络中,并使用本地子网 IP 地址。默认情况下,GKE 出站流量使用 Pod IP 地址作为源 IP 地址。如果您配置了伪装,则 GKE 出站流量会使用节点 IP 地址作为来源 IP 地址。所有 GKE 出站流量都由 VPC 网络路由。
以下部分提供了有关管理每个代理托管平台的 VPC 网络入站流量和出站流量请求的其他指南。网络注意事项适用于根智能体和子智能体功能。
Agent Runtime 网络
本部分介绍了在 Agent Runtime 上托管的根智能体和子智能体的专用网络。如果您使用 Agent Runtime 托管根智能体,则必须在同一项目中部署 Gemini Enterprise 和 Agent Runtime。
Agent Runtime 在 VPC 网络之外的 Google 基础设施上托管容器。如需启用与其他代理的专用连接,您可以使用以下方法将代理连接到 VPC 网络:
- 如需允许 Agent Runtime 代理流量出站到您的 VPC 网络,请使用 Private Service Connect 接口。
- 如需允许通过 VPC 网络路由的代理流量进入 Agent Runtime 代理,请使用 Google API 的 Private Service Connect 端点。
如需允许您的代理与其他代理之间进行请求,请设置上述两个连接。
Agent Runtime 流向 VPC 网络的出站流量
Agent Runtime 使用 Google 管理的租户项目进行网络出站流量。租户网络为代理提供与 Google API 的连接以及公共互联网出站流量,但默认情况下不会直接连接到客户 VPC 网络。
为了将智能体连接到 VPC 网络内的资源,Agent Runtime 会使用 Private Service Connect 接口。Agent Runtime 会在租户项目中部署一个网络接口,该接口会连接到您项目中的网络连接资源。此连接会在 Agent Runtime 运行时和 VPC 网络之间创建安全的数据路径。在 Agent Runtime 项目中配置 Private Service Connect 接口后,系统会将所有非发往 Google API 的代理流量路由到 VPC 网络。
如需部署 Agent Runtime VPC 网络出站流量,请参阅以下资源:
- 将 Private Service Connect 接口与 Agent Runtime 搭配使用。
- 部署代理:配置 Private Service Connect 接口。
- 为 Agent Platform 资源设置 Private Service Connect 接口:设置专用 DNS 对等互连。
- 部署代理:为显式代理定义环境变量。
如需进一步保护 Agent Runtime 出站流量的代理和 VPC 网络,请参阅本文档后面的以下部分:
- 使用 Cloud NGFW 政策和规则。
- 配置 VPC Service Controls 保护的资源。
- 集成 Model Armor 筛查。
- 为互联网出站流量部署Secure Web Proxy。
来自 VPC 网络的 Agent Runtime 入站流量
对在 Agent Runtime 上运行的智能体的请求是使用 Agent Platform API 端点 (aiplatform.googleapis.com) 发出的。如需使用 VPC 网络中的专用网络路径访问 Google API 端点,请使用专用 Google 访问通道或适用于 Google API 的 Private Service Connect 端点。
向智能体发出查询的私有用户需要将 Agent Platform API 端点主机名解析为专用 Google 访问通道的专用 IP 地址范围,或解析为适用于 Google API 的 Private Service Connect 端点的 IP 地址。googleapis.com 的专用代管式 Cloud DNS 区域可解析对 Agent Platform API 的请求。VPC 网络通过 Google 生产网络直接路由请求。
如果您使用专用 Google 访问通道或适用于 Google API 的 Private Service Connect,则可以使用以下产品和功能来帮助保护从 VPC 网络到 Agent Runtime 的流量:
其他 Agent Runtime 网络注意事项
使用 Private Service Connect 接口的 Agent Runtime 出站流量只能路由到 VPC 网络中的 RFC 1918 IP 地址范围。如需了解 Agent Runtime 出站流量无法路由的特定目标范围,请参阅子网 IP 范围要求。如需访问不可路由的 IP 地址范围目标,请在代理上使用显式代理配置,并部署在 VPC 网络中使用可路由 IP 地址的代理资源。
在不使用 Private Service Connect 接口的情况下部署 Agent Runtime 时,它默认可以访问互联网。为防止数据渗漏,请通过启用 VPC Service Controls 来停用默认访问权限。
如果 Agent Runtime 部署了 Private Service Connect 接口,则无论是否使用 VPC Service Controls,直接互联网出站流量都会被停用。如果您需要让智能体访问 Agent Runtime 通常无法访问的目标位置(例如互联网),请执行以下操作:
- 在 VPC 网络的 RFC 1918 子网中配置 Secure Web Proxy。您必须在显式代理路由模式下配置代理。
- 为 Secure Web Proxy 主机名创建 Cloud DNS 记录。
- 为 Agent Runtime 配置 DNS 对等互连,以支持将智能体 DNS 查询解析为 VPC 网络中 Secure Web Proxy 的专用地址。
- 部署代理时,请执行以下操作:
- 通过指定 Secure Web Proxy 主机名和端口,定义环境变量以使用显式代理。
- 如果您要访问专用目标,请为该目标配置专用 DNS 区域。
Agent Runtime 出站流量到达 VPC 网络后,可以到达 VPC 网络可路由的任何网络目的地。如需了解如何限制 Agent Runtime 代理可用的出站流量网络目标的范围,请参阅本文档后面的 Cloud NGFW 部分。
Cloud Run 网络
本部分介绍了在 Cloud Run 上托管的根代理和子代理的专用网络。Cloud Run 在 VPC 网络之外的 Google 基础设施上托管容器。如需启用与其他代理的专用连接,您可以使用以下方法将代理连接到 VPC 网络:
- 如需允许 Cloud Run 代理流量出站到 VPC 网络,请使用直接 VPC 出站流量。
- 如需允许通过 VPC 网络路由的智能体流量进入 Cloud Run 智能体,请使用适用于 Google API 的 Private Service Connect 端点。
如需允许您的代理与其他代理之间进行请求,请设置上述两个连接。
Cloud Run 到 VPC 网络的出站流量
如需启动与 VPC 网络的 Cloud Run 连接,我们建议您使用直接 VPC 出站流量。借助直接 VPC 出站流量,Cloud Run 实例可以使用您在部署直接 VPC 出站流量时指定的子网中的 IP 地址直接连接到共享 VPC 网络。
配置直接 VPC 出站流量时,请执行以下操作:
- 配置启用了专用 Google 访问通道的目标子网。
- 配置流量路由,以将所有流量路由到 VPC 网络。
此配置会通过 VPC 网络发送所有流量以保护隐私,并通过 Google 内部网络将请求从 Cloud Run 发送到其他 Google API。
来自 Cloud Run 的所有 DNS 查询都使用与 VPC 网络关联的 Cloud DNS 政策和区域。无需进行其他 DNS 对等互连配置。 托管在 Cloud Run 上的代理会解析所有 Cloud DNS 专用区域和公共主机名。
如需了解如何进一步保护代理和 VPC 网络以实现 Cloud Run 出站流量,请参阅本文档后面的以下部分:
- 使用 Cloud NGFW 政策和规则。
- 配置 VPC Service Controls 保护的资源。
- 集成 Model Armor 筛查。
- 为互联网出站流量部署Secure Web Proxy。
来自 VPC 网络的 Cloud Run 入站流量
Cloud Run 是一个由 Google 管理的平台,在 VPC 网络之外的环境中运行。此环境托管运行 AI 智能体或工具工作负载的 Cloud Run 服务的稳定 *.run.app 网址端点。这些端点由为 *.googleapis.com API 服务提供服务的同一 GFE 入口点提供服务。Cloud Run 使用相同的底层网络路径,为专用 Google 访问通道和适用于 Google API 的 Private Service Connect 启用专用连接。
VPC 网络上向智能体或工具发出查询的私有用户需要将 run.app 主机名解析为专用 Google 访问通道的专用 IP 地址范围,或解析为 Google API 的 Private Service Connect 端点的 IP 地址。run.app 网址的专用托管式 Cloud DNS 区域会解析对 Cloud Run 服务的请求。VPC 网络通过 Google 生产网络直接路由请求。
将 Cloud Run 入站流量设置为内部,通过仅允许来自经过验证的内部来源的请求来限制对服务的访问。获批的来源包括:
- Cloud Run 服务项目的 VPC 网络。
- 托管直接 VPC 出站流量端点的共享 VPC 网络。
- 位于同一 VPC Service Controls 边界内的资源。
- VPC 网络中的内部应用负载均衡器。
- 服务项目或 VPC Service Controls 边界内的 Google 服务,例如 Cloud Scheduler 和 Pub/Sub。
如果您不使用通用 VPC Service Controls 边界来涵盖调用服务和被调用服务,则来自 Cloud Run 服务项目或共享 VPC 环境外部的流量会被视为外部流量。此类流量包括来自其他 Google Cloud服务(例如 Agent Runtime 和其他 Cloud Run 服务)的流量。为满足 Cloud Run 内部入站流量检查的要求,必须以看起来源自目标服务的 VPC 网络的方式路由此流量。
如需提供必要的内部网络归因,您可以执行以下任一操作:
- 使用 Private Service Connect 端点,允许其他 VPC 或项目中的服务通过 VPC 网络中的专用 IP 地址连接到 Google API 和服务,包括您的 Cloud Run 服务。
- 通过放置在 VPC 网络中 Cloud Run 服务前面的内部应用负载均衡器路由流量。负载均衡器通过 VPC 网络汇集来自其他服务的请求,以便这些请求满足内部入站流量条件。
具有无服务器网络端点组 (NEG) 后端的内部应用负载均衡器会创建一个直接映射到 Cloud Run 服务的 VPC 资源。在此模型中,负载均衡器使用可信证书终止客户端 TLS 连接。内部应用负载均衡器支持其他安全控制,包括 Cloud Armor 后端安全政策和其他授权政策。
默认情况下,访问所有 Cloud Run 服务都需要进行 IAM 身份验证。我们建议您为每项服务使用一个身份,并向主账号授予 Cloud Run Invoker IAM 角色 (roles/run.invoker)。
如需了解如何配置 Cloud Run 入站流量控制,请参阅以下资源:
如果您使用专用 Google 访问通道或适用于 Google API 的 Private Service Connect 端点将流量从 VPC 网络发送到 Cloud Run,则可以使用以下产品和功能来帮助保护该流量:
如果您使用内部应用负载均衡器将流量从 VPC 网络发送到 Cloud Run,则可以使用以下产品和功能来帮助保护该流量:
- Cloud Run 入站流量控制
- Cloud Run 身份验证
- VPC Service Controls
- Model Armor
- 负载均衡器证书验证
- Cloud Armor 后端安全政策
- 负载均衡器授权政策
GKE 网络
本部分介绍了基于 GKE 的代理的网络。
GKE 和 Gemini Enterprise
作为 AI 智能体和工具的托管平台,GKE 提供了一个高度可定制的网络和安全控制平台。在 GKE 上部署的多智能体 AI 系统可以大规模提高运营效率。它可以与其他 Kubernetes 应用和更大的微服务架构紧密集成。
GKE 集群是在 VPC 网络的子网中运行的 Compute Engine 虚拟机节点。Gemini Enterprise 应用是在 VPC 网络外部的托管环境中运行的代管式资源。如需使 Gemini Enterprise 应用能够调用托管在 GKE 上的自定义代理,您必须安全地公开具有公共 IP 地址和 DNS 名称的外部网关。流量从 Gemini Enterprise 出站流向 Google 边缘网络,然后通过优化路线流向 GKE 外部负载均衡器。
请务必使用强身份验证和授权、Cloud Armor 以及有限权限来保护 GKE 端点。为了提供全面的纵深防御模型来保护在 GKE 上运行的 AI 智能体,请考虑以下部分中介绍的安全控制措施。
GKE 操作模式
GKE 提供以下操作模式,以平衡管理和控制:
- Autopilot:Google 会自动管理整个 GKE 集群基础设施,包括控制平面、节点预配、安全强化和伸缩。
- Standard:Google 管理控制平面。您仍需对节点池配置承担全部责任,例如选择机器类型、管理操作系统映像和手动伸缩。
基础架构和控制平面安全强化
- 专用 GKE 集群:预配没有公共 IP 地址的节点,以确保运行时环境与互联网直接隔离。
- 主实例授权网络:将对 Kubernetes API 的管理员权限权限限制为特定的可信 IP 地址范围,从而强化控制平面,防止未经授权的配置更改。使用 Google Cloud的 IAM 和 VPC Service Controls 保护 Kubernetes API 的 DNS 端点。
身份和访问权限(零信任)
- IAP:在负载均衡器级别充当守门人。它可确保只有拥有正确 IAM 权限且经过身份验证的用户才能访问代理端点。这种方法有效地将安全边界从网络转移到个人用户及其设备上下文。
边缘保护和流量管理
- Cloud Armor:提供强大的边缘安全性,包括有助于阻止恶意载荷的 Web 应用防火墙 (WAF) 规则、有助于确保正常运行时间的 DDoS 攻击防护,以及有助于防止服务耗尽的速率限制。
- Model Armor:Model Armor 专为 LLM 安全而设计,可实时检查和清理提示词和回答,以防止提示词注入和数据渗漏。
内部网络隔离
- Kubernetes 网络政策:在微服务之间强制执行精细的最小权限通信。默认情况下,除非您明确允许,否则政策会拒绝所有流量,从而防止集群内的横向移动。
GKE 流向 VPC 网络的出站流量
VPC 网络会路由来自 GKE 上托管的代理的出站连接。默认的 GKE 集群网络模式为 VPC 原生,具有以下属性:
- GKE 集群使用别名 IP 地址范围。
- Pod IP 地址通过指定 Pod IP 范围进行预留。
- Pod IP 地址可在集群 VPC 网络和其他连接的 VPC 网络中进行原生路由。
如果代理 Pod 与同一节点中的子代理 Pod 通信,则流量会在节点网络命名空间内本地路由。如果目标代理 Pod 位于集群内的其他节点上,则系统会使用 VPC 网络路由表路由流量。为了让代理 Pod 与其他 VPC 资源(例如负载均衡器或 Private Service Connect 端点)通信,它可以使用相同的标准 VPC 路由到达目的地,但须遵守防火墙规则。
您可以使用以下产品和服务来帮助保护离开 GKE 集群的流量:
来自 VPC 网络的 GKE 入站流量
Kubernetes Service 提供对 GKE 资源的访问权限。对于多智能体 AI 系统,我们建议您使用 GKE Gateway 或 GKE Inference Gateway。Gateway 通过流量控制、资源的操作分离和安全集成提供增强的功能。不过,您可以根据系统要求选择其他入站流量服务选项。
Gateway 资源会创建一个应用负载均衡器,并预配所有必要的负载均衡组件。服务的后端网络端点组经过连接,可直接为容器提供负载均衡。如需在内部公开服务以处理来自 VPC 网络的流量,请使用区域级内部应用负载均衡器 (gke-l7-rilb) 或跨区域内部应用负载均衡器 (gke-l7-cross-regional-internal-managed-mc) 的 Gateway 类。
应用负载均衡器提供额外的安全控制点,用于保护 GKE 集群上托管的 AI 智能体和工具:
- Cloud Armor:通过将 Cloud Armor 安全政策附加到由 Gateway 管理的后端服务来保护服务。它在流量到达 GKE 集群或 IAP 之前提供 WAF 筛选、基于 IP 地址和地理位置的过滤、DDoS 攻击防护和速率限制。
- IAP:在后端服务上启用,以使用 IAM 凭据控制对应用的访问权限,IAP 会强制执行零信任访问权限政策。IAP 会对访问集群资源的 AI 智能体进行身份验证和授权,包括 Gemini Enterprise 应用、自定义智能体和外部资源。它要求调用方具有由 IAM 验证的身份,并具有访问后端服务的授权。
如果您通过 Gateway 将流量从 VPC 网络发送到 GKE 服务,则可以使用以下产品和功能来帮助保护该流量:
如果您不使用 Gateway 将流量从 VPC 网络发送到 GKE 服务,则可以使用以下产品和服务来帮助保护该流量:
如需详细了解如何保护 GKE,请参阅网络安全最佳实践和了解 GKE 中的网络安全。
代理网络安全
为了保护多智能体 AI 系统的网络,您必须确保通过 VPC 网络和 API 接口进行的通信安全。VPC 网络数据平面解决了智能体和工具如何安全连接的问题。API 接口定义了允许哪些身份和数据交换类型。在 VPC 网络和 API 层面分层实施访问权限控制,有助于建立高度受控且具有弹性的安全状况。
Cloud NGFW
Cloud NGFW 充当网络级守门人,可确保 A2A 和 MCP 通信的安全。该防火墙会验证与其他智能体和工具之间的每个传入或传出连接,确保只有经过授权的流量才能到达智能体端点。
Cloud NGFW 是内置于 VPC 网络结构中的分布式防火墙服务。它提供以下功能层级,这些层级在网络栈的不同层运行:
- Cloud Next Generation Firewall Essentials:提供有状态防火墙数据包过滤功能。政策规则是根据 IP 地址 (L3)、协议和端口 (L4) 定义的。
- Cloud Next Generation Firewall 标准版:提供基于 IP 的强制执行,使用完全限定域名 (FQDN) 对象、地理位置对象和 Google Threat Intelligence 中的 Feed 来屏蔽已知的恶意地址。
- Cloud Next Generation Firewall 企业版:提供真正的应用 (L7) 检查功能,以及 TLS 解密和入侵检测与防御系统 (IDPS) 功能,可根据高级威胁签名分析载荷。
您可以在 VPC 网络上应用 Cloud NGFW,以根据定位到您所使用的代理托管平台所需的规则来强制执行防火墙政策。
- Agent Runtime:在 Agent Runtime 中运行的智能体使用 Private Service Connect 网络连接来连接到 VPC 网络。这些连接使代理网络接口显示在 VPC 网络的子网中。Cloud NGFW 网络防火墙政策应用于 VPC 网络。这些政策会根据来自专用于 Private Service Connect 网络连接的子网的来源 IP 地址过滤流量。对于流量匹配,您可以使用来源 IP 地址和目标 IP 地址范围。
- Cloud Run:使用直接 VPC 出站流量的 Cloud Run 服务直接从在 VPC 网络中指定的子网内运行的实例发送流量。Cloud NGFW 网络防火墙政策适用于 Cloud Run 用于过滤流量的子网。对于流量匹配,您可以使用来源 IP 地址和目标 IP 地址范围。
- GKE:VPC 原生 GKE 集群为 Pod 提供的 IP 地址直接来自 VPC 网络次要 IP 地址范围。网络防火墙政策可以根据 GKE 节点和 Pod 的 IP 地址范围过滤流量,并且这些政策可以使用安全标记和服务账号。安全标记会绑定到充当 GKE 节点的虚拟机实例。然后,防火墙规则可以定位具有特定标记的节点,或将这些节点作为流量来源。防火墙规则还可以根据与节点池关联的服务账号身份,定位来自 GKE 节点的流量或将 GKE 节点作为流量来源。
默认拒绝出站流量政策
实施默认拒绝策略是一项遵循最小权限原则的安全最佳实践。此策略可确保仅允许明确允许的网络流量,而默认情况下会阻止所有其他流量。此实现是通过构建防火墙规则来实现的,其中包含针对已知合法流量的高优先级 ALLOW 规则和低优先级、包罗万象的 DENY 规则。所有层级的 Cloud NGFW 都允许基于来源和目标 IP 地址范围的规则。
防火墙政策规则可以有效匹配来自 Agent Runtime 网络连接子网和 Cloud Run 直接 VPC 出站流量子网的来源流量。
以下是默认拒绝出站流量政策的示例:
- 创建网络防火墙政策和规则:创建全球或区域级防火墙政策,并将其与 VPC 网络相关联。根据来源 IP 地址范围 (
--src-ip-ranges=SRC_IP_RANGES) 和目标 IP 地址范围 (--dest-ip-ranges=DEST_IP_RANGES),创建针对出站方向 (--direction=EGRESS) 流量的防火墙政策规则。 - 特定
ALLOW规则:使用较小的优先级数字,例如 100-1000。这些规则可精确允许 AI 智能体运行所需的网络流量。此流量包括与其他内部服务、负载均衡器、必需的 Google API 或合法外部端点的通信。创建一条规则,将来自 Agent Runtime 网络连接子网或 Cloud Run 直接 VPC 出站流量子网的来源流量与所需目的地进行匹配。 - 常规
DENY规则:为确保规则在评估顺序中排在最后,请使用最高优先级数字,例如 2147483647。此规则会拒绝流向与上述任何ALLOW规则都不匹配的任何目的地 (--dest-ip-ranges=0.0.0.0/0) 的流量。
默认拒绝出站流量政策可防止 AI 智能体建立任何未经明确授权的网络连接,并阻止潜在的数据渗漏或对恶意网站的访问。该政策限制托管代理只能与获批的端点通信,这对于保持对自主工作负载的控制至关重要。
其他 Cloud NGFW 政策注意事项
除了所有 Cloud NGFW 层级都提供的默认拒绝策略之外,您还可以使用付费层级功能进一步强化多智能体 AI 网络安全:
- Cloud NGFW 标准版功能:
- 适用于动态端点的 FQDN 对象:AI 智能体经常与外部 API、模型端点或数据源交互,这些端点或数据源的 IP 地址可能会发生变化。如需通过域名稳定访问所需服务,请在
ALLOW规则中使用 FQDN 对象。 - 地理位置控制:如果 AI 智能体有合规性要求,或者不应与特定地理区域中的服务进行交互,请在防火墙规则中使用地理位置对象 (
--src-region-codes=SRC_COUNTRY_CODES),以限制进出这些位置的流量。 - Google Threat Intelligence:在出站流量过滤条件中使用 Google Threat Intelligence,自动阻止智能体连接到已知的恶意目标,例如命令与控制 (C2) 服务器、Tor 等匿名器以及恶意软件分发网站。使用 Google Threat Intelligence 有助于控制可能遭到入侵的代理的影响。我们建议您在优先级编号较高(评估顺序较低)的
DENY规则中添加这些目标过滤条件。
- 适用于动态端点的 FQDN 对象:AI 智能体经常与外部 API、模型端点或数据源交互,这些端点或数据源的 IP 地址可能会发生变化。如需通过域名稳定访问所需服务,请在
- Cloud NGFW Enterprise 功能:
- 第 7 层检查:对于处理敏感数据或面临更高风险的代理,请检查数据包载荷是否存在恶意软件、间谍软件和漏洞利用等威胁,这些威胁不会由网络层防火墙规则进行分析。
- TLS 检查:如需允许检查引擎分析加密流量,请启用 TLS 检查。使用 TLS 检查至关重要,因为大多数现代攻击和 C2 通信都是加密的。
如需了解可能适用于您的环境的其他实现注意事项或限制,请参阅以下资源:
IAP
IAP 为 AI 应用提供中央身份验证和授权层,从而保护对 GKE 集群的入站流量请求。IAP 会拦截发往网关的所有 HTTPS 请求,并检查调用方的身份和权限。IAP 仅允许经过身份验证和授权的请求传递到后端服务工作负载。Gateway 负载均衡器上的 IAP 仅保护来自集群外部的流量。集群内的通信不会通过 IAP。
如需访问托管在 GKE 上且受 IAP 保护的 AI 应用,必须向主体用户身份授予受 IAP 保护的后端服务资源上的 IAP-secured Web 应用 User IAM 角色 (roles/iap.httpsResourceAccessor)。我们建议您将自定义服务账号配置为已部署代理的身份。使用自定义服务账号可让您根据最小权限原则更精确地分配权限。
仅向有权访问其他代理和工具的服务账号直接授予受 IAP 保护的 Web 应用 User IAM 角色,这些代理和工具托管在 GCPBackendPolicy(或 BackendConfig,对于 Ingress)自定义资源所定位的 GKE 服务上。如需允许 Gemini Enterprise 应用访问,请为 Gemini Enterprise 项目绑定 IAM 角色 Discovery Engine Service Account (roles/discoveryengine.serviceAgent) 以授予权限。
VPC Service Controls
VPC Service Controls 通过严格控制对 Google API 的访问来降低数据渗漏风险。我们建议您部署一个包含所有受支持服务的宏边界。这种方法可提供最强大的防渗漏保护。为确保共享 VPC 架构的一致政策执行,必须将宿主项目和所有关联的服务项目包含在同一服务边界内。
为了确保 Gemini Enterprise 与 Cloud Run 之间跨项目边界的交互安全,请考虑以下建议:
- 部署一个同时涵盖 Gemini Enterprise 和 Cloud Run 项目的 VPC Service Controls 边界。
- 将所有受支持的 VPC Service Controls 服务添加到受限服务列表中。这种方法有助于防止未经授权的管理更改。
- 强制执行内部入站流量和授权设置,以阻止对 Cloud Run 服务的所有公共互联网访问。
Cloud Run 服务受 IAM 保护。调用方必须经过身份验证,并且必须对目标服务具有 Cloud Run Invoker IAM 角色 (roles/run.invoker)。系统会通过验证 Authorization 标头(或当 Gemini Enterprise 调用默认 .run.app 网址时,验证 X-Serverless-Authorization 标头)中的令牌来检查角色。如需成功调用 Cloud Run 服务,还必须向服务账号(例如 Gemini Enterprise 使用的服务账号)授予 Cloud Run Invoker 角色。
在不同项目中部署 Gemini Enterprise 和 Cloud Run 时,需要使用 VPC Service Controls 边界,才能将 Cloud Run 入站流量设置为“内部”。如果没有此边界,来自 Gemini Enterprise 的跨项目调用会被视为外部流量,这会强制您将 Cloud Run 入站流量设置为“全部”,从而使服务暴露在公共互联网中。
- 如果以下两个条件均为 true,则支持 Cloud Run 入站流量
all:- 未启用 VPC Service Controls。
- Cloud Run 和 Gemini Enterprise 不在同一项目中。
- 对于所有其他配置,仅支持 Cloud Run 入站流量
internal。
其他 VPC Service Controls 注意事项
在 VPC Service Controls 边界内部署 Cloud Run 时,我们建议您实施以下政策护栏,以帮助确保全面保护:
- 限制允许的入站流量设置:通过设置
run.allowedIngress组织政策限制条件,防止开发者意外部署面向公众的端点。此限制条件仅适用于新部署。之前的部署可能不合规。我们建议您审核边界内的所有现有 Cloud Run 服务,并重新部署或更新不符合所需入站流量和出站流量设置的所有服务。- 如需仅允许内部请求,请将值设置为
internal。 - 如需允许通过外部应用负载均衡器发送请求,请将值设置为
internal-and-cloud-load-balancing。
- 如需仅允许内部请求,请将值设置为
- 限制允许的 VPC 出站流量设置:如需通过 VPC 路由所有出站请求,以便边界防火墙规则可以检查这些请求,请将
run.allowedVPCEgress组织政策限制条件值设置为all-traffic。此设置要求每个 Cloud Run 修订版本都使用直接 VPC 出站流量或无服务器 VPC 访问通道连接器。此限制条件仅适用于新部署。之前的部署可能不合规。我们建议您审核边界内的所有现有 Cloud Run 服务,并重新部署或更新不符合所需入站流量和出站流量设置的所有服务。 - 将容器映像和服务放在同一位置:包含容器映像的 Artifact Registry 代码库必须与 Cloud Run 服务位于同一边界内。除非您建立明确的入站流量和出站流量规则,否则系统会自动阻止跨边界映像拉取。
- 管理访问权限级别:Cloud Run 调用不支持依赖于 IAM 主账号身份的 VPC Service Controls 入站流量政策规则和访问权限级别。您必须改为使用基于网络的条件或基于设备的访问权限级别来管理访问权限。
Model Armor
Model Armor 是一项基于 API 的服务,可为 AI 应用提供增强的安全性和保障性。AI 智能体与 Model Armor 交互的方式是:在用户提示发送到 LLM 之前,调用 Model Armor 对其进行清理;在模型回答返回给用户之前,调用 Model Armor 对其进行清理。Model Armor 会主动过滤 LLM 提示和回答,这为检测新出现的风险提供了重要的检查点,并为实施 Responsible AI 标准提供了控制点。我们建议您使用 Model Armor,以确保遵守数据驻留要求和数据主权法律法规。如需在 VPC Service Controls 边界内使用 Model Armor,您需要在 VPC 网络中为 Model Armor 区域端点配置 Private Service Connect 端点。
Model Armor 是一项区域级服务,可通过 VPC 网络中的区域级 Private Service Connect 端点进行私密访问。例如,通过使用区域端点 modelarmor.us-central1.rep.googleapis.com 来调用 us-central1 服务。区域端点有助于确保数据驻留。
如需为代理启用访问权限,请在需要 Model Armor 服务的每个区域中配置以下组件:
- 在 Model Armor 服务所在的 VPC 网络区域中创建或标识 RFC 1918 子网。
- 在 RFC 1918 子网中创建区域级端点。
- 创建一个 Cloud DNS 专用区域,并为 Model Armor 区域端点主机名(例如
modelarmor.us-central1.rep.googleapis.com)创建一条记录,该记录会解析为区域端点的 IP 地址。 - 为了实现 Agent Runtime 互操作性,请建立从 Agent Runtime 到与 VPC 网络关联的 Cloud DNS 专用区域的 DNS 对等互连。当代理向 Model Armor 发出请求时,Cloud DNS 会将主机名请求进行 DNS 解析,解析为 VPC 网络中 Private Service Connect 区域端点的 IP 地址。对于在 Cloud Run 和 GKE 中托管的代理,无需执行此步骤。
如需将 Gemini Enterprise 与 Model Armor 集成,请在 Gemini Enterprise 所在的同一项目中创建 Model Armor 模板。模板的位置必须与 Gemini Enterprise 应用的位置相同。
如需详细了解如何启用 Model Armor,请参阅以下资源:
- Model Armor 与 Gemini Enterprise 集成
- 在 Gemini Enterprise 中启用 Model Armor
- 受支持的国家/地区中受支持的 Google API
- Model Armor 与 Google Cloud 服务的集成
- 数据驻留和端点
Cloud Armor
Cloud Armor 是一项分布式网络安全服务,可在请求到达后端服务运行时之前,保护负载均衡器后端的应用和服务。AI 智能体工作负载涉及大量使用 A2A、MCP 和 API 调用的服务间通信。Cloud Armor 保护功能通过速率限制、WAF 筛选和符合预期智能体请求的自定义规则,在安全设计中提供了额外的弹性层。通过将 Cloud Armor 安全政策附加到应用负载均衡器后端服务,可以过滤流量中的恶意请求,并使用速率限制进行监管,从而缓解 DDoS 攻击。
在以下场景中,Cloud Armor 可以部署在代理网络架构中:
- 具有内部应用负载均衡器的 Cloud Run:通过将内部应用负载均衡器与无服务器 NEG 后端搭配使用,保护在 Cloud Run 上运行的智能体和工具。将后端安全政策应用于无服务器 NEG,以针对内部流量和速率限制强制执行 WAF 规则。如需控制代理通信,您可以根据 IP 地址和标头定义其他自定义规则。
- Gateway:通过为具有可用区级 NEG 后端的全球或区域级外部应用负载均衡器使用 Gateway 资源定义,保护在 GKE 上运行的智能体和工具。使用 Kubernetes Gateway API 应用具有定义的 Cloud Armor 安全政策的
GCPBackendPolicy资源。如果您使用区域级外部应用负载均衡器,Cloud Armor 支持具有 WAF 规则、IP 地址和基于地理位置的控制以及速率限制的后端安全政策。全球外部应用负载均衡器支持后端安全政策以及其他边缘安全政策,并提供 Google Cloud Armor 自适应保护和 Google Threat Intelligence。
Secure Web Proxy
Secure Web Proxy 是一种区域级代管式服务,部署在 VPC 网络中,用于过滤源自 VPC 网络或任何连接的网络中的 HTTP/S 流量。它充当集中式代理和安全强制执行点,可对出站互联网流量提供精细控制和可见性。它还充当内部服务通信的显式代理。
Secure Web Proxy 支持三种部署模式:显式代理路由模式、Private Service Connect 服务连接模式和下一跃点模式。我们建议您在显式代理路由模式下使用 Secure Web Proxy,这也是本文档的重点。在此模式下,必须将 HTTP 客户端显式配置为直接指向 Secure Web Proxy IP 地址或主机名。
如需在 VPC 网络中部署 Secure Web Proxy,您必须配置前端子网和代理专用子网。Secure Web Proxy 是一项全代管式服务。部署 Secure Web Proxy 后,它会自动在 VPC 网络中部署和配置 Cloud Router 路由器和 Cloud NAT,以便与代理资源进行特定集成。此配置要求任何出站请求都必须先通过 Secure Web Proxy,然后才能流向互联网。
将 Secure Web Proxy 用作显式代理可支持来自 Agent Runtime Private Service Connect 接口、Cloud Run 直接 VPC 出站流量和 VPC 原生 GKE 集群的智能体请求。当代理使用 HTTP CONNECT 方法向 Secure Web Proxy 发送请求时,TCP 会话流量会通过隧道传输到应用安全政策规则的代理。如果流量被允许,Secure Web Proxy 会将流量发送到受控的互联网出站流量或 VPC 网络可路由的专用网络目的地。
显式代理路由
Agent Runtime 出站流量要求您使用显式代理配置,以便代理能够访问 VPC 网络中的互联网目标或不可路由的 IP 地址范围。为了实现 Agent Runtime 互操作性,我们建议您使用 VPC 网络中前端子网的 RFC 1918 IP 地址配置 Secure Web Proxy 资源。通过此配置,Secure Web Proxy 可直接从 Agent Runtime 访问。然后,它可以将任何连接代理到 VPC 网络或连接网络中不可路由的 IP 地址目标。
如需支持代理托管平台在显式路由模式下使用 Secure Web Proxy,请配置以下网络资源:
- 在 VPC 网络中创建或标识 RFC 1918 子网,以托管 Secure Web Proxy 资源。
- 为 Secure Web Proxy 主机名(例如
swp.example.com)创建 Cloud DNS 记录,该记录会解析为 Secure Web Proxy 资源的 IP 地址。 - 为了实现 Agent Runtime 互操作性,请建立从 Agent Runtime 到与 VPC 网络关联的 Cloud DNS 专用区域的 DNS 对等互连。当代理向 Secure Web Proxy 发出请求时,Cloud DNS 会将主机名请求解析为 VPC 网络中 Secure Web Proxy 资源的 IP 地址。对于在 Cloud Run 和 GKE 中托管的代理,无需执行此步骤。
代理代理设置
将代理应用配置为使用 HTTP(S) 代理的标准方法是设置以下环境变量:
HTTP_PROXY:HTTP 流量的显式代理服务器的网址(例如http://swp.example.com:8888)。此设置使用从客户端到代理的 HTTPCONNECT方法。即使指定了 HTTP,TLS 加密也会通过代理从 Agent Runtime 到目标端点端到端地维护。HTTPS_PROXY:HTTPS 流量的显式代理服务器的网址(例如https://swp.example.com:8888)。与HTTP_PROXY设置一样,HTTPS_PROXY设置默认使用 TLS。不过,您可以在默认 TLS 的基础上启用自己的 TLS 加密,从而提供额外的加密层。如需了解详情,请参阅 Certificate Authority Service。NO_PROXY:不应通过代理的主机名或 IP 地址的逗号分隔列表。例如,如果您将metadata.google.internal和169.254.169.254添加到NO_PROXY列表,则工作负载可以直接访问元数据服务,以对 Google API 和服务进行身份验证和授权。
在部署期间使用 env_vars 参数设置变量后,这些变量便可在 Agent Runtime 环境中使用(例如,在 Python 中使用 os.environ 时)。大多数标准 HTTP 客户端库会自动发现并使用这些环境变量,以通过指定的代理路由流量。这种方法在 Python 应用和 HTTP 客户端库(例如 requests)中很常见。部署代理时,请定义环境变量,以便为代理需要访问的任何私有网域使用 Secure Web Proxy。确保 Cloud DNS 中也包含所有私有网域目标。
以下示例展示了从智能体对象部署 Agent Runtime 代理:
import agentplatform
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION",
)
## specify environment variables (dictionary)
env_vars = {
"OTHER_VARIABLE": "OTHER_VALUE",
"HTTP_PROXY": "http://swp.example.com:8888",
"HTTPS_PROXY": "http://swp.example.com:8888",
"NO_PROXY": "localhost,127.0.0.1,metadata.google.internal,169.254.169.254,.googleapis.com,run.app,.gcr.io,.pkg.dev,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.internal"
}
remote_agent = client.runtimes.create(
agent=local_agent,
config={
"display_name": "Example agent using proxy",
"env_vars": env_vars,
## ... other configs
},
)
Cloud Run 支持在服务修订版本级别设置环境变量。此方法会覆盖容器映像中设置的任何同名环境变量。此方法对于在服务实例启动时设置代理变量等操作参数非常有用。
以下示例展示了在部署 Cloud Run 服务时用于设置环境变量的命令:
gcloud run deploy SERVICE_NAME \
--image=IMAGE_URL \
--set-env-vars="HTTP_PROXY=http://swp.example.com:8888,HTTPS_PROXY=http://swp.example.com:8888,NO_PROXY=localhost,127.0.0.1,metadata.google.internal,169.254.169.254,.googleapis.com,run.app,.gcr.io,.pkg.dev,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.internal"
如需在 GKE Pod 中实现显式代理配置,请定义一个指定代理变量的 ConfigMap 资源:
apiVersion: v1
kind: ConfigMap
metadata:
name: agent-proxy-config
namespace: ai-apps
data:
HTTP_PROXY: "http://swp.example.com:8888"
HTTPS_PROXY: "http://swp.example.com:8888"
NO_PROXY: "localhost,127.0.0.1,metadata.google.internal,169.254.169.254,.googleapis.com,run.app,.gcr.io,.pkg.dev,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.internal"
如需将 ConfigMap 键应用于 Pod,请使用容器清单中的 envFrom 字段。此规范会在运行时将环境变量注入容器。
apiVersion: apps/v1
kind: Deployment
metadata:
name: subagent-app
spec:
template:
spec:
containers:
- name: my-container
image: my-agent-app:latest
envFrom:
- configMapRef:
name: agent-proxy-config
CA Service
为 TLS 检查配置 Secure Web Proxy 或 Cloud NGFW 时,需要使用 CA Service。启用 TLS 检查且工作负载的目标使用 TLS 时,CA Service 会为该目标创建并签署证书。当发往真实目的地的加密流量到达 Secure Web Proxy 或 Cloud NGFW 时,它会解密数据包、检查数据包,然后强制执行政策。如果政策允许该数据包,服务会针对最终目的地重新加密该数据包。您还可以使用 CA Service 为其他 Google 托管式服务提供证书。
CA Service 是一项代管式服务。配置 CA Service 后,它会处理叶证书签名,直到根 CA 证书过期。根 CA 证书必须更新,以确保其不会过期。
CA Service 支持以下功能,以便在多智能体 AI 架构中实现大规模流量检查和证书管理:
TLS 检查:必须使用私有 CA 才能进行完整的 TLS 检查。为了完全解密和分析 HTTPS 载荷,中间代理设备(Secure Web Proxy 或 Cloud NGFW)需要终止与客户端的 TLS 会话。代理必须提供一个有效证书,该证书应被客户端接受为所请求网域的受信任证书。
CA Service 可以为请求的网站动态生成和签署特定于网站的模拟证书。当客户端在其受信任证书存储区中安装了私有根 CA 证书后,它会接受此动态创建的证书作为有效证书。客户端信任代理发送的证书,因此会发送请求。代理会终止 TLS 会话、解密数据包、检查内容,然后强制执行政策。
证书分发:在 Agent Runtime、Cloud Run 或 GKE 上运行的 AI 智能体等内部客户端资源需要将私有根 CA 证书添加到其本地受信任证书存储区。通过将根 CA 证书公钥存储在 Secret Manager 中,AI 智能体可以在启动时拉取证书并将其添加到其系统受信任证书存储区。
内部服务器资源(如内部应用负载均衡器)需要由私有 CA 颁发的证书,以充当可信服务器端点并终止客户端 TLS 会话。应用负载均衡器与 Certificate Manager 颁发配置集成,可自动执行 CA Service 对证书请求进行签名并将其部署到负载均衡器的过程。
如需详细了解证书操作,请参阅以下资源:
- Cloud Run:为服务配置 Secret
- GKE:使用私有 CA 证书访问私有注册表
- Secure Web Proxy:启用 TLS 检查
- Cloud NGFW:TLS 检查概览
A2A 连接安全性
根智能体与部署在各种运行时托管平台上的各种子智能体和 MCP 服务器进行通信。每个环境都会引入独特的网络和安全要求,这些要求必须由 A2A 或 MCP 层进行抽象。
下图展示了本设计指南支持的组件和可能的连接路径:
上图总结了这些连接可能性:
- 用户通过 Gemini Enterprise 应用与智能体系统进行互动。
- Gemini Enterprise 应用使用 Google 基础设施连接到在 GKE、Cloud Run 或 Agent Runtime 中运行的根智能体。
- Gemini Enterprise 应用和根智能体使用 Google 基础设施连接到 Model Armor 和 Agent Platform 上的 Gemini LLM。
- 根智能体可以使用 Google 基础架构连接到在 Cloud Run 或 Agent Runtime 中运行的子智能体。
- 根代理可以使用专用 IP 地址连接到在 Agent Runtime、Cloud Run 和 GKE 中运行的子代理。这些连接必须通过 VPC 网络进行路由。
- 根代理和子代理都可以连接到在 Cloud Run 或 GKE 上运行的 MCP 服务器。连接到 MCP 服务器的智能体可以使用 Google 基础设施或 VPC 网络。MCP 服务器提供对托管在Google Cloud、本地、其他云或互联网中的工具的访问权限。
- 托管在互联网上的服务可以通过 Secure Web Proxy 直接访问。
以下部分提供了安全 A2A 交互所需的运行时数据路径和安全控制措施的相关资源。这些信息可作为架构标准,用于建立专用连接并实施多层防御,从而保护代理之间的端到端数据路径。
GKE 来源代理
下表提供了相关资源,可帮助您在 GKE 作为来源代理时保护流量。此流量通过托管 GKE 集群的 VPC 网络传输。
| 目标代理(数据路径) | 安全控制 |
|---|---|
| Agent Runtime(内部) | |
| Cloud Run(内部) | |
| Cloud Run(适用于 Google API 的 Private Service Connect) | |
| Cloud Run 访问权限(无服务器 NEG) | |
| GKE | |
| 通过 VPC 网络连接到互联网 |
Agent Runtime(内部)来源代理
下表提供了相关资源,可帮助您在 Agent Runtime 作为源代理且流量直接通过 Google 基础设施传输时保护流量。在这些路径中,不涉及 VPC 网络。
| 目标代理(数据路径) | 安全控制 |
|---|---|
| Agent Runtime(内部) | |
| Cloud Run(内部) |
Agent Runtime(Private Service Connect 接口)来源代理
下表提供了相关资源,可帮助您在 Agent Runtime 是源智能体且流量使用 Private Service Connect 接口通过 VPC 网络传输时保护流量。
| 目标代理(数据路径) | 安全控制 |
|---|---|
| Cloud Run(适用于 Google API 的 Private Service Connect) | |
| Cloud Run 访问权限(无服务器 NEG) | |
| GKE | |
| 通过 VPC 网络连接到互联网 |
Cloud Run(内部)来源代理
下表提供了相关资源,可帮助您在 Cloud Run 作为源代理且流量直接通过 Google 基础设施传输时保护流量。在这些路径中,不涉及 VPC 网络。
| 目标代理(数据路径) | 安全控制 |
|---|---|
| Agent Runtime(内部) | |
| Cloud Run(内部) |
Cloud Run(直接 VPC 出站流量)来源代理
下表提供了相关资源,可帮助您在 Cloud Run 作为来源代理且流量使用直接 VPC 出站流量通过 VPC 网络传输时保护流量。
| 目标代理(数据路径) | 安全控制 |
|---|---|
| Cloud Run(适用于 Google API 的 Private Service Connect) | |
| Cloud Run 访问权限(无服务器 NEG) | |
| GKE | |
| 通过 VPC 网络连接到互联网 | |
| Agent Runtime(适用于 Google API 的 Private Service Connect) |
MCP 连接安全性
以下列表概述了在保护 Agent Runtime 与 MCP 服务器之间的数据路径时涉及的托管平台和纵深防御控制措施。对于 Agent Runtime、Cloud Run 或 GKE 中的来源智能体,请根据目标 MCP 服务器使用以下安全控制措施:
- 互联网:
- VPC Service Controls
- Model Armor
- Cloud NGFW
- Secure Web Proxy
- Google MCP:
- VPC Service Controls
- Model Armor
后续步骤
- 了解如何构建智能体系统:
- 如需查看更多参考架构、图表和最佳做法,请浏览云架构中心。
贡献者
作者:
- Deepak Michael | 网络专家客户工程师
- Michael Larson | 网络专家客户工程师
- Victor Morno | Cloud 网络产品经理
其他贡献者:
- Christine Sizemore | 云安全架构师
- Aspen Sherrill | 云安全架构师
- Assaf Namer | 首席云安全架构师
- David Tu | 客户工程师
- Ammett Williams | 开发者关系工程师
- Mark Schlagenhauf | 网络技术文档工程师