本页面介绍了如何将 Secure Web Proxy 实例配置和部署为 Agent Gateway。
概览
跨 Google Cloud 部署的企业 AI 工作负载需要结构化网络边界,以确保遵守数据隐私法规、防止敏感数据泄露,并防范提示注入等新兴 AI 威胁。
Agent Gateway 为从 AI 智能体到大语言模型 (LLM)、Model Context Protocol (MCP) 工具、外部 API、远程智能体和标准 Web 目的地的出站流量提供集中式安全治理、身份强制执行和内容护栏。
您可以部署 Google 管理的 Agent Gateway,也可以将 Secure Web Proxy 实例部署为自行管理的 Agent Gateway。这两种部署模型都提供通用的 Gemini Enterprise Agent Platform 治理解决方案,包括集中式访问权限政策、Agent Registry 集成和内容护栏。
根据您的运营偏好,从以下部署选项中进行选择:
由 Google 管理的 Agent Gateway:如果您希望获得全代管式、零维护的体验,而无需管理网络代理基础设施,请选择此选项。如需了解详情,请参阅 Google 管理的 Agent Gateway。此模型针对在 Gemini Enterprise 或 Gemini Enterprise Agent Platform 上的 Agent Runtime 中运行的智能体进行了优化。
Secure Web Proxy 作为自行管理的 Agent Gateway:如果您希望完全控制 VPC 网络边界、私有 CA 证书和代理路由,以支持在 Google Kubernetes Engine (GKE) 或 Cloud Run 上运行的代理,请将 Secure Web Proxy 实例部署为 Agent Gateway。
优势
将 Secure Web Proxy 部署为 Agent Gateway 具有以下优势:
客户控制的基础设施:您可以在自己的虚拟私有云 (VPC) 网络中管理 Secure Web Proxy 网关,从而完全控制网络路由、IP 地址、私有 CA 证书和 TLS 检查。
集中式 AI 政策强制执行:您可以对
agentGateway资源定义授权政策。这样,您就可以直接在 Secure Web Proxy 网关上强制执行这些政策,以限制 MCP 工具调用、过滤 AI 智能体的外部目的地,以及调用 Model Armor 等内容清理服务。运行时支持:您可以将托管在各种运行时(例如 GKE 或 Cloud Run)中的 AI 智能体的出站流量通过单个代理边界进行路由。
智能体感知型可观测性:Cloud Logging 中的事务日志会自动包含 AI 智能体执行元数据 (
agentGatewayInfo),包括 MCP 方法、工具名称和 Agent Registry 目标位置的统一资源名称 (URN)。
架构
以下步骤展示了 Secure Web Proxy 如何作为 Agent Gateway 保护出站流量:
智能体运行时:在 GKE 或 Cloud Run 上运行的自主智能体,可发起与外部 API、模型提供商、MCP 工具服务器、远程智能体或标准 Web 目标位置的出站连接。
出站流量路由:智能体流量通过 VPC 内代理路由或跨 VPC Private Service Connect (PSC) 服务连接定向到 Secure Web Proxy。
政策评估和内容清理:Secure Web Proxy 会终止 TLS 连接、强制执行 MCP 授权政策,并调用 Model Armor 或 Identity-Aware Proxy (IAP) 等扩展服务来清理载荷并验证客户端身份。
准备工作
在将 Secure Web Proxy 实例部署为 Agent Gateway 之前,请完成以下前提条件:
启用以下必需的 Google Cloud API:
gcloud services enable \ networkservices.googleapis.com \ networksecurity.googleapis.com \ privateca.googleapis.com \ certificatemanager.googleapis.com \ serviceextensions.googleapis.com \ agentregistry.googleapis.com \ compute.googleapis.com确保您具有以下必需的 Identity and Access Management (IAM) 角色:
- Compute Network Admin 角色 (
roles/compute.networkAdmin) - Network Security Admin 角色 (
roles/networksecurity.admin) - CA Service Admin 角色 (
roles/privateca.admin)
- Compute Network Admin 角色 (
为您的部署配置以下环境变量:
export PROJECT_ID="my-project-id" export PROJECT_NUMBER="my-project-number" export REGION="us-central1" export NETWORK_NAME="swp-vpc" export PROXY_SUBNET_NAME="swp-proxy-subnet" export PSC_NAT_SUBNET_NAME="swp-psc-nat-subnet" export CA_POOL_NAME="swp-ca-pool" export ROOT_CA_NAME="swp-root-ca" export TLS_INSPECTION_POLICY_NAME="swp-tls-inspection-policy" export SECURE_WEB_PROXY_NAME="swp-agent-gateway" export SWP_IP_ADDRESS="10.129.0.10" export SWP_CERTIFICATE_NAME="swp-cert" export SERVER_TLS_POLICY_NAME="swp-server-tls-policy" export GATEWAY_SECURITY_POLICY_NAME="swp-security-policy" export SERVICE_ATTACHMENT_NAME="swp-service-attachment" export AGENT_GATEWAY_NAME="my-agent-gateway"可选:如果您的 Agent Runtime 在单独的 VPC 网络或代管式环境(例如跨项目 GKE 或 Cloud Run 集群)中运行,则您必须通过 Private Service Connect 服务连接公开 Secure Web Proxy:
- 使用
--purpose=PRIVATE_SERVICE_CONNECT创建 PSC NAT 子网。 - 创建以 Secure Web Proxy 网关为目标的服务连接。如需了解详情,请参阅将 Secure Web Proxy 部署为 Private Service Connect 服务。
- 使用
设置 TLS 检查
Secure Web Proxy 会终止 TLS 连接,以检查 HTTP 标头、评估 MCP 方法并清理载荷。
如需配置 TLS 检查,请执行以下操作来创建私有证书授权机构 (CA) 池、根 CA,然后创建 tlsInspectionPolicy 资源:
创建私有 CA 池。
gcloud privateca pools create CA_POOL_NAME \ --location=REGION \ --tier=devops \ --project=PROJECT_ID替换以下内容:
CA_POOL_NAME:CA 池的名称REGION:创建 CA 池的区域PROJECT_ID:您的 Google Cloud 项目的 ID
在私有 CA 池中创建根 CA。
gcloud privateca roots create ROOT_CA_NAME \ --pool=CA_POOL_NAME \ --location=REGION \ --subject="CN=Agent Gateway SWP Root CA, O=MyOrganization" \ --auto-enable \ --project=PROJECT_ID替换以下内容:
ROOT_CA_NAME:根 CA 的名称CA_POOL_NAME:CA 池的名称REGION:根 CA 的创建区域PROJECT_ID:您的 Google Cloud 项目的 ID
注意:如需让客户端工作负载(例如 Cloud Run 或 GKE)在 TLS 检查期间信任此 CA 池颁发的证书,请导出根 CA 证书,然后将其添加到工作负载的受信任证书存储区。例如,您可以设置
AGENT_GATEWAY_ROOT_CERTIFICATES环境变量。向网络安全服务账号授予请求证书的权限。
gcloud privateca pools add-iam-policy-binding CA_POOL_NAME \ --location=REGION \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com" \ --role="roles/privateca.certificateRequester" \ --project=PROJECT_ID在名为
tls-inspection-policy.yaml的文件中创建tlsInspectionPolicy资源。name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_POLICY_NAME caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL_NAME替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:TlsInspectionPolicy的创建区域TLS_INSPECTION_POLICY_NAME:TlsInspectionPolicy资源的名称CA_POOL_NAME:CA 池的名称
如需导入政策,请运行
gcloud network-security tls-inspection-policies import命令。gcloud network-security tls-inspection-policies import TLS_INSPECTION_POLICY_NAME \ --source=tls-inspection-policy.yaml \ --location=REGION \ --project=PROJECT_ID
部署 Secure Web Proxy
创建配置了双向 TLS (mTLS) 的 Secure Web Proxy 网关。
确保您的 VPC 网络在您要部署网关的区域中具有代理专用子网。
gcloud compute networks subnets create PROXY_SUBNET_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=NETWORK_NAME \ --range=10.129.0.0/23替换以下内容:
PROXY_SUBNET_NAME:代理专用子网的名称NETWORK_NAME:您的 VPC 网络的名称REGION:子网创建所在的区域
可选:从代理专用子网范围(例如
10.129.0.0/23中的10.129.0.10)中选择一个可用 IP 地址,以分配给SWP_IP_ADDRESS。注意:如果您未在
swp.yaml文件中添加addresses字段,Secure Web Proxy 会自动从代理专用子网分配 IP 地址。为确保 Secure Web Proxy 网关可以安全地接受传入的客户端代理连接,请在Certificate Manager中创建区域级 SSL/TLS 服务器证书。
生成自行管理的证书和私钥。
openssl req -x509 -newkey rsa:2048 -nodes \ -keyout "swp.key" \ -out "swp.crt" \ -days 365 \ -subj "/CN=SWP_IP_ADDRESS"将
SWP_IP_ADDRESS替换为 Secure Web Proxy 网关的 IP 地址。如需将证书上传到 Certificate Manager,请运行
gcloud certificate-manager certificates create命令。gcloud certificate-manager certificates create SWP_CERTIFICATE_NAME \ --location=REGION \ --certificate-file="swp.crt" \ --private-key-file="swp.key" \ --project=PROJECT_ID替换以下内容:
SWP_CERTIFICATE_NAME:证书资源的名称REGION:证书的创建区域PROJECT_ID:您的 Google Cloud项目的 ID
如需启用前端 mTLS,请创建
ServerTlsPolicy资源。如需允许工作负载(例如 Cloud Run)将其身份证书传递给 IAP 等服务,请使用clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT配置政策。注意:如果您使用 IAP,请勿为
clientValidationTrustConfig字段设置任何值,因为该字段不受支持。创建一个名为
server-tls-policy.yaml的文件,然后添加以下内容:name: projects/PROJECT_ID/locations/REGION/serverTlsPolicies/SERVER_TLS_POLICY_NAME mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:ServerTlsPolicy的创建区域SERVER_TLS_POLICY_NAME:ServerTlsPolicy资源的名称
如需导入政策,请运行
gcloud network-security server-tls-policies import命令。gcloud network-security server-tls-policies import SERVER_TLS_POLICY_NAME \ --source=server-tls-policy.yaml \ --location=REGION \ --project=PROJECT_ID
创建网关安全政策以附加
tlsInspectionPolicy。创建一个名为
gateway-security-policy.yaml的文件,然后添加以下内容:name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/GATEWAY_SECURITY_POLICY_NAME tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_POLICY_NAME替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:GatewaySecurityPolicy的创建区域GATEWAY_SECURITY_POLICY_NAME:GatewaySecurityPolicy资源的名称TLS_INSPECTION_POLICY_NAME:TlsInspectionPolicy资源的名称
如需导入政策,请运行
gcloud network-security gateway-security-policies import命令。gcloud network-security gateway-security-policies import GATEWAY_SECURITY_POLICY_NAME \ --source=gateway-security-policy.yaml \ --location=REGION \ --project=PROJECT_ID
创建一个名为
swp.yaml的 Secure Web Proxy 规范文件。name: projects/PROJECT_ID/locations/REGION/gateways/SECURE_WEB_PROXY_NAME type: SECURE_WEB_GATEWAY addresses: - "SWP_IP_ADDRESS" ports: - 443 routingMode: EXPLICIT_ROUTING_MODE certificateUrls: - projects/PROJECT_ID/locations/REGION/certificates/SWP_CERTIFICATE_NAME serverTlsPolicy: projects/PROJECT_ID/locations/REGION/serverTlsPolicies/SERVER_TLS_POLICY_NAME network: projects/PROJECT_ID/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_ID/regions/REGION/subnetworks/PROXY_SUBNET_NAME gatewaySecurityPolicy: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/GATEWAY_SECURITY_POLICY_NAME替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:创建 Secure Web Proxy 网关的区域SECURE_WEB_PROXY_NAME:Secure Web Proxy 网关的名称SWP_IP_ADDRESS:Secure Web Proxy 网关的 IP 地址SWP_CERTIFICATE_NAME:与 Secure Web Proxy 网关关联的证书的名称SERVER_TLS_POLICY_NAME:ServerTlsPolicy资源的名称NETWORK_NAME:您的 VPC 网络的名称PROXY_SUBNET_NAME:代理专用子网的名称GATEWAY_SECURITY_POLICY_NAME:GatewaySecurityPolicy资源的名称
如需导入 Secure Web Proxy 网关,请运行
gcloud network-services gateways import命令。gcloud network-services gateways import SECURE_WEB_PROXY_NAME \ --source=swp.yaml \ --location=REGION \ --project=PROJECT_ID
如需在现有 Secure Web Proxy 网关上更改这些字段而不导致工作负载停机,请执行以下操作:
使用新名称和所需配置创建另一个 Secure Web Proxy 网关。
更新
agentGateway资源 (selfManaged.resourceUris) 以引用新的 Secure Web Proxy 网关。更新
EgressRouting资源,使其指向新的 Secure Web Proxy 网关。验证新网关已成功管理流量路由后,从
agentGateway资源中移除旧的 Secure Web Proxy 网关,然后删除旧网关资源。
将 Secure Web Proxy 实例与 Agent Gateway 相关联
如需将 Secure Web Proxy 实例与 agentGateway 资源相关联,请执行以下操作:
创建名为
agent-gateway.yaml的配置文件。name: projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_NAME selfManaged: resourceUris: - //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/SECURE_WEB_PROXY_NAME registries: - //agentregistry.googleapis.com/projects/PROJECT_ID/locations/REGION替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:创建 Agent Gateway 的区域AGENT_GATEWAY_NAME:Agent Gateway 的名称SECURE_WEB_PROXY_NAME:Secure Web Proxy 实例的名称
可选:
registries字段会将您的 Agent Gateway 与 Agent Registry 相关联。如果您不想使用 Agent Registry 进行目标或工具解析,请勿指定registries字段。如需导入
agentGateway资源,请运行gcloud beta network-services agent-gateways import命令。gcloud beta network-services agent-gateways import AGENT_GATEWAY_NAME \ --source=agent-gateway.yaml \ --location=REGION \ --project=PROJECT_ID
配置扩展程序绑定和授权政策
如需管理出站 AI 智能体流量,请在 agentGateway 资源上配置扩展程序绑定和授权政策。代理会忽略直接附加到底层 Secure Web Proxy Gateway 资源的任何政策。
Agent Gateway 支持以下两个治理层:
扩展程序绑定:使用 Service Extensions 将外部安全和治理服务(例如 IAP 和 Model Armor)直接附加到 Agent Gateway。
授权政策:强制执行 L7 MCP 方法限制和 L4 网络规则。
将扩展程序绑定附加到 Agent Gateway
使用 Service Extensions 中的扩展程序绑定将托管式服务绑定到 Agent Gateway,以检查、验证和控制智能体交互。
第 1 步:将 Identity-Aware Proxy (IAP) 绑定到 Agent Gateway
如需在流量到达目标工具之前验证代理调用方身份并强制执行访问权限政策,请执行以下操作将 IAP 绑定到代理网关:
创建名为
ext-binding-iap.yaml的配置文件。name: ext-binding-iap target: resources: - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_NAME" failOpen: false producerExtension: iap.googleapis.com matchConditions: - to: destination: resources: - prefix: "urn:mcp" notDestinations: hosts: - suffix: ".googleapis.com"替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:创建扩展程序绑定的区域AGENT_GATEWAY_NAME:Agent Gateway 的名称
如需导入扩展程序绑定,请运行
gcloud beta service-extensions extension-bindings import命令。gcloud beta service-extensions extension-bindings import ext-binding-iap \ --source=extension-binding-iap.yaml \ --location=REGION
如需了解详情,请参阅将授权委托给 IAP。
第 2 步:绑定 Model Armor 以清理提示和回答
如需防范提示词注入、有害内容和敏感数据泄露,请执行以下操作,将 Model Armor 绑定到 Agent Gateway:
创建名为
ext-binding-model-armor.yaml的配置文件。name: ext-binding-model-armor target: resources: - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_NAME" failOpen: false producerExtension: modelarmor.googleapis.com producerMetadata: model_armor_settings: '[ { "request_template_id": "projects/PROJECT_ID/locations/REGION/templates/REQUEST_TEMPLATE_ID", "response_template_id": "projects/PROJECT_ID/locations/REGION/templates/RESPONSE_TEMPLATE_ID" } ]' matchConditions: - to: destination: resources: - prefix: "urn:mcp"替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:创建扩展程序绑定的区域AGENT_GATEWAY_NAME:Agent Gateway 的名称REQUEST_TEMPLATE_ID:Model Armor 请求模板的 IDRESPONSE_TEMPLATE_ID:Model Armor 响应模板的 ID
如需导入扩展程序绑定,请运行
gcloud beta service-extensions extension-bindings import命令。gcloud beta service-extensions extension-bindings import ext-binding-model-armor \ --source=extension-binding-model-armor.yaml \ --location=REGION
如需了解详情,请参阅将授权委托给 Model Armor 和为 Secure Web Proxy 设置授权政策中的示例 3:使用扩展程序绑定通过 Model Armor 启用深度载荷检查。
使用授权政策限制 MCP 工具
如需将智能体工具发现和执行限制为已获批准的工具,请按照以下步骤创建并导入授权政策:
创建名为
authz-policy-restrict-mcp-tools.yaml的配置文件。name: authz-policy-restrict-mcp-tools target: resources: - "projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - mcp: baseProtocolMethodsOption: MATCH_BASE_PROTOCOL_METHODS methods: - name: "tools/list" - name: "tools/call" params: - exact: "get_weather" - exact: "get_location" action: ALLOW替换以下内容:
PROJECT_ID:您的 Google Cloud 项目的 IDREGION:创建授权政策的区域AGENT_GATEWAY_NAME:Agent Gateway 的名称
如需导入授权政策,请运行
gcloud network-security authz-policies import命令。gcloud network-security authz-policies import authz-policy-restrict-mcp-tools \ --source=authz-policy-restrict-mcp-tools.yaml \ --location=REGION \ --project=PROJECT_ID
通过 Agent Gateway 路由智能体
配置 Agent Gateway 并为其附加授权政策后,您必须配置智能体运行时环境,以将其出站流量定向到 Secure Web Proxy 实例。出站流量路由在网络层以透明方式运行,无需修改智能体应用代码即可将请求重定向到网关。
根据 AI 工作负载的运行位置,请参阅以下文档资源来配置出站路由:
- GKE:使用 Cloud Service Mesh 环境网络在节点级层拦截出站代理流量,然后通过 HTTP
CONNECT隧道将其转发到 Secure Web Proxy 实例。如需在集群上配置路由政策,请参阅通过 Secure Web Proxy 路由环境出站流量和适用于 GKE 的 Agent Gateway。 - Cloud Run:配置直接 VPC 出站流量,以将出站代理流量发送到 VPC 网络,其中 Cloud Run 环境网络通过携带代理身份的 HTTP
CONNECT隧道将请求重定向到 Secure Web Proxy 实例。如需为出站流量设置路由,请参阅使用 VPC 网络的直接 VPC 和适用于 Cloud Run 的 Agent Gateway。
遥测、日志记录和监控
当您的 Secure Web Proxy 网关与 Agent Gateway 资源关联时,事务日志会在标准 Secure Web Proxy networkservices.googleapis.com/Gateway 受监控资源下发出。日志记录功能默认处于启用状态,采样率为 1.0。
日志记录
Cloud Logging 中的日志条目采用 LoadBalancerLogEntry 格式,并包含以下 AI 智能体和安全载荷字段:
agentGatewayInfo:包含有关代理交易的元数据:agentRegistryResource:匹配的代理注册表目标的完整资源名称,例如 MCP 服务器或技能destinationUrn:有关目标 URN 的信息mcpInfo:MCPJSON-RPC调用详细信息,包括方法(例如tools/call或resources/read)以及工具名称或资源 URI
authzPolicyInfo:授权评估结果(ALLOWED或DENIED)以及匹配政策的名称tls:TLS 协商详细信息和加密客户端证书 (mTLS) 验证属性,例如clientCertPresent和clientCertSha256Fingerprint
监控指标
Agent Gateway 会将以下指标导出到 Cloud Monitoring:
MCP 时长:
gcp.mcp.server.operation.duration:MCP 工具服务器执行的操作的延迟时间gcp.mcp.client.operation.duration:MCP 客户端调用的端到端往返时长
HTTP 延迟时间:
http.server.request.duration:网关处理的传入代理请求的执行延迟时间http.client.request.duration:从代理到外部目的地的出站请求的延迟时间
流量吞吐量:
gcp.server.request.total_size和gcp.server.response.total_size:网关接收和发送的请求和响应的大小(以字节为单位)gcp.client.request.total_size和gcp.client.response.total_size:网关发送到外部目的地的请求和响应的大小(以字节为单位)