透過 Agent Gateway 轉送 Gemini Enterprise 流量

本頁說明如何透過 Agent Gateway 轉送 Gemini Enterprise 流量。Agent Gateway 是 Gemini Enterprise Agent Platform 生態系統的核心網路和安全元件,無論是使用者與代理之間的互動、代理與工具之間的互動,還是代理之間的互動,都能提供安全且受管理的連線能力。

事前準備

  • 請務必熟悉 Gemini Enterprise 概念。
  • 瞭解 Agent Gateway。請注意,Agent Gateway 僅支援 Gemini Enterprise 的「代理到任何位置」(輸出) 模式。不支援輸入流量。
  • 部署 Gemini Enterprise 應用程式 (也稱為引擎)。本頁程序假設您已部署應用程式。詳情請參閱「建立應用程式」。

規劃位置和 Agent Registry 對應

部署 Agent Gateway 之前,請先選擇要部署閘道的區域,以及要註冊資源的 Agent Registry。請注意下列要求:

  • 位置對應:在與 Gemini Enterprise 應用程式位置對應的特定區域部署 Agent Gateway,確保路由正確。

  • 登錄檔對應:將 Agent Gateway 與區域 Agent Registry 執行個體建立關聯,兩者須位於相同專案和區域。如需部署模式的詳細指南,請參閱「規劃 Agent Gateway 部署作業」。

