このドキュメントでは、Agent Gateway リソースのデプロイ後のメンテナンス タスクについて説明します。ゲートウェイをまだ作成していない場合は、Agent Gateway を設定するをご覧ください。
始める前に
Agent Gateway リソースを管理する前に、次の前提条件を確認してください。
- ゲートウェイ、接続テンプレート、認可ポリシー、認可拡張機能を表示、更新、削除するために必要な権限があることを確認します。権限の完全なリストについては、必要な権限をご覧ください。
- プロジェクトで必要なサービスを有効にします。詳細については、必要な API をご覧ください。
- ワークロードをゲートウェイから関連付け解除する予定がある場合は、Gemini Enterprise Agent Platform の Agent Runtime デプロイまたは Gemini Enterprise アプリを管理する権限も必要です。
ゲートウェイを表示して検査する
Google Cloudプロジェクトの Agent Gateway リソースを一覧表示し、ゲートウェイの構成、アタッチされた拡張機能、出力専用メタデータを検査できます。
コンソール
Google Cloud コンソールで、[ゲートウェイ] ページに移動します。
選択したプロジェクトのゲートウェイのリストを表示します。
ゲートウェイの名前をクリックして、詳細ページを開きます。
- [詳細] タブで、[概要]、[アクセス認可]、[AI セキュリティ]、[サービス拡張機能]、[VPC 構成] の各セクションを確認します。
- [オブザーバビリティ] タブで、ゲートウェイ トラフィックとポリシーの指標を確認します。詳細については、Agent Gateway のトラフィックをモニタリングするをご覧ください。
gcloud
特定のリージョン内のすべてのゲートウェイを一覧表示します。
gcloud network-services agent-gateways list \ --location=LOCATION \ --project=PROJECT_ID
次のように置き換えます。
LOCATION: ゲートウェイがデプロイされているリージョン(us-central1など)。PROJECT_ID: ゲートウェイをホストする Google Cloudプロジェクトの ID。
特定のゲートウェイの構成を検査します。
gcloud network-services agent-gateways describe AGENT_GATEWAY_NAME \ --location=LOCATION \ --project=PROJECT_ID
AGENT_GATEWAY_NAMEは、Agent Gateway リソースの名前に置き換えます。
変更不可の設定
関連付けられた Agent Registry インスタンスやセキュリティ ポリシー、ガバナンス ポリシーなど、ほとんどの Agent Gateway 構成は、Agent Gateway を更新するの説明に沿って、その場で変更できます。ただし、特定のコア構成は不変であり、代替ゲートウェイをデプロイする必要があります。ゲートウェイを変更する前に、次の表を確認してください。
| 設定 | 可変性 | 要件または制限 |
|---|---|---|
| ゲートウェイの名前とリージョン | 変更不可 | 名前またはリージョンを変更するには、代替ゲートウェイをデプロイします。 |
管理対象アクセスパス ( |
変更不可 | googleManaged.governedAccessPath での作成時に構成されます。インプレースで変更することはできません。 |
Private Service Connect ネットワーク アタッチメント ( |
設定後は変更不可 | ネットワーク アタッチメントをゲートウェイに関連付けると、変更や削除はできません。 |
エージェント接続テンプレートと、関連する Cloud DNS ピアリング、TLS 信頼構成、VPC 下り(外向き)設定 |
条件付きで変更可能 | 新しいテンプレートが同じ networkAttachment を参照している限り、ゲートウェイの構成を更新して、新しい設定で別の接続テンプレートを参照できます。 |
ゲートウェイを交換して不変の設定を変更する
ゲートウェイに関連付けられた PSC ネットワーク アタッチメントなど、不変の設定を変更する必要がある場合は、代替ゲートウェイをデプロイして、ワークロードを新しいゲートウェイに移行する必要があります。
- 代替の Agent Gateway を作成し、Identity and Access Management(IAM)ポリシーと認可ポリシーを構成します。手順については、Agent Gateway を設定するをご覧ください。
代替ゲートウェイを使用するようにワークロードを更新します。
- Gemini Enterprise アプリ: アプリの [セキュリティ] > [構成] 設定で、ゲートウェイ リソース名を更新します。Agent Gateway 経由で Gemini Enterprise トラフィックをルーティングするをご覧ください。
- Agent Runtime エージェント: 単一のプロジェクトとリージョン内で、すべての Agent Runtime エージェントを同じゲートウェイにバインドする必要があります。あるゲートウェイから別のゲートウェイへの直接のインプレース アップデートはサポートされていません。エージェントを移行するには:
- バインドされたすべてのエージェントがトラフィックの 100% を最新のリビジョン(
trafficConfig.trafficSplitAlwaysLatest)にルーティングするようにします。 reasoningEngines.patchを使用してspec.deploymentSpec.agentGatewayConfigを{}に設定し、プロジェクトとリージョン内のすべてのエージェントと以前のゲートウェイの関連付けを解除し、各更新オペレーションが完了するまで待ちます。- 各エージェントで
reasoningEngines.patchを呼び出して、spec.deploymentSpec.agentGatewayConfigを置換ゲートウェイ リソース名に設定します。リクエストの例については、Agent Gateway を介して Agent Runtime トラフィックをルーティングするをご覧ください。
- バインドされたすべてのエージェントがトラフィックの 100% を最新のリビジョン(
すべてのワークロードが以前のゲートウェイを参照しなくなったら、Agent Gateway を削除するの手順に沿って、以前のゲートウェイを削除します。
Agent Gateway を更新する
特定の Agent Gateway 構成を Google Cloud コンソールで直接更新するか、gcloud CLI を使用してゲートウェイ構成を YAML ファイルにエクスポートし、変更を加えてファイルを再インポートできます。
Agent Registry を更新する
関連付けられた Agent Registry は、Google Cloud コンソールまたは gcloud CLI で更新できます。ゲートウェイは、ゲートウェイのリージョンに対応する単一のリージョン レジストリを参照する必要があります。ゲートウェイが Gemini Enterprise アプリにリンクされている場合、ゲートウェイはそのアプリのロケーションに一致する単一のレジストリを保持する必要があります。
コンソール
Google Cloud コンソールで、[ゲートウェイ] ページに移動します。
更新するゲートウェイの名前をクリックします。
[詳細] タブの [概要] セクションで、[レジストリを編集] をクリックします。
ゲートウェイがデプロイされているリージョンと一致するリージョン Agent Registry を選択し、[保存] をクリックします。
gcloud
gcloud
network-services agent-gateways export を使用してゲートウェイ構成を agent-gateway.yaml にエクスポートし、registries、description、または labels を編集して(createTime、updateTime、agentGatewayCard、selfLink などの出力専用フィールドを削除)、ゲートウェイの接続テンプレートを更新するに示されているように、gcloud network-services agent-gateways import を使用してファイルを再インポートします。
接続テンプレートを更新する
Agent Gateway リソースの接続テンプレートを更新するには、gcloud CLI を使用します。
gcloud
更新された接続設定を使用して新しい
AgentConnectivityTemplateを作成し、既存のゲートウェイと同じnetworkAttachmentを使用するようにします。テンプレートの構文と構成手順の詳細については、VPC 接続を使用して Agent Gateway を設定するをご覧ください。既存のゲートウェイ構成を YAML ファイルにエクスポートします。
gcloud network-services agent-gateways export AGENT_GATEWAY_NAME \ --destination="agent-gateway.yaml" \ --location=LOCATION \ --project=PROJECT_ID
次のように置き換えます。
AGENT_GATEWAY_NAME: 更新するゲートウェイの名前。LOCATION: ゲートウェイがデプロイされているリージョン。PROJECT_ID: ゲートウェイがデプロイされているプロジェクト ID。
エクスポートされた
agent-gateway.yamlファイルで、既存のprotocols、registries、description、labelsフィールドをそのまま保持し、出力専用フィールド(createTime、updateTime、agentGatewayCard、selfLink)を削除して、新しいテンプレートを参照するようにagentConnectivityTemplateを更新します。name: projects/PROJECT_NUMBER/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME protocols: - MCP googleManaged: governedAccessPath: AGENT_TO_ANYWHERE registries: - //agentregistry.googleapis.com/projects/PROJECT_NUMBER/locations/LOCATION agentConnectivityTemplate: projects/PROJECT_NUMBER/locations/LOCATION/agentConnectivityTemplates/NEW_TEMPLATE_NAME次のように置き換えます。
PROJECT_NUMBER: ゲートウェイがデプロイされている数値のプロジェクト番号(agentConnectivityTemplateには、プロジェクト ID ではなくプロジェクト番号が必要です)。LOCATION: ゲートウェイのリージョン。AGENT_GATEWAY_NAME: ゲートウェイの名前。NEW_TEMPLATE_NAME: 置換接続テンプレートの名前。
更新した YAML ファイルを再度インポートして、変更を適用します。
gcloud network-services agent-gateways import AGENT_GATEWAY_NAME \ --source="agent-gateway.yaml" \ --location=LOCATION \ --project=PROJECT_ID
オプション:ゲートウェイの更新が完了したら、以前の接続テンプレートを削除してください。
gcloud network-services agent-connectivity-templates delete OLD_TEMPLATE_NAME \ --location=LOCATION \ --project=PROJECT_ID
IAP 設定または Model Armor テンプレートを変更する
IAP の適用設定と Model Armor テンプレートを変更するには、ゲートウェイに接続されている認可拡張機能を更新します。
コンソール
Google Cloud コンソールで、[ゲートウェイ] ページに移動します。
更新するゲートウェイの名前をクリックします。
[詳細] タブで、接続されているセキュリティ拡張機能を更新します。
IAP 自動適用モードを変更する: [アクセス認可] セクションで、[アクセス認可] の横にある [アクセス認可を編集] をクリックします。[監査のみ](ドライラン モード)または [ポリシーを適用する] を選択し、[保存] をクリックします。
Model Armor テンプレートを変更する: [AI セキュリティ] セクションで、[リクエストのテンプレート] の横にある [リクエスト テンプレートを編集] または [レスポンスのテンプレート] の横にある [レスポンス テンプレートを編集] をクリックします。置換テンプレートを選択し、[保存] をクリックします。
gcloud
ゲートウェイのリージョン内の認可拡張機能を一覧表示して、拡張機能の名前を特定します。
gcloud service-extensions authz-extensions list \ --location=LOCATION \ --project=PROJECT_ID
LOCATIONはゲートウェイのリージョンに、PROJECT_IDはプロジェクト ID に置き換えます。拡張機能の現在の構成を確認します。
gcloud service-extensions authz-extensions describe AUTHZ_EXTENSION_NAME \ --location=LOCATION \ --project=PROJECT_ID \ --format=yaml
AUTHZ_EXTENSION_NAMEは、IAP または Model Armor のAuthzExtensionリソースの名前に置き換えます。更新した拡張機能の仕様を
authz-extension.yamlに保存します。createTimeやupdateTimeなどの出力専用フィールドは省略します。IAP 拡張機能の場合: 監査専用モードの場合は
iamEnforcementMode: "DRY_RUN"を含めます。ポリシーを適用する場合はiamEnforcementModeを削除します。name: AUTHZ_EXTENSION_NAME service: iap.googleapis.com failOpen: false timeout: 1s metadata: iapPolicyVersion: "V2" iamEnforcementMode: "DRY_RUN" # Omit this line to enforce policiesModel Armor 拡張機能の場合:
metadata.model_armor_settingsのrequest_template_idとresponse_template_idを更新します。name: AUTHZ_EXTENSION_NAME service: modelarmor.LOCATION.rep.googleapis.com failOpen: false timeout: 1s metadata: model_armor_settings: '[ { "request_template_id": "projects/MODEL_ARMOR_PROJECT_ID/locations/LOCATION/templates/REQUEST_TEMPLATE_ID", "response_template_id": "projects/MODEL_ARMOR_PROJECT_ID/locations/LOCATION/templates/RESPONSE_TEMPLATE_ID" } ]'次のように置き換えます。
AUTHZ_EXTENSION_NAME: Model ArmorAuthzExtensionリソースの名前。LOCATION: ゲートウェイのリージョン。MODEL_ARMOR_PROJECT_ID: Model Armor テンプレートをホストするプロジェクト ID。REQUEST_TEMPLATE_ID、RESPONSE_TEMPLATE_ID: リクエスト テンプレートとレスポンス テンプレートの ID。
ゲートウェイ サービス アカウント(
agentGatewayCard.serviceExtensionsServiceAccount)に、新しく参照されたテンプレート プロジェクトに対するroles/modelarmor.userと、ゲートウェイ プロジェクトに対するroles/modelarmor.calloutUserとroles/serviceusage.serviceUsageConsumerが付与されていることを確認します(認可を委任するをご覧ください)。
更新された拡張機能の YAML ファイルをインポートします。
gcloud service-extensions authz-extensions import AUTHZ_EXTENSION_NAME \ --source="authz-extension.yaml" \ --location=LOCATION \ --project=PROJECT_ID
新しい認可ポリシーを接続するか、既存の AuthzPolicy でトラフィック マッチング ルールを変更するには、認可を委任するをご覧ください。
Agent Gateway からワークロードの関連付けを解除する
Agent Gateway を削除する前に、その Agent Gateway を参照するすべての Gemini Enterprise app と Agent Runtime エージェントの関連付けを解除する必要があります。
Gemini Enterprise app の関連付けを解除する
Google Cloud コンソールで、Gemini Enterprise app から Agent Gateway のリンクを解除できます。
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
ゲートウェイに関連付けられているアプリの名前をクリックします。
[セキュリティ] をクリックします。
[構成] タブの [Agent Gateway の構成] で、[Agent Gateway のリソース名] フィールドをクリアします。
[保存] をクリックします。
Agent Gateway の関連付けを解除すると、アプリのアウトバウンド トラフィックがゲートウェイ経由でルーティングされなくなります。インポートされたエージェントと Model Context Protocol(MCP)サーバーは Agent Registry に登録されたままになりますが、ゲートウェイを再度リンクするまで、アプリはそれらにアクセスできません。新しいゲートウェイは、同じ Agent Registry を参照する必要があります。
Agent Runtime エージェントの関連付けを解除する
Google Cloud コンソールと gcloud CLI では、Agent Runtime ゲートウェイ バインディングの変更はサポートされていません。エージェントを実行したまま、デプロイされた Agent Runtime エージェントから Agent Gateway の関連付けを解除するには、reasoningEngines.patch REST API メソッドを呼び出して spec.deploymentSpec.agentGatewayConfig をクリアします。
エージェントがすべてのトラフィックを最新リビジョンにルーティングするようにします(
trafficConfig.trafficSplitAlwaysLatestがtrueに設定されているか、手動のtrafficConfig分割が構成されていない)。手動リビジョン トラフィック分割が有効で、以前のすべてのリビジョンが不可逆的にアーカイブされている場合、ゲートウェイ バインディングのクリアまたは変更は失敗します。詳細については、Agent Gateway とリビジョンをご覧ください。updateMask=spec.deploymentSpec.agentGatewayConfigと空のagentGatewayConfigオブジェクト({})を含むPATCHリクエストを推論エンジンに送信します。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "spec": { "deploymentSpec": { "agentGatewayConfig": {} } } }' \ "https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/reasoningEngines/RESOURCE_ID?updateMask=spec.deploymentSpec.agentGatewayConfig"次のように置き換えます。
REGION: エージェントがデプロイされているリージョン。PROJECT_ID: エージェントがデプロイされているプロジェクト ID。RESOURCE_ID: エージェントのリソース ID。
Agent Gateway を削除する
Agent Gateway は、孤立したセキュリティ ポリシーやエージェント トラフィック パスの破損を防ぐために、厳格な参照トラッキングを適用します。次のいずれかの条件に該当する場合、ゲートウェイの削除は失敗し、 Google Cloud コンソールの [削除] ボタンは使用できないままになります。
- 1 つ以上の Agent Runtime エージェントまたは Gemini Enterprise app が、引き続きゲートウェイを参照しています。
AuthzPolicy(IAP、Model Armor、カスタム プロバイダの場合)またはTelemetryPolicyは、引き続きゲートウェイをターゲットにします。- VPC 構成の更新オペレーションがゲートウェイでまだ実行されています。
Agent Gateway を削除して、関連するリソースをクリーンアップするには、次の手順を順番に実施します。
コンソール
- Gemini Enterprise app または Agent Runtime エージェントがゲートウェイを参照していないことを確認します。Agent Gateway からワークロードの関連付けを解除するの手順に沿って操作します。
Google Cloud コンソールで、[ゲートウェイ] ページに移動します。
削除するゲートウェイの名前をクリックします。
[詳細] タブで、ゲートウェイをターゲットとするすべてのポリシーの関連付けを削除します。
- [アクセス承認] セクションが表示されたら、[削除] をクリックして、削除を確定します。この操作を行うと、IAP
AuthzPolicyとそのAuthzExtensionの両方が削除されます。 - [AI Security] セクションが表示されたら、[削除] をクリックして、削除を確定します。この操作を行うと、Model Armor の
AuthzPolicyとそのAuthzExtensionの両方が削除されます。 - [サービス拡張機能] テーブルを確認します。カスタム
AuthzPolicyリソースが接続されたままになっている場合は、この手順の gcloud タブを使用して削除してから続行します。
- [アクセス承認] セクションが表示されたら、[削除] をクリックして、削除を確定します。この操作を行うと、IAP
すべてのポリシーの関連付けが削除され、VPC の更新が進行中でない場合は、[削除] をクリックして、削除を確定します。
プロジェクトの [ゲートウェイ] リストにゲートウェイが表示されなくなったことを確認します。
省略可: 他のゲートウェイで使用されていない場合は、未使用の接続リソースをクリーンアップします。[gcloud] タブを使用して
AgentConnectivityTemplateを削除し、ネットワーク アタッチメントを削除します。
gcloud
- Gemini Enterprise app または Agent Runtime エージェントがゲートウェイを参照していないことを確認します。Agent Gateway からワークロードの関連付けを解除するの手順に沿って操作します。
認可ポリシーと認可拡張機能を削除します。
ゲートウェイのリージョン内の認可ポリシーを一覧表示して、
target.resourcesフィールドでゲートウェイを参照しているポリシーを見つけ、参照されているauthzExtensionsをメモします。gcloud network-security authz-policies list \ --location=LOCATION \ --project=PROJECT_ID \ --format="yaml(name,target.resources,customProvider.authzExtension.resources)"
LOCATIONはゲートウェイのリージョンに、PROJECT_IDはプロジェクト ID に置き換えます。ゲートウェイをターゲットとする各
AuthzPolicyを削除します。gcloud network-security authz-policies delete AUTHZ_POLICY_NAME \ --location=LOCATION \ --project=PROJECT_ID
AUTHZ_POLICY_NAMEは、ゲートウェイをターゲットとする各認可ポリシーの ID に置き換えます(例: コンソールで作成されたポリシーの場合はAGENT_GATEWAY_NAME-iap-authzpolicyまたはAGENT_GATEWAY_NAME-aisecurity-authzpolicy)。省略可: 参照元の
AuthzPolicyリソースを削除した後、他のポリシーで使用されていないAuthzExtensionリソースを削除します。gcloud service-extensions authz-extensions delete AUTHZ_EXTENSION_NAME \ --location=LOCATION \ --project=PROJECT_ID
AUTHZ_EXTENSION_NAMEは、未使用の認可拡張機能の ID に置き換えます。
Agent Gateway を削除します。
gcloud network-services agent-gateways delete AGENT_GATEWAY_NAME \ --location=LOCATION \ --project=PROJECT_ID
AGENT_GATEWAY_NAMEは、削除するゲートウェイの名前に置き換えます。ゲートウェイがリージョン ゲートウェイ リストに表示されなくなったことを確認します。
gcloud network-services agent-gateways list \ --location=LOCATION \ --project=PROJECT_ID
省略可: Agent Gateway が参照している
AgentConnectivityTemplateは削除できません。ゲートウェイを削除したら、未使用の接続テンプレートを削除します。gcloud network-services agent-connectivity-templates delete CONNECTIVITY_TEMPLATE_NAME \ --location=LOCATION \ --project=PROJECT_ID
CONNECTIVITY_TEMPLATE_NAMEは、未使用の接続テンプレートの名前に置き換えます。基盤となる Private Service Connect ネットワーク アタッチメント、プライベート Cloud DNS ゾーン、Certificate ManagerTrustConfigリソースが不要になった場合は、ネットワーク アタッチメントを削除するをご覧ください。