このページでは、Agent Gateway を介して Agent Runtime トラフィックをルーティングする方法について説明します。Agent Gateway は、Gemini Enterprise Agent Platform エコシステムのネットワークとセキュリティの中心的なコンポーネントです。ユーザーとエージェント間、エージェントとツール間、エージェント間のいずれのやり取りでも、安全で管理された接続を提供します。
始める前に
エージェント ランタイムへのエージェントのデプロイについてよくご確認ください。
エージェント ゲートウェイについて学習する。エージェントから任意の場所への(下り)モードで Agent Gateway を使用すると、ツール、モデル、API、他のエージェントへの下りトラフィックを含むすべての下り通信を保護して制御できます。クライアントからエージェントへの(上り)モードでゲートウェイを使用して、エージェントにアクセスできるクライアントを制御します。ゲートウェイを使用すると、これらのインタラクションに適用する必要がある IAP ポリシーと Model Armor テンプレートを選択できます。
単一の Runtime インスタンスは、Agent-to-Anywhere(下り)ゲートウェイと Client-to-Agent(上り)ゲートウェイの両方に同時にバインドできます。
制限事項
- エージェント ゲートウェイを 2026 年 4 月 29 日より前に作成されたランタイム推論エンジンにバインドすることはできません。
単一のプロジェクトとリージョンで複数の Agent-to-Anywhere(下り(外向き))と Client-to-Agent(上り(内向き))の Agent Gateway インスタンスをホストできますが、同じプロジェクトとリージョン内にデプロイされたすべての Agent Runtime エージェントは、同じ特定の下り(外向き)と上り(内向き)の Agent Gateway インスタンスにバインドする必要があります。
たとえば、プロジェクトとリージョンに
egress-gateway-Xとegress-gateway-Yが含まれている場合、そのプロジェクトとリージョンのすべてのエージェントは、下り(外向き)に同じゲートウェイを使用するように構成する必要があります。つまり、すべてのエージェントがegress-gateway-Xを使用するか、すべてのエージェントがegress-gateway-Yを使用します。egress-gateway-Xを使用するようにagent-Aを構成したり、egress-gateway-Yを使用するようにagent-Bを構成したりすることはできません。このバインディング ルールは、プロジェクトとリージョン内の上り(内向き)ゲートウェイにも適用されます。
エージェントで Agent Gateway が有効になっている場合、Security Command Center Agent Engine Threat Detection サービスは使用できません。
クライアントからエージェントへの(内向き)モードでは、エージェント ゲートウェイはエージェント ランタイムの
queryメソッドとstreamQueryメソッドのみを制御できます。サポートされていない他のメソッド(asyncQueryなど)を保護するには、アプリケーションまたはエージェントから Model Armor テンプレートを直接適用します。プロンプトとレスポンスをサニタイズするまたは Model Armor を使用して安全なエージェント システムを構築するに関するこちらの Codelab をご覧ください。
Agent Runtime トラフィックを Agent Gateway 経由でルーティングする
Agent Runtime トラフィックを Agent Gateway 経由でルーティングする手順は次のとおりです。
エージェント ゲートウェイ リソースを作成し、必要に応じて認可ポリシーを関連付けます。ゲートウェイは、Agent-to-Anywhere(下り)モードまたは Client-to-Agent(上り)モードで作成できます。エージェントとゲートウェイは同じプロジェクトとリージョンに作成する必要があります。手順については、エージェント ゲートウェイを設定するをご覧ください。
デプロイのニーズに合わせてゲートウェイが構成されていることを確認します。たとえば、エージェントで LLM へのアクセスが必要な場合は、このアクセスを許可するようにゲートウェイを構成して、エージェント ランタイムのデプロイの失敗を防ぎます。
Agent Gateway 経由でトラフィックをルーティングするようにエージェントを構成します。
新しいエージェントの場合
エージェントのデプロイ時にゲートウェイ リソースを指定します。たとえば、エージェント ランタイムにエージェントをデプロイするには、
client.agent_engines.createを使用してlocal_agentオブジェクトと任意の省略可能な構成を渡します。このエージェントで Model Armor や セマンティック ガバナンス ポリシーなどのゲートウェイを介したプラットフォーム機能を使用する場合は、この例に示すように、作成呼び出しで
agent_gateway_configとidentity_type=AGENT_IDENTITYの両方を設定します。identity_type=AGENT_IDENTITYがないと、Runtime インスタンスのeffectiveIdentityはデフォルトの Vertex AI サービス アカウントにフォールバックし、Semantic Governance Policies はエージェントをポリシー作成セレクタから自動的に除外します。remote_agent = client.agent_engines.create( agent=local_agent, config={ "agent_gateway_config": { "agent_to_anywhere_config": {"agent_gateway": projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_TO_ANYWHERE_NAME}, # "client_to_agent_config": {"agent_gateway": projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_CLIENT_TO_AGENT_NAME} }, "identity_type": types.IdentityType.AGENT_IDENTITY, # Other optional configuration ... # "requirements": requirements, # "gcs_dir_name": gcs_dir_name, # https://docs.cloud.google.com/gemini-enterprise-agent-platform/scale/runtime/agent-identity#opt-out-caa "env_vars": { "GOOGLE_API_PREVENT_AGENT_TOKEN_SHARING_FOR_GCP_SERVICES": False, } }, )
AGENT_GATEWAY_TO_ANYWHERE_NAMEは、Agent-to-Anywhere(下り)モードで作成したエージェント Gateway の名前に置き換えます。クライアントからエージェントへの(上り)モードでゲートウェイを作成した場合は、代わりに
client_to_agent_configフィールドを使用し、AGENT_GATEWAY_CLIENT_TO_AGENT_NAMEを上り用に作成したエージェント ゲートウェイの名前に置き換えます。既存のエージェントの場合
エージェントから任意の宛先へ
次の REST API リクエストを使用して、既存のエージェントを上り(内向き)の Agent-to-Anywhere ゲートウェイに関連付けます。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "spec": { "deploymentSpec": { "agentGatewayConfig": { "agentToAnywhereConfig": { "agentGateway": "projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_TO_ANYWHERE_NAME" } } } } }' \ "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/reasoningEngines/RESOURCE_ID?updateMask=spec.deploymentSpec.agentGatewayConfig"
次のように置き換えます。
PROJECT_ID: プロジェクト IDREGION: エージェントがデプロイされているリージョンAGENT_GATEWAY_TO_ANYWHERE_NAME: エージェントから任意の宛先へ(外向き)モードで作成したエージェント ゲートウェイの名前RESOURCE_ID: エージェントのリソース ID
クライアントからエージェントへ
次の REST API リクエストを使用して、既存のエージェントを上り(内向き)の Client-to-Agent ゲートウェイに関連付けます。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "spec": { "deploymentSpec": { "agentGatewayConfig": { "clientToAgentConfig": { "agentGateway": "projects/PROJECT_ID/locations/REGION/agentGateways/AGENT_GATEWAY_CLIENT_TO_AGENT_NAME" } } } } }' \ "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/reasoningEngines/RESOURCE_ID?updateMask=spec.deploymentSpec.agentGatewayConfig"
次のように置き換えます。
PROJECT_ID: プロジェクト IDREGION: エージェントがデプロイされているリージョンAGENT_GATEWAY_CLIENT_TO_AGENT_NAME: クライアントからエージェントへ(内向き)で作成したエージェント ゲートウェイの名前RESOURCE_ID: エージェントのリソース ID
エージェントとゲートウェイと同じプロジェクトとリージョンにあるエージェント レジストリ インスタンスに登録します。
gcloud agent-registry services create SERVICE_NAME \ --project=PROJECT_ID \ --location=REGION \ --display-name="DISPLAY_NAME" \ --endpoint-spec-type=no-spec \ --interfaces='[{url="https://REGION-aiplatform.mtls.googleapis.com",protocolBinding="jsonrpc"}]' \ --format="value(registryResource)"次のように置き換えます。
SERVICE_NAME: リソースに付ける名前(例:allow-aiplatform-region-eu3)。PROJECT_ID: プロジェクト ID。REGION: レジストリ リージョン。DISPLAY_NAME: エンドポイントの人が読める形式の名前。
詳細については、エージェントを登録するをご覧ください。
エージェントの IAM ポリシー バインディング(エージェントからレジストリ)を作成します。
gcloud iap web add-iam-policy-binding \ --resource-type=agent-registry \ --endpoint=ENDPOINT_ID \ --region=REGION \ --project=PROJECT_ID \ --member=MEMBER \ --role=roles/iap.egressor
次のように置き換えます。
ENDPOINT_ID: 登録済みエージェントのサービス エンドポイント ID。これは、前の手順の出力から取得します。MEMBER: ロールを付与するエージェント ID プリンシパル。通常、形式はprincipal://TRUST_DOMAIN/resources/aiplatform/projects/PROJECT_ID/locations/REGION/reasoningEngines/ENGINE_IDです。
この時点で、エージェント トラフィックは Agent Gateway 経由で転送されるようになります。ただし、Agent Gateway はデフォルトで拒否するポリシーを採用しています。特定の Agent Platform 関数を有効にするには、エージェントが次のエンドポイントと通信できることを確認する必要があります。
Cloud Trace が有効になっている場合、エージェント ゲートウェイはエンドポイント
https://telemetry.googleapis.com/へのトラフィックを許可する必要があります。GOOGLE_API_USE_CLIENT_CERTIFICATE環境変数とGOOGLE_API_USE_MTLS_ENDPOINT環境変数が設定されている場合は、https://telemetry.mtls.googleapis.com/へのトラフィックも許可されていることを確認します。Cloud Logging が有効になっている場合、Agent Gateway はエンドポイント
https://logging.googleapis.com/へのトラフィックを許可する必要があります。GOOGLE_API_USE_CLIENT_CERTIFICATE環境変数とGOOGLE_API_USE_MTLS_ENDPOINT環境変数が設定されている場合は、https://logging.mtls.googleapis.com/へのトラフィックも許可されていることを確認します。
また、エージェントが LLM を呼び出している場合や、セッションやメモリバンクなどの機能を使用している場合は、エージェントがこれらのサービスで使用されるエンドポイントと通信できることを確認する必要があります。次に例を示します。
- セッションの場合:
https://REGION-aiplatform.googleapis.com/API_VERSION/projects/PROJECT_ID/locations/REGION/reasoningEngines/RESOURCE_ID/sessions - メモリバンクの場合:
https://REGION-aiplatform.googleapis.com/API_VERSION/projects/PROJECT_ID/locations/REGION/reasoningEngines/RESOURCE_ID/memories
セキュリティ上の理由から、エージェントがアクセスする特定の URI のみを登録して許可リストに登録することをおすすめします。ゲートウェイはホスト名を直接照合するため、エージェント SDK が使用するすべてのバリアントを登録する必要があります。たとえば、SDK のバージョン、リージョン クライアントの構成、mTLS の使用状況に応じて、Google API は次のエンドポイント ホスト名を介して解決できます。
https://REGION-aiplatform.googleapis.comhttps://REGION-aiplatform.mtls.googleapis.comhttps://aiplatform.REGION.rep.googleapis.com
エンドポイントを登録する方法については、エンドポイントを登録するをご覧ください。また、エージェントにこれらのエンドポイントの IAP 下り(外向き)ロールがあることを確認する必要があります。手順については、エージェントからエンドポイントへの下り(外向き)ポリシーを作成するをご覧ください。
エージェントの構成を確認します。
コンソール
- Google Cloud コンソールで、Agent Platform の [デプロイ] ページに移動します。
デプロイしたエージェントの名前をクリックします。
[サービス構成] をクリックします。エージェントの [オブザーバビリティ] ペインが開きます。
[デプロイの詳細] をクリックします。Agent Gateway の上り(内向き)と下り(外向き)の構成は、[Deployment spec] フィールドで確認できます。
gcloud
次の REST API リクエストを使用して、エージェントがゲートウェイに関連付けられていることを確認します。返された出力が
nullの場合、Runtime はゲートウェイへのバインドに失敗しています。curl -s -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/reasoningEngines/RESOURCE_ID" \ | jq '.spec.deploymentSpec.agentGatewayConfig'
次のように置き換えます。
PROJECT_ID: プロジェクト IDREGION: エージェントがデプロイされているリージョンRESOURCE_ID: エージェントのリソース ID
- Google Cloud コンソールで、Agent Platform の [デプロイ] ページに移動します。
Agent Runtime を承認済みの Agent Gateway に制限する
カスタムの組織のポリシーの制約を作成して、エージェントのデプロイ時に使用できる対象となるエージェント ゲートウェイ リソースのセットを定義できます。
カスタムの組織のポリシー制約を作成する
この例では、事前承認済みのゲートウェイのリストとの間のトラフィックのみを許可するカスタム制約を作成します。
エージェントから任意の宛先へ
Agent-to-Anywhere モード(下り)のカスタム制約を定義するには、
constraint-agent-gateway-egress.yamlという名前のファイルを作成します。次の例では、
conditionフィールドは、Agent Gateway リソースが指定されている(フィールドが存在し、空ではない)場合、および指定されたゲートウェイが事前承認済みリストにある場合にのみ、オペレーションが許可されることを指定しています。name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedEgressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway in [ 'projects/AGENT_PROJECT_ID_1/locations/REGION_1/agentGateways/AGENT_GATEWAY_ID_1', 'projects/AGENT_PROJECT_ID_2/locations/REGION_2/agentGateways/AGENT_GATEWAY_ID_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Egress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.次のように置き換えます。
- ORGANIZATION_ID: 組織 ID。
- AGENT_PROJECT_ID: プロジェクト ID。
- REGION: ゲートウェイが作成されたリージョン。
- AGENT_GATEWAY_ID: ゲートウェイ ID。
カスタム制約を適用します。
gcloud org-policies set-custom-constraint EGRESS_CONSTRAINT_PATH
EGRESS_CONSTRAINT_PATH は、前の手順で作成したカスタム制約ファイルのフルパスに置き換えます。
制約を適用する組織のポリシーを作成します。組織のポリシーを定義するには、
policy-agent-gateway-egress.yamlという名前のポリシー YAML ファイルを作成します。この例では、この制約をプロジェクト レベルで適用しますが、組織レベルまたはフォルダレベルで設定することもできます。name: projects/AGENT_PROJECT_ID/policies/custom.allowlistedEgressAgentGatewaysForAgentEngine spec: rules: - enforce: trueAGENT_PROJECT_IDは、実際のプロジェクト ID に置き換えます。組織のポリシーを適用します。
gcloud org-policies set-policy EGRESS_POLICY_PATH
EGRESS_POLICY_PATH は、前の手順で作成した組織のポリシーの YAML ファイルのフルパスに置き換えます。ポリシーが有効になるまでに最大 15 分かかります。
クライアントからエージェントへ
クライアントからエージェントへのモード(上り(内向き))のカスタム制約を定義するには、
constraint-agent-gateway-ingress.yamlという名前のファイルを作成します。次の例では、
conditionフィールドは、Agent Gateway リソースが指定されている(フィールドが存在し、空ではない)場合、および指定されたゲートウェイが事前承認済みリストにある場合にのみ、オペレーションが許可されることを指定しています。name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedIngressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway in [ 'projects/AGENT_PROJECT_ID_1/locations/REGION_1/agentGateways/AGENT_GATEWAY_ID_1', 'projects/AGENT_PROJECT_ID_2/locations/REGION_2/agentGateways/AGENT_GATEWAY_ID_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Ingress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.次のように置き換えます。
- ORGANIZATION_ID: 組織 ID。
- AGENT_PROJECT_ID: プロジェクト ID。
- REGION: ゲートウェイが作成されたリージョン。
- AGENT_GATEWAY_ID: ゲートウェイ ID。
カスタム制約を適用します。
gcloud org-policies set-custom-constraint INGRESS_CONSTRAINT_PATH
INGRESS_CONSTRAINT_PATH は、前の手順で作成したカスタム制約ファイルのフルパスに置き換えます。
制約を適用する組織のポリシーを作成します。組織のポリシーを定義するには、
policy-agent-gateway-ingress.yamlという名前のポリシー YAML ファイルを作成します。この例では、この制約をプロジェクト レベルで適用しますが、組織レベルまたはフォルダレベルで設定することもできます。name: projects/AGENT_PROJECT_ID/policies/custom.allowlistedIngressAgentGatewaysForAgentEngine spec: rules: - enforce: trueAGENT_PROJECT_IDは、実際のプロジェクト ID に置き換えます。組織のポリシーを適用します。
gcloud org-policies set-policy INGRESS_POLICY_PATH
INGRESS_POLICY_PATH は、前の手順で作成した組織のポリシーの YAML ファイルのフルパスに置き換えます。ポリシーが有効になるまでに最大 15 分かかります。
カスタムの組織のポリシー制約の使用方法については、カスタム制約を作成するをご覧ください。
次のステップ
Codelab: Agent Platform でエージェント ワークロードを管理する
Gemini Enterprise Agent Platform の Agent Gateway を使用してエージェント ワークロードを管理する方法について説明します。