表:Gemini Enterprise 應用程式位置和 Agent Registry 對應關係
Gemini Enterprise 應用程式位置 必要的 Agent Gateway 區域 Agent Gateway 必要的 Agent Registry 執行個體
global us-central1 us-central1 (//agentregistry.googleapis.com/projects/PROJECT_ID/locations/us-central1)
us us-central1 us-central1 (//agentregistry.googleapis.com/projects/PROJECT_ID/locations/us-central1)
eu europe-west1 europe-west1 (//agentregistry.googleapis.com/projects/PROJECT_ID/locations/europe-west1)

透過 Agent Gateway 轉送 Gemini Enterprise 流量

如要透過 Agent Gateway 轉送 Gemini Enterprise 流量,請按照下列步驟操作:

  1. 建立 Agent Gateway 資源,並確保遵循上一節選取的區域和登錄檔。如需操作說明,請參閱「設定 Agent Gateway」。

    驗證閘道設定。使用 Network Services API 擷取 Agent Gateway 設定並檢查設定。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://networkservices.googleapis.com/v1/projects/PROJECT_ID/locations/AGENT_GATEWAY_REGION/agentGateways/AGENT_GATEWAY_NAME"
    

    以下是正確設定閘道的輸出內容範例:

    {
      "name": "projects/my-ge-project/locations/us-central1/agentGateways/my-egress-gateway",
      "description": "A full configuration for Agent Gateway for Gemini Enterprise egress",
      "googleManaged": {
        "governedAccessPath": "AGENT_TO_ANYWHERE"
      },
      "protocols": [
        "MCP"
      ],
      "registries": [
        "//agentregistry.googleapis.com/projects/my-ge-project/locations/us-central1"
      ]
    }
    
  2. 使用 UpdateEngine API 將閘道繫結至 Gemini Enterprise 應用程式。請注意,完成這個步驟後,所有現有的代理流量會立即透過指定的 Agent Gateway 轉送。

    控制台

    1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

      Gemini Enterprise

    2. 按一下要與 Agent Gateway 建立關聯的應用程式名稱。

    3. 點按「安全性」。

    4. 在「Configuration」(設定) 分頁的「Agent Gateway configuration」(Agent Gateway 設定) 下方,輸入閘道的完整資源名稱。請使用以下格式:projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME。

    5. 按一下 [儲存]。

    REST

    1. 使用下列要求更新應用程式。

      curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      -d '{
        "agentGatewaySetting": {
          "defaultEgressAgentGateway": {
            "name": "projects/PROJECT_ID/locations/AGENT_GATEWAY_REGION/agentGateways/AGENT_GATEWAY_NAME"
          }
        }
      }' \
      "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/GE_APP_LOCATION/collections/default_collection/engines/GE_APP_ID?updateMask=agentGatewaySetting.defaultEgressAgentGateway.name"

      更改下列內容:

      • PROJECT_ID:專案 ID。
      • AGENT_GATEWAY_REGION:Agent Gateway 的區域。
      • AGENT_GATEWAY_NAME:Agent Gateway 的名稱。
      • ENDPOINT_LOCATION:與 GE_APP_LOCATION 相符的 API 端點多區域前置字串。指定 global、us 或 eu。例如,eu 應用程式會使用 eu-discoveryengine.googleapis.com。如果是 global 應用程式,也支援不含前置字元的 discoveryengine.googleapis.com。
      • PROJECT_NUMBER:專案編號。
      • GE_APP_LOCATION:Gemini Enterprise 應用程式的位置。請指定 global、us 或 eu。
      • GE_APP_ID:Gemini Enterprise 應用程式的 ID。
    2. 如要驗證應用程式設定,請使用下列指令擷取設定並檢查:

      curl -s -X GET \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      -H "Content-Type: application/json" \
      "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/GE_APP_LOCATION/collections/default_collection/engines/GE_APP_ID" \
      | jq '{name: .name, displayName: .displayName, agentGatewaySetting: .agentGatewaySetting}'
      

      更改下列內容:

      • PROJECT_ID:專案 ID。
      • ENDPOINT_LOCATION:與 GE_APP_LOCATION 相符的 API 端點多區域前置字串。指定 global、us 或 eu。
      • PROJECT_NUMBER:專案編號。
      • GE_APP_LOCATION:Gemini Enterprise 應用程式的位置。請指定 global、us 或 eu。
      • GE_APP_ID:Gemini Enterprise 應用程式的 ID。

      以下是正確設定應用程式的輸出範例:

      {
      "name": "projects/PROJECT_NUMBER/locations/GE_APP_LOCATION/collections/default_collection/engines/GE_APP_ID",
      "displayName": "GE_APP_ID",
      "agentGatewaySetting": {
        "defaultEgressAgentGateway": {
          "name": "projects/PROJECT_ID/locations/AGENT_GATEWAY_REGION/agentGateways/AGENT_GATEWAY_NAME"
        }
      }
      }
      
  3. 雖然 Gemini Enterprise 應用程式已啟用輸出治理功能,但不會自動得知可與代理登錄檔中的哪些外部資源互動。

    您必須明確將所選代理、端點和 MCP 伺服器匯入 Gemini Enterprise 應用程式。匯入的資源必須使用確切的註冊資源名稱參照。如需操作說明,請參閱下列指南:

  4. 如要確認輸出功能是否正常運作,請按照下列步驟操作:

    1. 開啟 Gemini Enterprise 網頁應用程式。
    2. 提交查詢,觸發外部工具 (例如「提供 GitHub 最近的問題清單」)。
    3. 監控執行作業,確保成功擷取回應。在幕後,Gemini Enterprise 代理會封裝要求,透過 Agent Gateway 轉送 (強制執行任何設定的授權政策),並從目的地擷取回覆。

限制 Gemini Enterprise 只能繫結至核准的 Agent Gateway

您可以建立自訂組織政策限制,限制 Gemini Enterprise 應用程式是否能繫結至任何或所有 Agent Gateway。

建立自訂組織政策限制

這個範例會建立自訂限制,禁止 Gemini Enterprise 應用程式與 Agent Gateway 之間的所有繫結。

代理至任意目的地

  1. 如要定義「代理到任何位置」模式 (輸出) 的自訂限制,請建立名為 constraint-agent-gateway-egress.yaml 的檔案。

    以下範例說明如何禁止任何繫結,強制執行嚴格的網路隔離。condition 欄位指定,如果指定 Agent Gateway 資源 (欄位存在且不為空白),則拒絕作業。

    name: organizations/ORGANIZATION_ID/customConstraints/custom.disallowGeminiEnterpriseAgentGatewayBinding
    resource_types:

    • discoveryengine.googleapis.com/Engine condition: >- has(resource.agentGatewaySetting.defaultEgressAgentGateway.name) && resource.agentGatewaySetting.defaultEgressAgentGateway.name != '' actionType: DENY displayName: "Disallow all Agent Gateway Bindings for Discovery Engines" description: "To enforce strict network isolation, Discovery Engines are not permitted to bind to any Agent Gateway."
  2. 更改下列內容:

    • ORGANIZATION_ID:組織 ID。
    • PROJECT_ID:您的專案 ID。
    • REGION:建立閘道的區域。
    • AGENT_GATEWAY_NAME:閘道名稱。
  3. 套用自訂限制。

    gcloud org-policies set-custom-constraint EGRESS_CONSTRAINT_PATH
    

    將 EGRESS_CONSTRAINT_PATH 替換為上一個步驟中建立的自訂限制檔案完整路徑。

  4. 建立組織政策,強制執行限制。如要定義組織政策,請建立名為 policy-agent-gateway-egress.yaml 的政策 YAML 檔案。在本範例中,我們會在專案層級強制執行這項限制,但您也可以在組織或資料夾層級設定。

    name: projects/PROJECT_ID/policies/custom.disallowGeminiEnterpriseAgentGatewayBinding
    spec:
    rules:

    • enforce: true
  5. 將 PROJECT_ID 替換為專案 ID。

  6. 強制執行組織政策。

    gcloud org-policies set-policy EGRESS_POLICY_PATH
    

    請將 EGRESS_POLICY_PATH 替換為上一步建立的組織政策 YAML 檔案完整路徑。政策最多需要 15 分鐘才會生效。

如要進一步瞭解如何使用自訂組織政策限制,請參閱「建立自訂限制」。

後續步驟

程式碼實驗室

瞭解如何透過 Gemini Enterprise Agent Platform 的 Agent Gateway 控管代理工作負載。

指南

瞭解如何將 Agent Gateway 的授權委派給 IAP、Model Armor 或自訂授權服務。

指南

瞭解如何監控 Agent Gateway。

疑難排解

瞭解如何排解 Agent Gateway 連線問題。