このページでは、Agent Gateway を介して Agent Runtime トラフィックをルーティングする方法について説明します。Agent Gateway は、Gemini Enterprise Agent Platform エコシステムのネットワーキングとセキュリティの中心的なコンポーネントです。ユーザーとエージェント間、エージェントとツール間、エージェント間のやり取りなど、すべてのエージェントとのやり取りに安全でガバナンスが適用された接続を提供します。
始める前に
エージェント ランタイムへのエージェントのデプロイについてよくご確認ください。
エージェント ゲートウェイについて学習する。Agent-to-Anywhere(下り)モードで Agent Gateway を使用すると、ツール、モデル、API、他のエージェントへの下りトラフィックを含むすべての下り通信を保護し、制御できます。クライアントからエージェントへの(上り)モードでゲートウェイを使用して、エージェントにアクセスできるクライアントを制御します。ゲートウェイを使用すると、これらのインタラクションに適用する必要がある IAP ポリシーと Model Armor テンプレートを選択できます。
このワークフローを試すには、専用のテスト プロジェクトを作成します。他の重要なワークロードにも使用されるプロジェクトは使用しないでください。
制限事項
- 特定のプロジェクトとリージョンでは、Agent Gateway の Agent-to-Anywhere(下り)インスタンスと Client-to-Agent(上り)インスタンスを 1 つずつのみ使用できます。Agent Gateway を使用するように構成されている同じプロジェクトとリージョン内のすべての Agent Runtime エージェントは、これらの特定のゲートウェイ インスタンスを使用する必要があります。
- エージェントで Agent Gateway が有効になっている場合、Security Command Center Agent Engine Threat Detection サービスは使用できません。
- Runtime エージェントと Agent Gateway リソースのバインドを解除することはできません。そのため、専用のテスト プロジェクトを使用してください。
Agent Runtime トラフィックを Agent Gateway 経由で転送する
Agent Runtime トラフィックを Agent Gateway 経由で転送する手順は次のとおりです。
エージェント ゲートウェイ リソースを作成し、必要に応じて認可ポリシーを関連付けます。ゲートウェイは、エージェントから任意の場所(下り)モードまたはクライアントからエージェント(上り)モードで作成できます。エージェントとゲートウェイは同じプロジェクトとリージョンに作成する必要があります。手順については、エージェント ゲートウェイを設定するをご覧ください。
ゲートウェイがデプロイのニーズを満たすように構成されていることを確認します。たとえば、エージェントで LLM へのアクセスが必要な場合は、このアクセスを許可するようにゲートウェイを構成して、エージェント ランタイムのデプロイの失敗を防ぎます。
エージェントのデプロイ時にゲートウェイ リソースを指定します。たとえば、Agent Runtime にエージェントをデプロイするには、
client.agent_engines.createを使用してlocal_agentオブジェクトと任意のオプション構成を渡します。また、この例に示すように
identity_typeパラメータを使用して、Runtime インスタンスにエージェント ID が割り当てられていることを確認する必要があります。remote_agent = client.agent_engines.create( agent=local_agent, config={ "agent_gateway_config": { "agent_to_anywhere_config": {"agent_gateway": AGENT_GATEWAY_TO_ANYWHERE_NAME}, # "client_to_agent_config": {"agent_gateway": 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(下り(内向き))モードで作成したエージェント ゲートウェイの完全パスに置き換えます。例:projects/PROJECT/locations/REGION/agentGateways/AGENT_GATEWAY_IDクライアントからエージェント(上り)モードでゲートウェイを作成した場合は、代わりに
client_to_agent_configフィールドを使用し、AGENT_GATEWAY_CLIENT_TO_AGENT_NAMEを上り用に作成したエージェント ゲートウェイのフルパスに置き換えます。エージェントとゲートウェイと同じプロジェクトとリージョンにある Agent Registry インスタンスにエージェントを登録します。詳細については、エージェントを登録するをご覧ください。
承認済みの Agent Gateway に Agent Runtime を制限する
カスタムの組織のポリシーの制約を作成して、エージェントのデプロイ時に使用できる対象となるエージェント ゲートウェイ リソースのセットを定義できます。
カスタムの組織のポリシー制約を作成する
この例では、事前承認済みのゲートウェイのリストとの間のトラフィックのみを許可するカスタム制約を作成します。
エージェントから任意の宛先へ
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 alpha 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 alpha 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 alpha 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 alpha org-policies set-policy INGRESS_POLICY_PATH
INGRESS_POLICY_PATH は、前の手順で作成した組織のポリシーの YAML ファイルのフルパスに置き換えます。ポリシーが有効になるまでに最大 15 分かかります。
カスタムの組織のポリシー制約の使用方法については、カスタム制約を作成するをご覧ください。
次のステップ
Codelab: Agent Platform でエージェント ワークロードを管理する
Gemini Enterprise Agent Platform の Agent Gateway を使用してエージェント ワークロードを管理する方法について説明します。