Gemini Enterprise トラフィックを Agent Gateway 経由でルーティングする

このページでは、Agent Gateway を介して Gemini Enterprise トラフィックをルーティングする方法について説明します。Agent Gateway は、Gemini Enterprise Agent Platform エコシステムの中核となるネットワーキングおよびセキュリティ コンポーネントです。ユーザーとエージェント、エージェントとツール、エージェント間のやり取りなど、すべてのエージェントによるインタラクションに対して、安全で管理された接続を提供します。

始める前に

  • Gemini Enterprise のコンセプトを理解していることを確認してください。
  • Agent Gateway について学習する。Agent Gateway は、Agent-to-Anywhere(下り(外向き))モードの 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 app のロケーション 必要な 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)

Gemini Enterprise トラフィックを Agent Gateway 経由でルーティングする

Gemini Enterprise トラフィックを Agent Gateway 経由でルーティングする手順は次のとおりです。

  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 app にバインドします。この手順を完了すると、既存のすべてのエージェント トラフィックが、指定された Agent Gateway 経由で直ちにルーティングされます。

    コンソール

    1. Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。

      Gemini Enterprise

    2. Agent Gateway に関連付けるアプリの名前をクリックします。

    3. [セキュリティ] をクリックします。

    4. [構成] タブの [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 app で下り(外向き)ガバナンスが有効になりましたが、アプリは、Agent Registry 上のどの外部リソースとやり取りできるかを自動的に認識しません。

    選択したエージェント、エンドポイント、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 分かかります。

カスタムの組織のポリシー制約の使用方法については、カスタム制約を作成するをご覧ください。

次のステップ

Codelab

Gemini Enterprise Agent Platform の Agent Gateway でエージェント ワークロードを管理する方法について説明します。

ガイド

Agent Gateway の認可を IAP、Model Armor、または独自のカスタム認可サービスに委任する方法について説明します。

ガイド

Agent Gateway をモニタリングする方法について説明します。

トラブルシューティング

Agent Gateway の接続に関するトラブルシューティング方法について説明します。