1. はじめに
この Codelab では、Agent Development Kit(ADK)、Agent Engine、Google Kubernetes Engine を使用して、単一のエージェント / 複数のツールを安全にデプロイします。このセッションでは、Gemini Enterprise でユーザーが開始した AI エージェントが、GKE Gateway と Service Extensions を使用して MCP ツールのレスポンスからセンシティブ データを安全に削除しながら、Google Cloud を安全にナビゲートする方法について説明します。
学習内容
- OpenTelemetry 計測を使用して、ADK 住宅ローン アシスタント エージェントを Agent Engine にデプロイする
- 内部 Gateway の背後にある Google Kubernetes Engine(GKE)にバックエンド MCP サーバーをデプロイする
- PSC インターフェースと DNS ピアリングを使用して、Agent Engine をプロジェクト VPC に接続する
- Apigee MCP Discovery プロキシを使用して REST API を MCP ツールとして公開する
- DLP の編集と MCP 承認のために Service Extensions を使用して、管理対象エージェントの下り(外向き)用に GKE Gateway を構成する
- Model Armor を使用して、プロンプトとレスポンスのスクリーニングに AI ガードレールを適用する
必要なもの
- ウェブブラウザ(Chrome など)
- 課金を有効にした Google Cloud プロジェクト
- Terraform、Kubernetes、Python に関する基本的な知識
この Codelab は、エンタープライズ環境でエージェント ワークフローをデプロイして保護したいデベロッパーとセキュリティ専門家を対象としています。
2. 始める前に
Google Cloud プロジェクトを作成し、必要な API を有効にします。
- Google Cloud コンソールの [プロジェクト セレクタ] ページで、Google Cloud プロジェクト を選択または作成します。
- Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
必要な IAM のロール
この Codelab では、Google Cloud プロジェクトのプロジェクト オーナーのロールがあることを前提としています。
API を有効にする
- Google Cloud コンソールで、[Cloud Shell をアクティブにする] をクリックします。Cloud Shell を初めて使用する場合は、ブーストありまたはブーストなしで信頼できる環境で Cloud Shell を起動するかどうかを選択できるペインが表示されます。Cloud Shell を承認するよう求められたら、[承認] をクリックします。
- Cloud Shell で、必要な API をすべて有効にします。
gcloud services enable \ compute.googleapis.com \ container.googleapis.com \ dns.googleapis.com \ certificatemanager.googleapis.com \ dlp.googleapis.com \ aiplatform.googleapis.com \ discoveryengine.googleapis.com \ apigee.googleapis.com
依存関係のインストール
Cloud Shell で、必要なツールがインストールされていることを確認します。通常、Terraform、kubectl、Go はプリインストールされています。uv(Python パッケージ マネージャー)と Skaffold をインストールする必要があります。
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install Skaffold
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && \
sudo install skaffold /usr/local/bin/
環境変数を設定する
この Codelab 全体で使用する次の環境変数を設定します。
export PROJECT_ID=$(gcloud config get project)
export REGION=us-central1
export LOCATION=${REGION}
一般公開 DNS ゾーンを作成する
この Codelab では、Terraform 構成を適用する前に、プロジェクトにパブリック DNS ゾーンが存在している必要があります。このゾーンは、ネームサーバー委任に必要です。これにより、設定で Certificate Manager に必要なレコードの作成を自動化できます。
Cloud Shell で次のコマンドを実行して、ゾーンを作成します。
gcloud dns managed-zones create "inference-gateway-zone" \
--dns-name="gateway.example.com." \
--description="Public zone for Inference Gateway" \
--visibility="public" \
--project="${PROJECT_ID}"
3. GitHub リポジトリのクローンを作成する
- ローカルマシンのターミナルで、
cloud-networking-solutionsリポジトリのクローンを作成します。git clone https://github.com/googleCloudPlatform/cloud-networking-solutions.git - ダウンロードしたリポジトリ ディレクトリに移動します。
cd cloud-networking-solutions/demos/service-extensions-gke-gateway
4. Terraform を使用してインフラストラクチャをデプロイする
Terraform を使用して、基盤となるネットワーク、GKE クラスタ、必要な ID 構成をプロビジョニングします。
- クローンを作成したリポジトリの
terraformディレクトリに移動します。cd terraform - Terraform バックエンドを構成します。部分的なバックエンド構成用の
backend.confファイルを作成します。は、グローバルに一意のバケット名に置き換えます。cat <<EOF > backend.conf bucket = "<YOUR_TERRAFORM_STATE_BUCKET>" prefix = "terraform" EOF
- 変数ファイルの例をコピーし、プロジェクトの値で更新します。
cp example.tfvars terraform.tfvars terraform.tfvarsを編集して、プレースホルダの値を置き換えます。次の値を置き換えます。- project_id: Google Cloud プロジェクト ID。
- organization_id: 数値の GCP 組織 ID。
- dns_zone_domain: 制御するドメイン(例:
demo.example.com.)。末尾はドットで終わる必要があります。
enable_certificate_manager = trueenable_model_armor = trueenable_agent_engine = trueenable_psc_interface = true
- Terraform 構成を初期化して適用します。
terraform init -backend-config=backend.conf terraform plan -out=tfplan terraform apply "tfplan"
5. Skaffold を使用してサンプル ワークロードをデプロイする
次に、MCP サーバーと外部処理サービスを GKE クラスタにデプロイします。
- Terraform で作成された GKE クラスタに接続します。
gcloud container clusters get-credentials gateway-cluster \ --region=${REGION} \ --project=${PROJECT_ID} - プロジェクトのルートに戻り、Kubernetes マニフェスト テンプレートを構成します。構成例をコピーして、プロジェクト ID とベースドメインを設定します。環境に合わせて
BASE_DOMAINを設定します。BASE_DOMAINは、dns_zone_domainTerraform 変数(末尾のドットなし)と一致する必要があります。export BASE_DOMAIN=example.com - テンプレートから Kubernetes マニフェストと
skaffold.yamlを生成します。bash k8s/generate.sh envsubst '${PROJECT_ID}' < skaffold.yaml.tmpl > skaffold.yaml - すべてのバックエンド サービスをデプロイします。
skaffold run -m legacy-dms,income-verification-api,corporate-email,dlp-ext-proc - Gateway と HTTPRoute の構成をデプロイします。
kubectl apply -k k8s/gateway-internal/
6. Model Armor で AI ガードレールを適用する
有害なプロンプトの削除やデータ漏洩の防止などのコンテンツ セキュリティに関する決定を Model Armor に委任できます。
前提条件: IAM ロールを付与する
GKE Gateway サービス アカウントに必要なロールを付与する必要があります。サービス アカウントの形式は service-GATEWAY_PROJECT_NUMBER@gcp-sa-dep.iam.gserviceaccount.com です。
次のコマンドを実行して、必要な権限を付与します。
export GATEWAY_PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
# Grant roles in the Gateway project
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/modelarmor.calloutUser
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/serviceusage.serviceUsageConsumer
# Grant role in the project containing Model Armor templates
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:service-${GATEWAY_PROJECT_NUMBER}@gcp-sa-dep.iam.gserviceaccount.com \
--role=roles/modelarmor.user
Model Armor 認可拡張機能を作成する
リージョンの Model Armor サービスを指す拡張機能を定義します。この構成を ma-content-authz-extension.yaml として保存します。
Terraform で作成された Model Armor テンプレート ID をエクスポートします。
export MA_TEMPLATE_ID=$(cd terraform && terraform output -raw model_armor_template_id)
cat >ma-content-authz-extension.yaml <<EOF
name: ma-ext
service: modelarmor.$LOCATION.rep.googleapis.com
metadata:
model_armor_settings: '[
{
"response_template_id": "projects/${PROJECT_ID}/locations/$LOCATION/templates/${MA_TEMPLATE_ID}",
"request_template_id": "projects/${PROJECT_ID}/locations/$LOCATION/templates/${MA_TEMPLATE_ID}"
}
]'
failOpen: true
EOF
gcloud beta service-extensions authz-extensions import ma-ext \
--source=ma-content-authz-extension.yaml \
--location=$LOCATION
Model Armor 認可ポリシーを作成する
Model Armor 拡張機能を Agent Gateway に関連付けるポリシーを作成します。この構成を ma-content-authz-policy.yaml として保存します。
cat >ma-content-authz-policy.yaml <<EOF
name: ma-content-authz-policy
target:
resources:
- "projects/$PROJECT_ID/locations/$LOCATION/gateways/mortgage-gateway"
policyProfile: CONTENT_AUTHZ
action: CUSTOM
customProvider:
authzExtension:
resources:
- "projects/$PROJECT_ID/locations/$LOCATION/authzExtensions/ma-ext"
EOF
gcloud network-security authz-policies import ma-content-authz-policy \
--source=ma-content-authz-policy.yaml \
--location=$LOCATION
7. Gemini Enterprise を構成する
オブザーバビリティを有効にする
住宅ローン エージェントは、OpenTelemetry 計測とともにデプロイされ、次のテレメトリー環境変数がデフォルトで有効になっています。
GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY=trueOTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=trueOTEL_TRACES_SAMPLER=parentbased_traceidratio
Gemini Enterprise でトレースとスパンを構成する方法については、オブザーバビリティ設定を管理するをご覧ください。
Gemini Enterprise で Model Armor を有効にする
Gemini Enterprise アシスタントに Model Armor フィルタリングを適用して、ユーザー プロンプトとモデルのレスポンスの両方をスクリーニングします。グローバル Gemini Enterprise アプリには us マルチリージョンの Model Armor テンプレートが必要なため、Terraform はこの目的のために別のテンプレートをデプロイします。
Terraform の出力からテンプレート名を取得します。
cd terraform
export GE_MA_TEMPLATE_NAME=$(terraform output -raw model_armor_gemini_enterprise_template_name)
Gemini Enterprise インスタンスのアプリ ID を取得します。
- Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
- ナビゲーション メニューで [アプリ] をクリックします。
- Gemini Enterprise インスタンスの ID をコピーする
ID を環境変数としてエクスポートします。
export APP_ID=<PASTE_APP_ID>
アシスタントにパッチを適用して Model Armor を有効にします。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: ${PROJECT_ID}" \
"https://global-discoveryengine.googleapis.com/v1/projects/${PROJECT_ID}/locations/global/collections/default_collection/engines/${APP_ID}/assistants/default_assistant?update_mask=customerPolicy" \
-d '{
"customerPolicy": {
"modelArmorConfig": {
"userPromptTemplate": "'"$GE_MA_TEMPLATE_NAME"'",
"responseTemplate": "'"$GE_MA_TEMPLATE_NAME"'",
"failureMode": "FAIL_OPEN"
}
}
}'
Model Armor が使用できない場合にリクエストを許可するには failureMode を FAIL_OPEN に設定し、リクエストをブロックするには FAIL_CLOSED に設定します。
8. Gemini Enterprise でエージェントをデプロイして追加する
認可の詳細情報を取得する
認可の詳細情報を取得する手順は次のとおりです。
- Google Cloud コンソールの [API とサービス] ページで、[認証情報] ページに移動します。
- [認証情報] に移動します。
- [認証情報を作成] をクリックし、[OAuth クライアント ID] を選択します。
- [アプリケーションの種類] で [ウェブ アプリケーション] を選択します。
- [承認済みのリダイレクト URI] セクションに、次の URI を追加します。
- https://vertexaisearch.cloud.google.com/oauth-redirect
- https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
- [作成] をクリックします。
- デプロイ用にクライアント ID とクライアント シークレットをエクスポートします。
export OAUTH_CLIENT_ID=<Client ID>
export OAUTH_CLIENT_SECRET=<Client Secret>
住宅ローン エージェントをデプロイする
src/mortgage-agent/deploy_agent.py スクリプトは、ADK エージェントを Agent Engine にデプロイし、必要に応じて Gemini Enterprise に登録します。Gemini Enterprise 登録フローの背景については、A2A エージェントを登録して管理するをご覧ください。
Terraform デプロイから変数をエクスポートします。
export VPC_NAME=$(cd terraform && terraform output -raw vpc_name)
export PSC_ATTACHMENT=$(cd terraform && terraform output -raw psc_interface_network_attachment_id)
export DNS_PEERING_DOMAIN=$(cd terraform && terraform output -raw psc_interface_dns_peering_domain)
依存関係をインストールしてデプロイします。
cd src/mortgage-agent
uv sync
Vertex Agent Engine にエージェントをデプロイし、Gemini Enterprise に登録します。
uv run python deploy_agent.py \
--project=${PROJECT_ID} \
--dms-mcp-url=https://dms.${DNS_PEERING_DOMAIN%%.}/mcp \
--income-verification-url=https://income-verification.${DNS_PEERING_DOMAIN%%.} \
--email-mcp-url=https://email.${DNS_PEERING_DOMAIN%%.}/mcp \
--network-attachment=projects/${PROJECT_ID}/regions/${REGION}/networkAttachments/${PSC_ATTACHMENT} \
--dns-peering-domain=${DNS_PEERING_DOMAIN} \
--dns-peering-target-project=${PROJECT_ID} \
--dns-peering-target-network=${VPC_NAME} \
--enable-agent-identity \
--ge-deploy \
--app-id=${APP_ID} \
--oauth-client-id=${OAUTH_CLIENT_ID} \
--agent-name=mortgage-agent
フラグ リファレンス
フラグ | デフォルト | 説明 |
|
| GCP プロジェクト ID |
| (必須) | DMS MCP サーバーの URL |
| (必須) | Income Verification API のベース URL。 |
| (必須) | メール MCP サーバーの URL |
|
| GCP リージョン |
|
| ステージング用の GCS バケット |
|
| デプロイされたエージェントの表示名 |
| (省略可) | 既存のエージェントをインプレースで更新する(完全なリソース名を渡す) |
| (省略可) | PSC インターフェースのネットワーク アタッチメント(フルパスまたは名前) |
| (省略可) | PSC-I DNS ピアリングの DNS ドメイン(末尾はドットにする必要があります) |
| (省略可) | DNS ピアリングのターゲット VPC ネットワークをホストするプロジェクト |
| (省略可) | DNS ピアリングの VPC ネットワーク名 |
|
| エージェントごとの最小権限認証情報を有効にする |
|
| デプロイ後に Gemini Enterprise にエージェントを登録する |
| (省略可) | Gemini Enterprise エンジン ID( |
|
| OAuth2 クライアント ID( |
|
| OAuth2 クライアント シークレット( |
|
| エージェントの Gemini モデル名 |
|
| Gemini Enterprise の認可とエージェント名 |
| (省略可) | 再デプロイせずに Gemini Enterprise に既存の推論エンジンを登録する(完全なリソース名を渡す) |
権限のあるユーザーを追加する
Google Cloud コンソールを使用して権限付きユーザーを ADK エージェントに追加するには、ユーザーとその権限を追加または変更するをご覧ください。
9. エージェントをテストする
エージェント、GKE Gateway、すべてのバックエンド サービスをデプロイして構成したので、エンドツーエンドのフローをテストして、セキュリティ ポリシーが想定どおりに機能していることを確認します。Gemini Enterprise インターフェース内で「mortgage-agent」とやり取りします。
エージェントへのアクセス
- Google Cloud コンソールで [Gemini Enterprise] ページに移動します。
- 前の手順で構成した Gemini Enterprise アプリを選択します。このアプリには「mortgage-agent」が登録されています。
- [概要] タブで、[Gemini Enterprise ウェブアプリの準備が完了しました] セクションに表示されている URL を参照します。
- 左側のメニュー([Agent Gallery])から [エージェント] タブを選択します。
- これで、「Mortgage Assistant Agent」とチャットできるようになります。
テストケース 1: 「ハッピー パス」 - PII の秘匿化によるデータの要約
このテストでは、エージェントがエージェント ゲートウェイを介してバックエンド システムにアクセスできることと、機密情報を削除するためにデータ損失防止(DLP)ポリシーが適用されていることを確認します。
- 住宅ローン アシスタント エージェントに次のプロンプトを送信します。
I'm reviewing the Sterling family's current application. Can you summarize their 2024 and 2025 tax returns and verify if their total household income meets our 2026 debt-to-income requirements? - 舞台裏で起きていること:
- Gemini Enterprise のエージェントは、必要なツール(税務申告用のドキュメント管理システム(DMS)、所得確認 API など)に対するリクエストを作成します。
- Model Armor は、リクエストとレスポンスのペイロードを検査して脅威を検出します。
- 構成した「コンテンツベースの認可ポリシー」がカスタム DLP 拡張機能(
dlp-content-authz-ext)をトリガーします。この拡張機能は、バックエンド システムから取得したデータを検査します。 - DLP サービスは、エージェントに到達する前に、納税申告書データから社会保障番号(SSN)などの個人を特定できる情報(PII)を秘匿化します。
- 予想される結果: エージェントは、税務申告の概要と収入確認のステータスを返します。特に、エージェントが提供する要約を検査します。納税者番号(SSN)などの機密情報がプレースホルダ(
[REDACTED]など)に置き換えられていることを確認します。これにより、ゲートウェイ経由で DLP ポリシーが実行されたことが確認できます。
オブザーバビリティと監査
これらのテスト全体を通して、エージェント プラットフォームと関連サービスはテレメトリーを収集しています。
- Cloud Logging: GKE Gateway、GKE ワークロード、その他のサービスからの詳細なログにより、リクエスト、ポリシー評価、結果の監査証跡が提供されます。
- Cloud Trace: エージェントとバックエンド サービスで構成された OpenTelemetry 計測により、Gemini Enterprise から GKE Gateway を経由してバックエンド ツールまでの呼び出しフロー全体を可視化できます。これは、リクエストのライフサイクルのデバッグと理解に非常に役立ちます。
セッションのトレースを表示します。
- Google Cloud コンソールで、[Vertex AI Agent Engine] ページに移動します。
- Agent Engine に移動します。選択したプロジェクトの一部である Agent Engine インスタンスがリストに表示されます。[フィルタ] フィールドを使用して、指定した列でリストをフィルタできます。
- Agent Engine インスタンスの名前をクリックします。
- [トレース] タブをクリックします。
- [セッションビュー] または [スパンビュー] を選択できます。
- セッションまたはスパンをクリックすると、トレースの詳細(スパンの有向非巡回グラフ(DAG)、入力と出力、メタデータ属性など)を確認できます。
10. 省略可: Apigee を使用して REST API を MCP にトランスコードする
Google の収入確認サービスは Model Context Protocol をネイティブにサポートしていますが、多くのエンタープライズ レガシー システムは RESTful API のみを提供しています。この省略可能なステップでは、Apigee MCP 検出プロキシを使用して、収入確認サービスの REST エンドポイントを MCP ツールにトランスコードします。これにより、Apigee の高度なガバナンス、レート制限、セキュリティ ポリシーを既存のツールに適用できます。
詳細については、Apigee MCP の概要をご覧ください。
前提条件
続行する前に、Apigee API ハブ をプロビジョニングして構成していることを確認してください。API Hub をプロビジョニングするの手順に沿って、設定して Apigee インスタンスをアタッチします。
ステップ 1: Apigee のサービス アタッチメントを作成する
Apigee が GKE で実行されている内部サービスにアクセスできるようにするには、サービス アタッチメントを作成する必要があります。
- 内部 GKE Gateway 転送ルールを検索します。
export RULE_URI=$(gcloud compute forwarding-rules list \ --filter="loadBalancingScheme=INTERNAL_MANAGED AND target~targetHttpsProxies" \ --format="value(selfLink.segment(6), region.basename(), name)" | \ awk '{print "projects/" $1 "/regions/" $2 "/forwardingRules/" $3}') - サービス アタッチメントを作成します。
gcloud compute service-attachments create internal-gke-gateway-apigee \ --region=${REGION} \ --target-service=$RULE_URI \ --connection-preference=ACCEPT_AUTOMATIC \ --nat-subnets=gateway-psc-subnet
ステップ 2: Terraform で Apigee を有効にする
次に、インフラストラクチャ構成を更新して、Apigee 組織とインスタンスをプロビジョニングします。
terraformディレクトリに移動します。cd terraformterraform.tfvarsを編集してenable_apigee = trueを設定します。- 変更を適用します。
terraform apply
ステップ 3: OpenAPI 仕様を定義する
Apigee は、標準の OpenAPI(OAS)定義を使用してツールを検出してトランスコードします。次の内容で income-verification-oas.yaml という名前のファイルを作成します。
openapi: 3.0.0
info:
title: Income Verification API
description: Verify applicant income through third-party employer records.
version: 1.0.0
servers:
- url: https://income-verification.internal.${DNS_PEERING_DOMAIN%%.}/api
paths:
/income-verification/verify:
post:
summary: Verify applicant income
operationId: verifyApplicant
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
last_name:
type: string
responses:
'200':
description: Successful verification
content:
application/json:
schema:
type: object
ステップ 4: Apigee MCP Discovery プロキシをデプロイする
MCP Discovery Proxy は、MCP サーバーとして機能する専用の Apigee プロキシです。
- Apigee UI で、[Develop] > [API Proxies] に移動します。
- [新規作成] をクリックし、[MCP Discovery プロキシ] を選択します。
- プロキシに
income-verification-discoveryという名前を付けます。 - [OpenAPI 仕様] セクションで、作成した
income-verification-oas.yamlファイルをアップロードします。 - 環境グループを、内部 Gateway にアクセスできるグループに設定します。
- [デプロイ] をクリックします。
(省略可)セキュリティ ポリシーを追加する
プロキシをデプロイまたは共有する前に、プロキシを保護する必要があります。OAuth トークンや API キーなどのセキュリティ要件を適用するポリシーを追加できます。セキュリティ ポリシーを追加する手順については、API の保護に関する Apigee のドキュメントをご覧ください。
ステップ 5: トランスコードされたツールへのアクセスを確認する
デプロイすると、Apigee は POST /verify エンドポイントを verifyApplicant MCP ツールに自動的にトランスコードします。
- Apigee MCP エンドポイントで使用可能なツールを一覧表示します。
curl -X POST https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {} }' - REST 仕様からトランスコードされた
verifyApplicantツールがレスポンスに表示されます。これで、Apigee を介してこのツールを呼び出すことができるようになります。Apigee は、構成したセキュリティ ポリシーを適用しながら、基盤となる REST サービスへの変換を処理します。
ステップ 6: Apigee を使用するように Mortgage Agent を更新する
Apigee が REST API を MCP 準拠のツールに正常にトランスコードしたので、エージェントのデプロイ構成を更新する必要があります。エージェントを Apigee エンドポイントに接続することで、すべての収入確認リクエストで Apigee のエンタープライズ グレードのセキュリティ、ロギング、トラフィック管理を利用できるようになります。
- Apigee MCP URL を特定する: エンドポイントは
https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcpというパターンに従う必要があります。 - デプロイ スクリプトを再実行します。新しい
--income-verification-urlとともに--updateフラグを使用します。これにより、完全に削除することなく、Agent Engine の既存のエージェントが更新されます。cd src/mortgage-agent # Update the agent to route income verification through Apigee uv run python deploy_agent.py \ --project=${PROJECT_ID} \ --update \ --agent-name=mortgage-agent \ --dms-mcp-url=https://dms.${DNS_PEERING_DOMAIN%%.}/mcp \ --income-verification-url=https://api.internal.${DNS_PEERING_DOMAIN%%.}/income-verification-discovery/mcp \ --email-mcp-url=https://email.${DNS_PEERING_DOMAIN%%.}/mcp \ --network-attachment=projects/${PROJECT_ID}/regions/${REGION}/networkAttachments/${PSC_ATTACHMENT} \ --dns-peering-domain=${DNS_PEERING_DOMAIN} \ --dns-peering-target-project=${PROJECT_ID} \ --dns-peering-target-network=${VPC_NAME} \ --ge-deploy \ --app-id=${APP_ID} \ --oauth-client-id=${OAUTH_CLIENT_ID}
- 変更を確認する: Gemini Enterprise インターフェースに戻り、エージェントに申請者の収入を確認するよう依頼します。
[Apigee Debug] タブに、GKE Gateway からの受信 JSON-RPC リクエストが、バックエンド GKE サービスへの標準 REST"Can you verify the joint income for the Sterlings using the verification service?"POSTリクエストに変換されていることが表示されます。
11. クリーンアップ
この Codelab で作成したリソースについて、Google Cloud アカウントに課金されないようにするには、完了後にリソースを削除します。
- サービス アタッチメントが手動で作成された場合は、削除します。
gcloud compute service-attachments delete internal-gke-gateway \ --region=${REGION} --quiet terraformディレクトリに移動して、すべてのリソースを破棄します。cd terraform terraform destroy- 必要に応じて、Google Cloud プロジェクトを完全に削除します。
gcloud projects delete ${PROJECT_ID}
12. 完了
この Codelab は終了です。クロスクラウド エージェント型エンタープライズ デプロイを保護する方法を学習しました。
学習した内容
- OpenTelemetry 計測を使用して ADK 住宅ローン アシスタント エージェントを Agent Engine にデプロイしました
- 内部 Gateway の背後にある GKE にバックエンド MCP サーバーをデプロイしました
- PSC インターフェースと DNS ピアリングを使用して、Agent Engine をプロジェクト VPC に接続しました
- DLP 編集と MCP 認証を使用して、管理対象エージェントの下り(外向き)用に GKE Gateway を構成しました
- プロンプトとレスポンスのスクリーニングに Model Armor を使用した適用済み AI ガードレール
- 必要に応じて、Apigee MCP Discovery プロキシを使用して REST API を MCP にトランスコードする
次のステップ
- Model Armor を探索する
- Agent Engine について読む
- Gemini Enterprise の詳細